65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
"""CRM 客户公海池规则 Pydantic Schemas"""
|
||
from typing import List, Optional
|
||
|
||
from pydantic import BaseModel, ConfigDict, Field
|
||
|
||
|
||
class PoolRuleListBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
page: int = Field(default=1, ge=1)
|
||
pageSize: int = Field(default=10, ge=1, le=500)
|
||
poolName: Optional[str] = Field(default=None)
|
||
ruleType: Optional[str] = Field(default=None)
|
||
status: Optional[str] = Field(default=None)
|
||
ids: Optional[List[str]] = Field(default=None, description="导出指定ID列表")
|
||
columns: Optional[List[str]] = Field(default=None, description="导出列(前端 visibleColumns)")
|
||
|
||
|
||
class PoolRuleDetailBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
id: str = Field(...)
|
||
|
||
|
||
class PoolRuleAddBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
poolName: str = Field(..., min_length=1)
|
||
ruleType: str = Field(..., min_length=1)
|
||
timeoutDays: int = Field(..., ge=1)
|
||
protectDays: int = Field(default=0, ge=0)
|
||
status: Optional[str] = Field(default="enable")
|
||
sort: Optional[int] = Field(default=0)
|
||
remark: Optional[str] = Field(default=None)
|
||
|
||
|
||
class PoolRuleUpdateBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
id: str = Field(...)
|
||
poolName: Optional[str] = Field(default=None)
|
||
ruleType: Optional[str] = Field(default=None)
|
||
timeoutDays: Optional[int] = Field(default=None, ge=1)
|
||
protectDays: Optional[int] = Field(default=None, ge=0)
|
||
status: Optional[str] = Field(default=None)
|
||
sort: Optional[int] = Field(default=None)
|
||
remark: Optional[str] = Field(default=None)
|
||
|
||
|
||
class PoolRuleDeleteBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
ids: list[str] = Field(..., min_length=1)
|
||
|
||
|
||
class PoolRuleUpdateStatusBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|
||
|
||
id: str = Field(...)
|
||
status: str = Field(...)
|
||
|
||
|
||
class PoolRuleExecuteBody(BaseModel):
|
||
model_config = ConfigDict(populate_by_name=True)
|