"""区域Schema""" from typing import Optional, List from pydantic import BaseModel, Field, ConfigDict class RegionBase(BaseModel): """区域基础Schema""" model_config = ConfigDict(populate_by_name=True) name: str = Field(..., description="区域名称") code: str = Field(..., description="区域编码") description: Optional[str] = Field(None, description="区域描述") sort_order: int = Field(0, alias="sortOrder", description="排序") is_active: bool = Field(True, alias="isActive", description="是否启用") expected_delivery_minutes: Optional[int] = Field( None, alias="expectedDeliveryMinutes", description="预计配送时长(分钟)" ) delivery_warn_advance_minutes: Optional[int] = Field( None, alias="deliveryWarnAdvanceMinutes", description="计划到货前未送达时预警提前时间(分钟)", ) class RegionCreate(RegionBase): """创建区域""" pass class RegionUpdate(BaseModel): """更新区域""" model_config = ConfigDict(populate_by_name=True) name: Optional[str] = Field(None, description="区域名称") code: Optional[str] = Field(None, description="区域编码") description: Optional[str] = Field(None, description="区域描述") sort_order: Optional[int] = Field(None, alias="sortOrder", description="排序") is_active: Optional[bool] = Field(None, alias="isActive", description="是否启用") expected_delivery_minutes: Optional[int] = Field( None, alias="expectedDeliveryMinutes", description="预计配送时长(分钟)" ) delivery_warn_advance_minutes: Optional[int] = Field( None, alias="deliveryWarnAdvanceMinutes", description="计划到货前未送达时预警提前时间(分钟)", ) class RegionResponse(RegionBase): """区域响应""" model_config = ConfigDict(from_attributes=True, populate_by_name=True) id: str create_at: Optional[str] = None create_by: Optional[str] = None create_name: Optional[str] = None update_at: Optional[str] = None update_by: Optional[str] = None class RegionListResponse(BaseModel): """区域列表响应""" items: List[RegionResponse] total: int page: int pageSize: int totalPages: int