feat: T1.5 风险工作台 — 后端 CRUD + 前端风险列表
- 后端:risks 路由(列表/详情/创建/更新/删除)+ 状态流转 - 前端:风险工作台页(卡片列表、状态筛选、内联状态切换、删除) - 测试:6 个风险 CRUD 测试(总计 43 tests passed) - 前端构建 13 路由成功
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
"""风险事件相关 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
|
||||
Reference in New Issue
Block a user