2026-09-04 10:20:40 +08:00

60 lines
1.9 KiB
Python

"""Judgment standard library API contracts."""
from datetime import datetime
from pydantic import Field
from app.schemas.common import ApiSchema
class StandardCategoryCount(ApiSchema):
category: str
count: int
class StandardRuleSummary(ApiSchema):
id: int
category_lv1: str
category_lv2: str | None = None
category_lv3: str | None = None
risk_point: str
judge_standard: str
regulation: str | None = None
status: str
updated_at: datetime
class StandardRuleDetail(StandardRuleSummary):
attachment: str | None = None
class StandardRuleListData(ApiSchema):
items: list[StandardRuleSummary] = Field(default_factory=list)
total: int
page: int
page_size: int
total_pages: int
category_counts: list[StandardCategoryCount] = Field(default_factory=list)
class StandardRuleCreate(ApiSchema):
category_lv1: str = Field(min_length=1, max_length=20)
category_lv2: str | None = Field(default=None, max_length=60)
category_lv3: str | None = Field(default=None, max_length=60)
risk_point: str = Field(min_length=1)
judge_standard: str = Field(min_length=1)
regulation: str | None = Field(default=None, max_length=300)
attachment: str | None = Field(default=None, max_length=500)
status: str = Field(default="启用", pattern="^(启用|停用)$")
class StandardRuleUpdate(ApiSchema):
category_lv1: str | None = Field(default=None, min_length=1, max_length=20)
category_lv2: str | None = Field(default=None, max_length=60)
category_lv3: str | None = Field(default=None, max_length=60)
risk_point: str | None = Field(default=None, min_length=1)
judge_standard: str | None = Field(default=None, min_length=1)
regulation: str | None = Field(default=None, max_length=300)
attachment: str | None = Field(default=None, max_length=500)
status: str | None = Field(default=None, pattern="^(启用|停用)$")