"""
Миграция v1.10: создать таблицу profile_history для истории изменений профиля
"""
import sqlite3
import asyncio

DB_PATH = 'database/domovoy.db'


async def migrate():
    """Создать таблицу profile_history"""
    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()

    # Проверяем, есть ли уже таблица profile_history
    cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='profile_history'")
    existing = cursor.fetchone()

    if existing:
        print("ℹ️ Таблица profile_history уже существует")
    else:
        print("➕ Создаём таблицу profile_history...")
        
        cursor.execute("""
            CREATE TABLE profile_history (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                user_id BIGINT NOT NULL,
                field_name TEXT NOT NULL,
                old_value TEXT,
                new_value TEXT,
                changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                FOREIGN KEY (user_id) REFERENCES users(user_id)
            )
        """)
        
        # Создаём индексы
        cursor.execute("CREATE INDEX ix_profile_history_user ON profile_history(user_id)")
        cursor.execute("CREATE INDEX ix_profile_history_field ON profile_history(field_name)")
        cursor.execute("CREATE INDEX ix_profile_history_time ON profile_history(changed_at)")
        
        print("✅ Таблица profile_history создана")
        print("✅ Индексы созданы")

    conn.commit()
    conn.close()
    print("✅ Миграция v1.10 завершена!")


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