94be6189e9
- 后端:risks 路由(列表/详情/创建/更新/删除)+ 状态流转 - 前端:风险工作台页(卡片列表、状态筛选、内联状态切换、删除) - 测试:6 个风险 CRUD 测试(总计 43 tests passed) - 前端构建 13 路由成功
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
"""风险事件相关 Pydantic schema。"""
|
|
|
|
from datetime import datetime
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class RiskEventCreate(BaseModel):
|
|
"""创建风险事件。"""
|
|
|
|
company_id: str
|
|
type: str = Field(..., description="financial/operational/org/ai_specific")
|
|
severity: str = Field(default="medium", description="low/medium/high/critical")
|
|
title: str = Field(..., min_length=1, max_length=200)
|
|
description: str | None = None
|
|
suggested_action: str | None = None
|
|
|
|
|
|
class RiskEventUpdate(BaseModel):
|
|
"""更新风险事件。"""
|
|
|
|
status: str | None = Field(default=None, description="open/assigned/in_progress/resolved/closed")
|
|
severity: str | None = None
|
|
assigned_to: str | None = None
|
|
description: str | None = None
|
|
suggested_action: str | None = None
|
|
|
|
|
|
class RiskEventResponse(BaseModel):
|
|
"""风险事件响应。"""
|
|
|
|
id: str
|
|
company_id: str
|
|
type: str
|
|
severity: str
|
|
status: str
|
|
title: str
|
|
description: str | None = None
|
|
evidence_json: dict | None = None
|
|
suggested_action: str | None = None
|
|
assigned_to: str | None = None
|
|
due_at: datetime | None = None
|
|
identified_at: datetime
|
|
closed_at: datetime | None = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class RiskEventListResponse(BaseModel):
|
|
"""风险列表响应。"""
|
|
|
|
items: list[RiskEventResponse]
|
|
total: int
|
|
page: int
|
|
page_size: int
|