Files
zkxw/backend/app/schemas/region.py
T
2026-05-12 16:35:07 +08:00

68 lines
2.2 KiB
Python

"""区域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