63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, List
|
|
from datetime import date
|
|
|
|
class DailyDiffBase(BaseModel):
|
|
"""daily_diff基础模型"""
|
|
account_id: int = Field(..., description="账号ID")
|
|
account_name: Optional[str] = Field(None, description="账号名称")
|
|
check_time: Optional[date] = Field(None, description="检查时间(年月日)")
|
|
linecode: Optional[str] = Field(None, description="线路编码")
|
|
|
|
class DailyDiffCreate(DailyDiffBase):
|
|
"""创建daily_diff请求模型"""
|
|
pass
|
|
|
|
class DailyDiffResponse(DailyDiffBase):
|
|
"""daily_diff响应模型"""
|
|
id: int
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class BatchCreateRequest(BaseModel):
|
|
"""批量新增请求"""
|
|
data: List[DailyDiffCreate] = Field(..., description="批量新增数据列表")
|
|
|
|
class BatchCreateResponse(BaseModel):
|
|
"""批量新增响应"""
|
|
code: int = 0
|
|
message: str
|
|
total_count: int = Field(0, description="总数据量")
|
|
success_count: int = Field(0, description="成功插入数量")
|
|
skip_count: int = Field(0, description="跳过重复数量")
|
|
|
|
class DailyDiffQueryRequest(BaseModel):
|
|
"""多条件查询请求"""
|
|
account_id: Optional[int] = Field(None, description="账号ID")
|
|
account_name: Optional[str] = Field(None, description="账号名称(模糊匹配)")
|
|
check_time: Optional[date] = Field(None, description="检查时间")
|
|
check_time_start: Optional[date] = Field(None, description="检查时间开始")
|
|
check_time_end: Optional[date] = Field(None, description="检查时间结束")
|
|
linecode: Optional[str] = Field(None, description="线路编码")
|
|
linecodes: Optional[List[str]] = Field(None, description="线路编码列表")
|
|
page: Optional[int] = Field(None, ge=1, description="页码,不填则查全部")
|
|
page_size: Optional[int] = Field(None, ge=1, le=1000, description="每页数量,不填则查全部")
|
|
|
|
class DailyDiffListResponse(BaseModel):
|
|
"""查询列表响应"""
|
|
code: int = 0
|
|
message: str
|
|
total: int = 0
|
|
data: List[DailyDiffResponse] = []
|
|
|
|
class BatchDeleteRequest(BaseModel):
|
|
"""批量删除请求"""
|
|
ids: List[int] = Field(..., description="要删除的ID列表")
|
|
|
|
class BatchDeleteResponse(BaseModel):
|
|
"""批量删除响应"""
|
|
code: int = 0
|
|
message: str
|
|
deleted_count: int = 0
|