Files
railway_cloud/app/schemas/daily_diff.py

63 lines
2.2 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: int = Field(1, ge=1, description="页码")
page_size: int = Field(20, 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