from app.core.base_schema import CommonSchema """单株评价 —— Pydantic 校验/序列化模型。""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field class TreeEvaluationBaseSchema(BaseModel): model_config = ConfigDict(from_attributes=True) combination_id: int = Field(..., description="杂交组合") tree_id: int = Field(..., description="单株") evaluate_year: int | None = Field(default=None, description="评价年份") evaluate_date: str | None = Field(default=None, description="调查时间") bre_personnel_id: int | None = Field(default=None, description="评价人") overall_score: float | None = Field(default=None, description="综合评分") trial_study_id: int | None = Field(default=None, description="所属试验研究点") crop_load: float | None = Field(default=None, description="座果率/产量负载") remark: str | None = Field(default=None, description="备注") class TreeEvaluationCreateSchema(TreeEvaluationBaseSchema): pass class TreeEvaluationUpdateSchema(TreeEvaluationBaseSchema): combination_id: int | None = Field(default=None, description="杂交组合") tree_id: int | None = Field(default=None, description="单株") evaluate_year: int | None = Field(default=None, description="评价年份") evaluate_date: str | None = Field(default=None, description="调查时间") bre_personnel_id: int | None = Field(default=None, description="评价人") overall_score: float | None = Field(default=None, description="综合评分") trial_study_id: int | None = Field(default=None, description="所属试验研究点") crop_load: float | None = Field(default=None, description="座果率/产量负载") remark: str | None = Field(default=None, description="备注") class TreeEvaluationOutSchema(TreeEvaluationBaseSchema): id: int uuid: str combination_name: str | None = None # 由 Service 层联表填充 tree_name: str | None = None # 由 Service 层联表填充 evaluate_year: int | None = None evaluate_date: str | None = None bre_personnel_name: str | None = None # 由 Service 层联表填充 overall_score: float | None = None trial_study_name: str | None = None # 由 Service 层联表填充 crop_load: float | 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 TreeEvaluationQueryParam(BaseModel): combination_id: int | None = Field(default=None, description="杂交组合", json_schema_extra={"q": "eq"}) tree_id: int | None = Field(default=None, description="单株", json_schema_extra={"q": "eq"}) evaluate_year: int | None = Field(default=None, description="评价年份", json_schema_extra={"q": "eq"}) bre_personnel_id: int | None = Field(default=None, description="评价人", json_schema_extra={"q": "eq"}) trial_study_id: int | None = Field(default=None, description="所属试验研究点", json_schema_extra={"q": "eq"})