#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Тест для проверки улучшенного потока обработки вариантов продуктов
"""

import sys
import os

# Добавляем путь к модулям
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from telegram_bot import get_side_dishes_and_additions, create_side_dishes_keyboard, create_food_variants_keyboard

def test_side_dishes_for_meat():
    """Тест гарниров для мяса"""
    print("🧪 Тестируем гарниры для мяса...")
    
    # Тестируем различные варианты мяса
    meat_variants = [
        "мясо",
        "говядина", 
        "свинина",
        "мясо говядина",
        "мясо свинина"
    ]
    
    for meat in meat_variants:
        side_dishes = get_side_dishes_and_additions(meat)
        print(f"  {meat}: {side_dishes}")
        
        if side_dishes:
            keyboard = create_side_dishes_keyboard(meat)
            print(f"    Клавиатура создана: {keyboard is not None}")
        else:
            print(f"    ❌ Нет гарниров для {meat}")
    
    print()

def test_variants_for_general_foods():
    """Тест вариантов для общих продуктов"""
    print("🧪 Тестируем варианты для общих продуктов...")
    
    general_foods = [
        "мясо",
        "кофе", 
        "печенье",
        "каша",
        "салат"
    ]
    
    for food in general_foods:
        variants = create_food_variants_keyboard(food)
        print(f"  {food}: {variants is not None}")
        
        if variants:
            print(f"    ✅ Есть варианты для {food}")
        else:
            print(f"    ❌ Нет вариантов для {food}")
    
    print()

def test_side_dishes_for_specific_foods():
    """Тест гарниров для конкретных продуктов"""
    print("🧪 Тестируем гарниры для конкретных продуктов...")
    
    specific_foods = [
        "говядина",
        "лосось", 
        "курица",
        "борщ",
        "овсяная каша",
        "спагетти"
    ]
    
    for food in specific_foods:
        side_dishes = get_side_dishes_and_additions(food)
        print(f"  {food}: {side_dishes}")
        
        if side_dishes:
            keyboard = create_side_dishes_keyboard(food)
            print(f"    Клавиатура создана: {keyboard is not None}")
        else:
            print(f"    ❌ Нет гарниров для {food}")
    
    print()

def test_flow_simulation():
    """Симуляция полного потока"""
    print("🧪 Симуляция полного потока...")
    
    # 1. Пользователь вводит "мясо"
    print("1. Пользователь вводит 'мясо'")
    
    # 2. Система предлагает варианты
    variants_keyboard = create_food_variants_keyboard("мясо")
    if variants_keyboard:
        print("   ✅ Система предлагает варианты мяса")
    else:
        print("   ❌ Система не предлагает варианты")
    
    # 3. Пользователь выбирает "мясо говядина"
    print("2. Пользователь выбирает 'мясо говядина'")
    
    # 4. Система проверяет гарниры
    side_dishes = get_side_dishes_and_additions("мясо говядина")
    if side_dishes:
        print("   ✅ Система предлагает гарниры:", side_dishes[:3])
    else:
        print("   ❌ Система не предлагает гарниры")
        print("   📏 Система просит указать количество")
    
    print()

def main():
    """Основная функция тестирования"""
    print("🚀 Тестирование улучшенного потока обработки вариантов продуктов\n")
    
    test_side_dishes_for_meat()
    test_variants_for_general_foods()
    test_side_dishes_for_specific_foods()
    test_flow_simulation()
    
    print("✅ Тестирование завершено!")

if __name__ == "__main__":
    main()
