"""
简单测试CalendarInfo模型的基本功能
"""

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

def test_calendar_info_model():
    """测试CalendarInfo模型的基本功能"""
    print("=== 测试CalendarInfo模型基本功能 ===")
    
    try:
        # 导入模型
        from app.core.data_parse.calendar import CalendarInfo
        
        print("✅ 成功导入CalendarInfo模型")
        
        # 测试模型属性
        print(f"表名: {CalendarInfo.__tablename__}")
        print(f"表参数: {CalendarInfo.__table_args__}")
        
        # 测试字段定义
        print("字段定义:")
        for column in CalendarInfo.__table__.columns:  # type: ignore
            print(f"  - {column.name}: {column.type}")
        
        print("✅ CalendarInfo模型定义正确")
        
    except Exception as e:
        print(f"❌ 测试失败: {e}")
        import traceback
        traceback.print_exc()

def test_calendar_info_creation():
    """测试CalendarInfo对象的创建"""
    print("\n=== 测试CalendarInfo对象创建 ===")
    
    try:
        from app.core.data_parse.calendar import CalendarInfo
        from datetime import date
        
        # 创建测试数据
        test_data = {
            'yangli': '2025-01-19',
            'yinli': '甲午(马)年八月十八',
            'wuxing': '井泉水 建执位',
            'chongsha': '冲兔(己卯)煞东',
            'baiji': '乙不栽植千株不长 酉不宴客醉坐颠狂',
            'jishen': '官日 六仪 益後 月德合 除神 玉堂 鸣犬',
            'yi': '祭祀 出行 扫舍 馀事勿取',
            'xiongshen': '月建 小时 土府 月刑 厌对 招摇 五离',
            'ji': '诸事不宜',
            'color': 'purple'
        }
        
        # 使用from_dict方法创建对象
        calendar_info = CalendarInfo.from_dict(test_data)
        print("✅ 成功创建CalendarInfo对象")
        
        # 测试to_dict方法
        result_dict = calendar_info.to_dict()
        print("✅ to_dict方法工作正常")
        print(f"转换结果: {result_dict}")
        
        # 测试to_json方法
        json_str = calendar_info.to_json()
        print("✅ to_json方法工作正常")
        print(f"JSON字符串: {json_str}")
        
    except Exception as e:
        print(f"❌ 测试失败: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    test_calendar_info_model()
    test_calendar_info_creation()
    print("\n🎉 基本功能测试完成！")
