from pydantic import BaseModel, Field from typing import List, Optional class NumberData(BaseModel): number: str province: str city: str operator: str class Group(BaseModel): id: int name: str class Task(BaseModel): id: str name: str class User(BaseModel): id: str name: str class CustomerData(BaseModel): name: str email: str company: Optional[str] = None extra: Optional[str] = None class CallbackItem(BaseModel): bill: int duration: int callid: str calldate: str number: str numberid: str customer_id: str status: int status_str: str user_id: str type: int number_data: NumberData group: Group task: Task user: User customer_data: CustomerData class CallbackRequest(BaseModel): count: int = Field(..., ge=0, description="通话失败个数") data: List[CallbackItem] class CallbackResponse(BaseModel): success: bool message: str processed: bool = False retry_count: int = 0 site_id: str # 添加siteId到响应中