60 lines
1.9 KiB
Python
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="^(启用|停用)$")
|