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

DB_PATH = 'database/domovoy.db'


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

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

    if existing:
        print("ℹ️ Таблица spam_warnings уже существует")
    else:
        print("➕ Создаём таблицу spam_warnings...")
        
        cursor.execute("""
            CREATE TABLE spam_warnings (
                warning_id INTEGER PRIMARY KEY AUTOINCREMENT,
                user_id BIGINT NOT NULL,
                message_text TEXT,
                reason TEXT,
                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                is_active BOOLEAN DEFAULT 1,
                FOREIGN KEY (user_id) REFERENCES users(user_id)
            )
        """)
        
        # Создаём индексы
        cursor.execute("CREATE INDEX ix_spam_warnings_user ON spam_warnings(user_id)")
        cursor.execute("CREATE INDEX ix_spam_warnings_active ON spam_warnings(is_active)")
        
        print("✅ Таблица spam_warnings создана")
        print("✅ Индексы созданы")

    # Проверяем есть ли поле spam_warning_count в users
    cursor.execute("PRAGMA table_info(users)")
    columns = [col[1] for col in cursor.fetchall()]

    if 'spam_warning_count' not in columns:
        print("➕ Добавляем поле spam_warning_count...")
        cursor.execute("ALTER TABLE users ADD COLUMN spam_warning_count INTEGER DEFAULT 0")
        print("✅ Поле spam_warning_count добавлено")
    else:
        print("ℹ️ Поле spam_warning_count уже существует")

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


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