from typing import Any from pydantic import BaseModel, Field class EvaluationPointBaseDTO(BaseModel): name: str | None = Field(None, description="评查点名称") code: str | None = Field(None, description="评查点编码") risk: str | None = Field(None, description="风险等级") is_enabled: bool | None = Field(None, description="是否启用") description: str | None = Field(None, description="评查点描述") evaluation_point_groups_id: int | None = Field(None, description="二级分组ID") evaluation_point_groups_pid: int | None = Field(None, description="一级分组ID") document_attribute_type: str | None = Field(None, description="适用属性类型") references_laws: dict[str, Any] | None = Field(None, description="法律依据") extraction_config: dict[str, Any] | None = Field(None, description="抽取配置") evaluation_config: dict[str, Any] | None = Field(None, description="评查配置") pass_message: str | None = Field(None, description="通过提示") fail_message: str | None = Field(None, description="不通过提示") suggestion_message: str | None = Field(None, description="建议提示") suggestion_message_type: str | None = Field(None, description="建议提示类型") post_action: str | None = Field(None, description="后置动作") action_config: str | None = Field(None, description="动作配置") score: float | int | None = Field(None, description="分值") area: str | None = Field(None, description="地区") class EvaluationPointCreateDTO(EvaluationPointBaseDTO): name: str = Field(..., description="评查点名称") code: str = Field(..., description="评查点编码") risk: str = Field(..., description="风险等级") is_enabled: bool = Field(True, description="是否启用") evaluation_point_groups_id: int = Field(..., description="二级分组ID") evaluation_point_groups_pid: int = Field(..., description="一级分组ID") class EvaluationPointUpdateDTO(EvaluationPointBaseDTO): pass