"""
Загрузка готовых отраслевых шаблонов
"""
from app.db.session import SessionLocal
from app.db.models import IndustryTemplate


INDUSTRY_TEMPLATES_DATA = [
    # 🏥 МЕДИЦИНА
    {
        "industry": "medicine",
        "key": "medicine-appointment-confirmed",
        "name": "Подтверждение записи",
        "description": "Автоматическое подтверждение при создании записи",
        "trigger_type": "appointment.created",
        "delay_hours": 0,
        "content": {
            "telegram": "Здравствуйте, {{customer_name}}!\n\nВаша запись подтверждена на {{appointment_date}} в {{appointment_time}}.\n\nАдрес: {{clinic_address}}\nВрач: {{doctor_name}}\n\nЖдём вас! 🏥",
            "email": "<h2>Здравствуйте, {{customer_name}}!</h2><p>Ваша запись подтверждена:</p><ul><li>Дата: {{appointment_date}}</li><li>Время: {{appointment_time}}</li><li>Врач: {{doctor_name}}</li><li>Адрес: {{clinic_address}}</li></ul>"
        },
        "variables": ["customer_name", "appointment_date", "appointment_time", "doctor_name", "clinic_address"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "medicine",
        "key": "medicine-appointment-reminder-24h",
        "name": "Напоминание за 24 часа",
        "description": "Напоминание о приёме за сутки",
        "trigger_type": "appointment.soon",
        "delay_hours": 24,
        "content": {
            "telegram": "Напоминаем! 📅\n\nЗавтра {{appointment_date}} в {{appointment_time}} у вас приём у {{doctor_name}}.\n\nАдрес: {{clinic_address}}\n\nЖдём вас!"
        },
        "variables": ["customer_name", "appointment_date", "appointment_time", "doctor_name", "clinic_address"],
        "channels": ["telegram"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "medicine",
        "key": "medicine-appointment-thanks",
        "name": "Спасибо за визит",
        "description": "Благодарность после посещения",
        "trigger_type": "appointment.completed",
        "delay_hours": 2,
        "content": {
            "telegram": "{{customer_name}}, спасибо что выбрали нашу клинику! 💙\n\nБудем рады видеть вас снова.\n\nОцените визит: {{feedback_link}}",
            "email": "<h2>Спасибо за визит!</h2><p>{{customer_name}}, мы рады что смогли вам помочь.</p><p><a href='{{feedback_link}}'>Оставить отзыв</a></p>"
        },
        "variables": ["customer_name", "feedback_link"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "medicine",
        "key": "medicine-appointment-followup",
        "name": "Напоминание о повторном визите",
        "description": "Напоминание записаться снова (через неделю)",
        "trigger_type": "appointment.followup",
        "delay_hours": 168,
        "content": {
            "email": "<h2>Время для профилактического осмотра!</h2><p>{{customer_name}}, рекомендуем записаться на повторный приём.</p><p><a href='{{booking_link}}'>Записаться онлайн</a></p>"
        },
        "variables": ["customer_name", "booking_link"],
        "channels": ["email"],
        "is_active_by_default": False,
        "is_editable": True
    },
    
    # 💇 САЛОНЫ КРАСОТЫ
    {
        "industry": "beauty",
        "key": "beauty-booking-confirmed",
        "name": "Подтверждение записи",
        "description": "Подтверждение при создании записи",
        "trigger_type": "booking.created",
        "delay_hours": 0,
        "content": {
            "telegram": "{{customer_name}}, вы записаны! 💅\n\nУслуга: {{service_name}}\nМастер: {{master_name}}\nДата: {{booking_date}} в {{booking_time}}\n\nАдрес: {{salon_address}}",
            # "whatsapp": "{{customer_name}}, вы записаны на {{service_name}} к мастеру {{master_name}} на {{booking_date}} в {{booking_time}}!"
        },
        "variables": ["customer_name", "service_name", "master_name", "booking_date", "booking_time", "salon_address"],
        "channels": ["telegram"],  # "whatsapp" закомментирован
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "beauty",
        "key": "beauty-booking-reminder-3h",
        "name": "Напоминание за 3 часа",
        "description": "Напоминание перед визитом",
        "trigger_type": "booking.soon",
        "delay_hours": 3,
        "content": {
            "telegram": "Через 3 часа вас ждёт {{master_name}}! 💅\n\nАдрес: {{salon_address}}\nПарковка: {{parking_info}}"
        },
        "variables": ["master_name", "salon_address", "parking_info"],
        "channels": ["telegram"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "beauty",
        "key": "beauty-booking-feedback",
        "name": "Отзыв после визита",
        "description": "Просьба оставить отзыв",
        "trigger_type": "booking.completed",
        "delay_hours": 24,
        "content": {
            "telegram": "Как вам визит к {{master_name}}? 😊\n\nОставьте отзыв и получите бонусы на следующий визит!\n\n{{feedback_link}}",
            "email": "<h2>Нам важно ваше мнение!</h2><p>Расскажите о визите к {{master_name}}</p><p><a href='{{feedback_link}}'>Оставить отзыв и получить бонусы</a></p>"
        },
        "variables": ["master_name", "feedback_link"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    
    # 🚗 АВТОСЕРВИС
    {
        "industry": "autoservice",
        "key": "autoservice-order-accepted",
        "name": "Заказ принят",
        "description": "Подтверждение приёма автомобиля",
        "trigger_type": "order.created",
        "delay_hours": 0,
        "content": {
            "telegram": "{{customer_name}}, заказ №{{order_id}} принят! 🚗\n\nАвтомобиль: {{car_model}}\nРаботы: {{services}}\nБудет готов: {{ready_date}}\n\nМы пришлём уведомление когда закончим!",
            "email": "<h2>Заказ принят</h2><p>Номер заказа: {{order_id}}</p><ul><li>Автомобиль: {{car_model}}</li><li>Работы: {{services}}</li><li>Готовность: {{ready_date}}</li></ul>"
        },
        "variables": ["customer_name", "order_id", "car_model", "services", "ready_date"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "autoservice",
        "key": "autoservice-order-ready",
        "name": "Заказ готов",
        "description": "Уведомление о готовности",
        "trigger_type": "order.completed",
        "delay_hours": 0,
        "content": {
            "telegram": "Ваш {{car_model}} готов! 🎉\n\nМожете забирать.\nСтоимость: {{total_amount}} руб.\n\nАдрес: {{service_address}}",
            # "whatsapp": "{{customer_name}}, ваш автомобиль готов! Стоимость работ: {{total_amount}} руб. Ждём вас по адресу {{service_address}}"
        },
        "variables": ["customer_name", "car_model", "total_amount", "service_address"],
        "channels": ["telegram"],  # "whatsapp" закомментирован
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "autoservice",
        "key": "autoservice-maintenance-reminder",
        "name": "Напоминание о ТО",
        "description": "Напоминание о плановом обслуживании",
        "trigger_type": "maintenance.due",
        "delay_hours": 168,
        "content": {
            "telegram": "{{customer_name}}, вашему {{car_model}} скоро требуется ТО! 🔧\n\nПробег: {{current_mileage}} км\nРекомендуем записаться заранее.\n\n{{booking_link}}",
            "email": "<h2>Время для ТО!</h2><p>{{car_model}}, пробег {{current_mileage}} км</p><p><a href='{{booking_link}}'>Записаться на ТО</a></p>"
        },
        "variables": ["customer_name", "car_model", "current_mileage", "booking_link"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    
    # 🍕 ДОСТАВКА ЕДЫ
    {
        "industry": "delivery",
        "key": "delivery-order-created",
        "name": "Заказ принят",
        "description": "Подтверждение заказа",
        "trigger_type": "order.created",
        "delay_hours": 0,
        "content": {
            "telegram": "Заказ №{{order_id}} принят! 🍕\n\nГотовим ваши блюда 👨‍🍳\nДоставка через {{delivery_time}} минут\n\nСостав заказа: {{order_items}}",
            # "whatsapp": "Заказ №{{order_id}} принят! Готовим ваши блюда. Доставка через {{delivery_time}} минут."
        },
        "variables": ["order_id", "delivery_time", "order_items"],
        "channels": ["telegram"],  # "whatsapp" закомментирован
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "delivery",
        "key": "delivery-courier-dispatched",
        "name": "Курьер в пути",
        "description": "Курьер выехал",
        "trigger_type": "courier.dispatched",
        "delay_hours": 0,
        "content": {
            "telegram": "Курьер {{courier_name}} уже везёт ваш заказ! 🛵\n\nПрибудет через {{eta_minutes}} минут\n\nТелефон курьера: {{courier_phone}}"
        },
        "variables": ["courier_name", "eta_minutes", "courier_phone"],
        "channels": ["telegram"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "delivery",
        "key": "delivery-order-delivered",
        "name": "Заказ доставлен",
        "description": "Доставка завершена",
        "trigger_type": "order.delivered",
        "delay_hours": 0,
        "content": {
            "telegram": "Приятного аппетита! 😋\n\nОцените доставку и получите бонусы:\n{{feedback_link}}"
        },
        "variables": ["feedback_link"],
        "channels": ["telegram"],
        "is_active_by_default": True,
        "is_editable": True
    },
    
    # 🎓 ОНЛАЙН-ШКОЛА
    {
        "industry": "education",
        "key": "education-lesson-reminder-1h",
        "name": "Напоминание о занятии за 1 час",
        "description": "Напоминание перед уроком",
        "trigger_type": "lesson.soon",
        "delay_hours": 1,
        "content": {
            "telegram": "{{student_name}}, через час у вас урок! 🎓\n\nТема: {{lesson_topic}}\nПреподаватель: {{teacher_name}}\n\nСсылка на Zoom: {{zoom_link}}",
            "email": "<h2>Урок начнётся через час</h2><p>Тема: {{lesson_topic}}</p><p>Преподаватель: {{teacher_name}}</p><p><a href='{{zoom_link}}'>Присоединиться к уроку</a></p>"
        },
        "variables": ["student_name", "lesson_topic", "teacher_name", "zoom_link"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "education",
        "key": "education-lesson-starting",
        "name": "Занятие начинается",
        "description": "Ссылка на урок",
        "trigger_type": "lesson.starting",
        "delay_hours": 0,
        "content": {
            "telegram": "Занятие начинается! 📚\n\nПрисоединяйтесь:\n{{zoom_link}}"
        },
        "variables": ["zoom_link"],
        "channels": ["telegram"],
        "is_active_by_default": True,
        "is_editable": True
    },
    {
        "industry": "education",
        "key": "education-lesson-feedback",
        "name": "Обратная связь после урока",
        "description": "Просьба оставить отзыв",
        "trigger_type": "lesson.completed",
        "delay_hours": 2,
        "content": {
            "telegram": "Как прошёл урок по теме '{{lesson_topic}}'? 📝\n\nОставьте отзыв и получите бонус на следующее занятие!\n\n{{feedback_link}}",
            "email": "<h2>Оцените урок</h2><p>Тема: {{lesson_topic}}</p><p><a href='{{feedback_link}}'>Оставить отзыв и получить бонус</a></p>"
        },
        "variables": ["lesson_topic", "feedback_link"],
        "channels": ["telegram", "email"],
        "is_active_by_default": True,
        "is_editable": True
    }
]


def load_industry_templates():
    """Загрузить готовые отраслевые шаблоны"""
    db = SessionLocal()
    
    try:
        # Проверяем, есть ли уже шаблоны
        existing_count = db.query(IndustryTemplate).count()
        if existing_count > 0:
            print(f"⚠️  Шаблоны уже загружены ({existing_count} шт.). Пропускаем.")
            return
        
        # Загружаем шаблоны
        for template_data in INDUSTRY_TEMPLATES_DATA:
            template = IndustryTemplate(**template_data)
            db.add(template)
        
        db.commit()
        print(f"✅ Загружено {len(INDUSTRY_TEMPLATES_DATA)} отраслевых шаблонов")
        
        # Статистика
        industries = {}
        for t in INDUSTRY_TEMPLATES_DATA:
            industries[t['industry']] = industries.get(t['industry'], 0) + 1
        
        print("\n📊 Статистика по индустриям:")
        industry_names = {
            "medicine": "🏥 Медицина",
            "beauty": "💇 Салоны красоты",
            "autoservice": "🚗 Автосервис",
            "delivery": "🍕 Доставка еды",
            "education": "🎓 Онлайн-школа"
        }
        
        for industry, count in industries.items():
            name = industry_names.get(industry, industry)
            print(f"  {name}: {count} шаблонов")
    
    finally:
        db.close()


if __name__ == "__main__":
    load_industry_templates()





















