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

83 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Pydantic schemas - 分类参数关联"""
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List
from datetime import datetime
class CategoryParameterBase(BaseModel):
"""分类参数关联基础字段"""
model_config = ConfigDict(populate_by_name=True)
category_id: str = Field(..., description="分类ID", alias="categoryId")
parameter_id: str = Field(..., description="参数ID", alias="parameterId")
is_required: int = Field(default=0, description="该分类下是否必填:0-否, 1-是", alias="isRequired")
default_value: Optional[str] = Field(None, max_length=500, description="默认值", alias="defaultValue")
sort_order: int = Field(default=0, description="排序", alias="sortOrder")
class CategoryParameterItem(BaseModel):
"""批量更新中的单个参数项(不包含categoryId)"""
model_config = ConfigDict(populate_by_name=True)
parameter_id: str = Field(..., description="参数ID", alias="parameterId")
is_required: int = Field(default=0, description="该分类下是否必填:0-否, 1-是", alias="isRequired")
default_value: Optional[str] = Field(None, max_length=500, description="默认值", alias="defaultValue")
sort_order: int = Field(default=0, description="排序", alias="sortOrder")
class CategoryParameterCreate(CategoryParameterBase):
"""创建分类参数关联请求"""
pass
class CategoryParameterUpdate(BaseModel):
"""更新分类参数关联请求"""
model_config = ConfigDict(populate_by_name=True)
is_required: Optional[int] = Field(None, description="是否必填", alias="isRequired")
default_value: Optional[str] = Field(None, max_length=500, description="默认值", alias="defaultValue")
sort_order: Optional[int] = Field(None, description="排序", alias="sortOrder")
class CategoryParameterBatchUpdate(BaseModel):
"""批量更新分类参数关联请求"""
model_config = ConfigDict(populate_by_name=True)
items: List[CategoryParameterItem] = Field(..., description="参数关联列表")
class CategoryParameterResponse(CategoryParameterBase):
"""分类参数关联响应"""
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 CategoryParameterWithDetailResponse(BaseModel):
"""带参数详情的分类参数关联响应"""
id: str
category_id: str
parameter_id: str
parameter_name: str
parameter_code: str
param_type: str
options: Optional[str] = None
placeholder: Optional[str] = None
is_required: int
default_value: Optional[str] = None
sort_order: int
class Config:
from_attributes = True
class CategoryParameterListResponse(BaseModel):
"""分类参数关联列表响应"""
list: List[CategoryParameterWithDetailResponse]
total: int