"""砧木管理 —— Pydantic 校验/序列化模型。""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from app.core.base_schema import CommonSchema class RootstockBaseSchema(BaseModel): model_config = ConfigDict(from_attributes=True) rootstock_code: str | None = Field(default=None, description="砧木编号") rootstock_name: str = Field(..., description="砧木名称") dwarf_class: str | None = Field(default=None, description="矮化类(矮化/半矮化/乔化/柱状)") compatibility: str | None = Field(default=None, description="砧穗亲和性(强/中/弱)") remark: str | None = Field(default=None, description="备注") class RootstockCreateSchema(RootstockBaseSchema): pass class RootstockUpdateSchema(RootstockBaseSchema): rootstock_name: str | None = Field(default=None, description="砧木名称") rootstock_code: str | None = Field(default=None, description="砧木编号") dwarf_class: str | None = Field(default=None, description="矮化类(矮化/半矮化/乔化/柱状)") compatibility: str | None = Field(default=None, description="砧穗亲和性(强/中/弱)") remark: str | None = Field(default=None, description="备注") class RootstockOutSchema(RootstockBaseSchema): id: int uuid: str rootstock_code: str | None = None rootstock_name: str | None = None dwarf_class: str | None = None compatibility: str | None = None remark: str | None = None created_time: datetime | None = None updated_time: datetime | None = None created_by: CommonSchema | None = None updated_by: CommonSchema | None = None class RootstockQueryParam(BaseModel): rootstock_code: str | None = Field(default=None, description="砧木编号", json_schema_extra={"q": "like"}) rootstock_name: str | None = Field(default=None, description="砧木名称", json_schema_extra={"q": "like"})