#!/usr/bin/env python3
"""
Тест исправления функциональности редактирования
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from database import DatabaseManager
from telegram_bot import handle_calories_edit

def test_edit_functionality():
    """Тест функциональности редактирования"""
    print("🧪 Тестирование функциональности редактирования...")
    
    # Инициализируем базу данных
    db_manager = DatabaseManager()
    db_manager.init_database()
    
    # Создаем тестовую запись
    test_user_id = 999999
    test_record = {
        'food_name': 'Тестовый продукт',
        'amount': 100,
        'unit': 'г',
        'calories': 150.0
    }
    
    # Добавляем запись
    record_id = db_manager.add_food_record(
        test_user_id,
        "test_user",
        test_record['food_name'],
        test_record['amount'],
        test_record['unit'],
        test_record['calories']
    )
    
    if record_id:
        print(f"✅ Тестовая запись создана с ID: {record_id}")
        
        # Тестируем изменение калорий (число)
        print("\n📝 Тест 1: Изменение калорий числом")
        result1 = handle_calories_edit(test_user_id, "200", record_id)
        if isinstance(result1, dict) and result1.get('success'):
            print("✅ Изменение калорий числом работает")
        else:
            print(f"❌ Ошибка изменения калорий числом: {result1}")
        
        # Тестируем изменение калорий (текст)
        print("\n📝 Тест 2: Изменение калорий текстом")
        result2 = handle_calories_edit(test_user_id, "увеличить до 300", record_id)
        if isinstance(result2, dict) and result2.get('success'):
            print("✅ Изменение калорий текстом работает")
        else:
            print(f"❌ Ошибка изменения калорий текстом: {result2}")
        
        # Проверяем, что запись обновилась
        updated_record = db_manager.get_record_by_id(record_id, test_user_id)
        if updated_record:
            print(f"✅ Запись обновлена: {updated_record['calories']} ккал")
        else:
            print("❌ Запись не найдена после обновления")
        
        # Удаляем тестовую запись
        db_manager.delete_food_record(record_id, test_user_id)
        print("✅ Тестовая запись удалена")
        
    else:
        print("❌ Не удалось создать тестовую запись")
    
    print("\n🎯 Тестирование завершено!")

if __name__ == "__main__":
    test_edit_functionality()
