68 lines
2.2 KiB
Python
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
|