#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Тестирование кофейных напитков для AI-КАЛОРИЯ бота
"""

import os
import sys
import json
from pathlib import Path

# Добавляем текущую директорию в путь
sys.path.insert(0, str(Path(__file__).parent))

# Загружаем переменные окружения
from dotenv import load_dotenv
load_dotenv()

def test_coffee_drinks():
    """Тестирование кофейных напитков"""
    print("🧪 Тестирование кофейных напитков...")
    
    try:
        from openai_client import OpenAIClient
        
        # Проверяем API ключ
        api_key = os.getenv('OPENAI_API_KEY')
        if not api_key:
            print("❌ OPENAI_API_KEY не установлен")
            return False
        
        client = OpenAIClient(api_key)
        
        # Тестовые случаи с кофейными напитками
        test_cases = [
            "флэт вайт",
            "капучино",
            "латте",
            "эспрессо",
            "американо",
            "макиато",
            "мокко",
            "фраппе",
            "Выпил капучино",
            "Выпил латте",
            "Выпил эспрессо",
            "чашка капучино",
            "порция латте"
        ]
        
        for test_text in test_cases:
            print(f"\n📝 Тестируем: '{test_text}'")
            result = client.analyze_food_intake(test_text)
            print(f"✅ Результат: {json.dumps(result, ensure_ascii=False, indent=2)}")
            
            if result.get('success'):
                print(f"   🍽️ {result['food_name']} - {result['amount']} {result['unit']} - {result['calories']} ккал")
            else:
                print(f"   ❌ Ошибка: {result.get('message', 'Неизвестная ошибка')}")
        
        return True
        
    except Exception as e:
        print(f"❌ Ошибка при тестировании: {e}")
        return False

def main():
    """Основная функция тестирования"""
    print("🧪 Запуск тестов кофейных напитков\n")
    
    success = test_coffee_drinks()
    
    if success:
        print("\n🎉 Тестирование завершено!")
    else:
        print("\n⚠️ Тестирование завершено с ошибками")
    
    return 0 if success else 1

if __name__ == '__main__':
    exit_code = main()
    sys.exit(exit_code)
