#!/usr/bin/env python3
"""
Скрипт инициализации базы данных
Запускается один раз при первом запуске бота
"""
import asyncio
import sys
sys.path.insert(0, '/home/matrixhasyou/domovoy_bot')

from database.db import init_db, AsyncSessionLocal
from database.models import User, Service, Announcement
from sqlalchemy import select
from datetime import datetime


async def fill_initial_data():
    """Заполнение начальными данными"""
    async with AsyncSessionLocal() as session:
        # Проверяем, есть ли уже данные
        stmt = select(Service)
        result = await session.execute(stmt)
        services = list(result.scalars().all())
        
        if services:
            print('ℹ️ Данные уже есть в БД, пропускаем заполнение')
            return
        
        # Телефоны экстренных служб (заглушки, заменишь на свои)
        emergency_services = [
            {'name': 'Скорая помощь', 'category': 'emergency', 'phone': '103', 'description': 'Экстренная медицинская помощь'},
            {'name': 'Пожарная охрана', 'category': 'emergency', 'phone': '101', 'description': 'Пожарная служба'},
            {'name': 'Полиция', 'category': 'emergency', 'phone': '102', 'description': 'Экстренная служба полиции'},
            {'name': 'Газовая служба', 'category': 'emergency', 'phone': '104', 'description': 'Аварийная газовая служба'},
            {'name': 'Единая служба спасения', 'category': 'emergency', 'phone': '112', 'description': 'Работает с мобильного'},
            {'name': 'Диспетчер УК', 'category': 'utility', 'phone': '+7 (XXX) XXX-XX-XX', 'description': 'Круглосуточно', 'verified_by_admin': True},
            {'name': 'Аварийная водоканал', 'category': 'utility', 'phone': '+7 (XXX) XXX-XX-XX', 'description': 'Протечки, засоры'},
            {'name': 'Аварийная электросети', 'category': 'utility', 'phone': '+7 (XXX) XXX-XX-XX', 'description': 'Проблемы с электричеством'},
            {'name': 'Участковый', 'category': 'police', 'phone': '+7 (XXX) XXX-XX-XX', 'description': 'Приёмные часы: Вт, Чт 18:00-20:00'},
        ]
        
        for svc_data in emergency_services:
            service = Service(**svc_data)
            session.add(service)
        
        # Приветственное объявление
        announcement = Announcement(
            title='🏠 Добро пожаловать в чат дома!',
            text='''Уважаемые жильцы!

Этот бот создан для помощи всем жителям нашего дома.

📞 Что он умеет:
• Показать телефоны экстренных служб
• Вызвать сантехника/электрика
• Сообщить о проблемах
• Получить юридическую консультацию

❗ Важно: Для полного доступа пройдите верификацию — укажите номер квартиры.

С уважением, администрация чата''',
            category='general',
            is_pinned=True
        )
        session.add(announcement)
        
        await session.commit()
        print('✅ Начальные данные добавлены')


async def main():
    print('🔄 Инициализация базы данных...')
    await init_db()
    print('✅ Таблицы созданы')
    
    print('🔄 Заполнение начальными данными...')
    await fill_initial_data()
    
    print('\n✅ База данных готова к работе!')
    print('📍 Путь: ./database/domovoy.db')


if __name__ == '__main__':
    asyncio.run(main())
