72 lines
2.9 KiB
Python
72 lines
2.9 KiB
Python
"""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
|