#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Тест новой функциональности статистики SMS
"""

import asyncio
from datetime import datetime

# Имитация результата парсинга
def simulate_parsing_stats():
    """Имитирует статистику парсинга для демонстрации"""
    
    # Симуляция статистики
    processed_ads = 25
    ads_with_phones = 18
    ads_without_phones = 7
    current_success = 45  # SMS отправлено (некоторые объявления имеют несколько номеров)
    current_failed = 3
    
    print("🎯 Симуляция завершения парсинга...")
    print(f"Время завершения: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
    
    # Формируем сообщение как в реальном коде
    stats_message = f"""🎯 <b>Парсинг завершен!</b>

🏠 <b>Обработано объявлений:</b> {processed_ads}
📞 <b>С телефонами:</b> {ads_with_phones}
🚫 <b>Без телефонов:</b> {ads_without_phones}

📊 <b>Статистика SMS за этот парсинг:</b>
✅ <b>Отправлено:</b> {current_success}
❌ <b>Не отправлено:</b> {current_failed}
📋 <b>Всего попыток:</b> {current_success + current_failed}

📈 <b>Процент успеха SMS:</b> {(current_success / (current_success + current_failed) * 100) if (current_success + current_failed) > 0 else 0:.1f}%
🎯 <b>Процент объявлений с телефонами:</b> {(ads_with_phones / processed_ads * 100) if processed_ads > 0 else 0:.1f}%

🏠 Используйте /start для возврата в главное меню."""

    print("\n" + "="*50)
    print("СТАТИСТИКА БУДЕТ ОТПРАВЛЕНА ПОЛЬЗОВАТЕЛЮ:")
    print("="*50)
    print(stats_message.replace('<b>', '').replace('</b>', ''))
    print("="*50)
    
    # Дополнительная аналитика
    print(f"\n📊 АНАЛИТИКА:")
    print(f"   • Средние телефоны на объявление: {current_success / ads_with_phones:.1f}")
    print(f"   • Эффективность парсинга: {ads_with_phones / processed_ads * 100:.1f}%")
    print(f"   • Надежность SMS: {current_success / (current_success + current_failed) * 100:.1f}%")


def simulate_stopped_parsing():
    """Имитирует остановленный пользователем парсинг"""
    
    processed_ads = 12  # Остановлен раньше
    ads_with_phones = 8
    ads_without_phones = 4
    current_success = 15
    current_failed = 1
    
    print("\n🛑 Симуляция остановки парсинга пользователем...")
    
    status_text = "🛑 <b>Парсинг остановлен пользователем!</b>"
    
    stats_message = f"""{status_text}

🏠 <b>Обработано объявлений:</b> {processed_ads}
📞 <b>С телефонами:</b> {ads_with_phones}
🚫 <b>Без телефонов:</b> {ads_without_phones}

📊 <b>Статистика SMS за этот парсинг:</b>
✅ <b>Отправлено:</b> {current_success}
❌ <b>Не отправлено:</b> {current_failed}
📋 <b>Всего попыток:</b> {current_success + current_failed}

📈 <b>Процент успеха SMS:</b> {(current_success / (current_success + current_failed) * 100) if (current_success + current_failed) > 0 else 0:.1f}%
🎯 <b>Процент объявлений с телефонами:</b> {(ads_with_phones / processed_ads * 100) if processed_ads > 0 else 0:.1f}%

🏠 Используйте /start для возврата в главное меню."""

    print("\n" + "="*50)
    print("СТАТИСТИКА ПРИ ОСТАНОВКЕ:")
    print("="*50)
    print(stats_message.replace('<b>', '').replace('</b>', ''))
    print("="*50)


if __name__ == "__main__":
    print("🧪 ТЕСТИРОВАНИЕ НОВОЙ СТАТИСТИКИ SMS")
    print("="*60)
    
    # Тест 1: Обычное завершение парсинга
    simulate_parsing_stats()
    
    # Тест 2: Остановка парсинга пользователем
    simulate_stopped_parsing()
    
    print("\n✅ Тестирование завершено!")
    print("📝 Теперь пользователи будут получать детальную статистику после каждого парсинга.") 