"""育种审计日志 —— Pydantic 校验/序列化模型。""" from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from app.core.base_schema import CommonSchema class AuditLogOutSchema(BaseModel): model_config = ConfigDict(from_attributes=True) id: int uuid: str entity_type: str | None = None entity_id: int | None = None action: str | None = None field_name: str | None = None old_value: str | None = None new_value: str | None = None operator_id: int | None = None operator_name: str | None = None # 由 Service 层联表填充 created_time: datetime | None = None updated_time: datetime | None = None created_by: CommonSchema | None = None updated_by: CommonSchema | None = None class AuditLogQueryParam(BaseModel): entity_type: str | None = Field(default=None, description="实体类型(业务表名)", json_schema_extra={"q": "like"}) entity_id: int | None = Field(default=None, description="实体ID", json_schema_extra={"q": "eq"}) action: str | None = Field(default=None, description="操作类型", json_schema_extra={"q": "eq"}) operator_id: int | None = Field(default=None, description="操作人", json_schema_extra={"q": "eq"}) created_time: list[datetime] | None = Field(default=None, description="创建时间范围(_time 后缀由 search_to_dict 合并为 between)")