"""
验证数字员工的模型关联
确保所有数字员工都关联到有效的模型
"""
from database import SessionLocal
import models

def verify_employee_models():
    db = SessionLocal()
    try:
        # 获取所有数字员工
        employees = db.query(models.DigitalEmployee).all()
        
        print(f"找到 {len(employees)} 个数字员工")
        
        for emp in employees:
            # 检查模型是否存在
            model = db.query(models.AIModel).filter(models.AIModel.id == emp.model_id).first()
            
            if model:
                print(f"✓ 员工 '{emp.name}' 关联模型: {model.name} (ID: {model.id})")
            else:
                print(f"✗ 员工 '{emp.name}' 关联的模型 ID {emp.model_id} 不存在!")
                
                # 尝试关联到默认模型
                default_model = db.query(models.AIModel).filter(models.AIModel.is_default == True).first()
                if not default_model:
                    # 如果没有默认模型,使用第一个模型
                    default_model = db.query(models.AIModel).first()
                
                if default_model:
                    print(f"  → 将员工 '{emp.name}' 关联到模型: {default_model.name}")
                    emp.model_id = default_model.id
                    db.commit()
                else:
                    print(f"  → 警告: 没有可用的模型!")
        
        print("\n验证完成!")
        
    finally:
        db.close()

if __name__ == "__main__":
    verify_employee_models()
