| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- """Pydantic schemas - 商品参数模板"""
- from pydantic import BaseModel, Field, ConfigDict
- from typing import Optional, List
- from datetime import datetime
- class ProductParameterBase(BaseModel):
- """商品参数基础字段"""
- model_config = ConfigDict(populate_by_name=True)
- name: str = Field(..., max_length=100, description="参数名称", alias="name")
- code: str = Field(..., max_length=50, description="参数编码", alias="code")
- param_type: str = Field(default="text", description="参数类型:text-文本输入, select-单选下拉, multi_select-多选", alias="paramType")
- options: Optional[str] = Field(None, description="可选值列表,JSON数组格式", alias="options")
- placeholder: Optional[str] = Field(None, max_length=100, description="输入提示文字", alias="placeholder")
- is_required: int = Field(default=0, description="是否必填:0-否, 1-是", alias="isRequired")
- is_active: int = Field(default=1, description="是否启用:0-禁用, 1-启用", alias="isActive")
- sort_order: int = Field(default=0, description="排序", alias="sortOrder")
- remark: Optional[str] = Field(None, max_length=500, description="备注说明", alias="remark")
- class ProductParameterCreate(ProductParameterBase):
- """创建商品参数请求"""
- pass
- class ProductParameterUpdate(BaseModel):
- """更新商品参数请求"""
- model_config = ConfigDict(populate_by_name=True)
- name: Optional[str] = Field(None, max_length=100, description="参数名称", alias="name")
- code: Optional[str] = Field(None, max_length=50, description="参数编码", alias="code")
- param_type: Optional[str] = Field(None, description="参数类型", alias="paramType")
- options: Optional[str] = Field(None, description="可选值列表", alias="options")
- placeholder: Optional[str] = Field(None, max_length=100, description="输入提示文字", alias="placeholder")
- is_required: Optional[int] = Field(None, description="是否必填", alias="isRequired")
- is_active: Optional[int] = Field(None, description="是否启用", alias="isActive")
- sort_order: Optional[int] = Field(None, description="排序", alias="sortOrder")
- remark: Optional[str] = Field(None, max_length=500, description="备注说明", alias="remark")
- class ProductParameterResponse(ProductParameterBase):
- """商品参数响应"""
- id: str
- create_at: datetime
- create_by: Optional[str] = None
- create_name: Optional[str] = None
- update_at: Optional[datetime] = None
- class Config:
- from_attributes = True
- class ProductParameterListResponse(BaseModel):
- """商品参数列表响应"""
- list: List[ProductParameterResponse]
- total: int
- page: int
- pageSize: int
- class ProductParameterSimpleResponse(BaseModel):
- """商品参数简洁响应(用于下拉选择)"""
- id: str
- name: str
- code: str
- param_type: str
- options: Optional[str] = None
- class Config:
- from_attributes = True
|