#!/usr/bin/env python3
"""
Уведомление о исправлении часового пояса и защите от дублей
"""
import asyncio
import sys
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(BASE_DIR))

from aiogram import Bot
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.client.session.aiohttp import AiohttpSession

from config import BOT_TOKEN, ADMIN_USER_ID, get_proxy_url

async def send_timezone_and_duplicate_fix():
    """Уведомление об исправлениях"""
    proxy_url = get_proxy_url()
    
    if proxy_url:
        session = AiohttpSession(proxy=proxy_url)
        bot = Bot(token=BOT_TOKEN, session=session, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
    else:
        bot = Bot(token=BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
    
    message = """
✅ <b>ДВА ИСПРАВЛЕНИЯ!</b>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🕐 <b>1. ЛОКАЛЬНОЕ ВРЕМЯ (UTC+4)</b>

✅ <b>Что изменилось:</b>

❌ <b>Было:</b>
• Время в веб-панели показывалось в UTC
• Ты выбирал 20:30 → сохранялось как 20:30 UTC
• Реально публиковалось в 00:30 по Ульяновску!

✅ <b>Стало:</b>
• В веб-панели показывает ТВОЁ время (UTC+4)
• Ты выбираешь 20:30 → сохраняется как 16:30 UTC
• Публикуется ровно в 20:30 по Ульяновску! 🎯

📋 <b>Подсказки в форме:</b>
"🕐 По твоему времени (UTC+4)"

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🔄 <b>2. ЗАЩИТА ОТ ДУБЛИРОВАНИЯ</b>

✅ <b>Что было:</b>
• Пост публиковался ДВАЖДЫ в чат
• Несколько процессов scheduler работали одновременно

✅ <b>Что стало:</b>
• Добавлена блокировка (_scheduled_posts_lock)
• Только ОДИН процесс может публиковать посты
• Остальные пропускают обработку

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🧪 <b>ТЕСТ:</b>

Создан тестовый пост (ID=4)
Время: через 5 минут от сейчас
Должен опубликоваться ОДИН раз ✅

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🌐 <b>ПРОВЕРЬ В ВЕБ-ПАНЕЛИ:</b>

1. Зайди в http://localhost:8000/scheduled_posts
2. Нажми Ctrl+Shift+R (сброс кэша!)
3. Посмотри на список постов
4. Время должно быть ПО ТВОЕМУ! (UTC+4)

<i>Жду 5 минут и проверю что тестовый пост опубликовался 1 раз!</i>
    """
    
    try:
        await bot.send_message(ADMIN_USER_ID, message)
        print("✅ Уведомление отправлено!")
    except Exception as e:
        print(f"❌ Ошибка: {e}")
    finally:
        await bot.session.close()

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