"""
Миграция: Добавление таблиц для умных рассылок и дайджестов
Версия: V3.1
Дата: 2026-04-06

Новые таблицы:
- broadcasts: умные рассылки с отслеживанием прочтения
- broadcast_reads: кто прочитал рассылку
- digests: еженедельные дайджесты
"""
import sys
import os

# Добавляем корень проекта в path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from database.db import SyncSessionLocal, sync_engine
from database.models import Base
from sqlalchemy import inspect


def migrate():
    """Выполнить миграцию"""
    print("🔧 Начинаем миграцию V3.1...")
    
    inspector = inspect(sync_engine)
    existing_tables = inspector.get_table_names()
    
    print(f"📋 Текущие таблицы: {len(existing_tables)}")
    
    # Создаём новые таблицы
    new_tables = ['broadcasts', 'broadcast_reads', 'digests']
    
    for table_name in new_tables:
        if table_name in existing_tables:
            print(f"⏭️  Таблица '{table_name}' уже существует, пропускаем")
        else:
            print(f"✅ Создаём таблицу '{table_name}'...")
            # Создаём только конкретные таблицы
            Base.metadata.tables[table_name].create(bind=sync_engine)
            print(f"   ✓ Таблица '{table_name}' создана")
    
    print("\n✅ Миграция V3.1 завершена успешно!")
    print("📊 Новые таблицы:")
    print("   • broadcasts - умные рассылки")
    print("   • broadcast_reads - отслеживание прочтения")
    print("   • digests - еженедельные дайджесты")


if __name__ == '__main__':
    migrate()
