63 lines
1.1 KiB
Python
63 lines
1.1 KiB
Python
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到响应中 |