feat(workbench): complete company view — health trend, major events, milestones, team, synergy + dashboard click-through
This commit is contained in:
@@ -130,15 +130,74 @@ class BoardMeetingBrief(BaseModel):
|
||||
meeting_at: datetime | None = None
|
||||
|
||||
|
||||
class MajorEventBrief(BaseModel):
|
||||
"""重大事项摘要。"""
|
||||
|
||||
id: str
|
||||
event_type: str
|
||||
title: str
|
||||
description: str | None = None
|
||||
severity: str = "medium"
|
||||
status: str = "identified"
|
||||
occurred_at: datetime | None = None
|
||||
|
||||
|
||||
class MilestoneBrief(BaseModel):
|
||||
"""里程碑摘要。"""
|
||||
|
||||
id: str
|
||||
name: str
|
||||
status: str = "planned"
|
||||
is_current: bool = False
|
||||
target_date: datetime | None = None
|
||||
actual_date: datetime | None = None
|
||||
description: str | None = None
|
||||
|
||||
|
||||
class TeamMemberBrief(BaseModel):
|
||||
"""团队成员摘要。"""
|
||||
|
||||
id: str
|
||||
name: str
|
||||
role: str | None = None
|
||||
is_key_person: bool = False
|
||||
stability_score: float | None = None
|
||||
joined_at: datetime | None = None
|
||||
|
||||
|
||||
class SynergyBrief(BaseModel):
|
||||
"""协同机会摘要。"""
|
||||
|
||||
id: str
|
||||
type: str
|
||||
title: str
|
||||
description: str | None = None
|
||||
status: str = "discovered"
|
||||
match_reason: str | None = None
|
||||
|
||||
|
||||
class HealthScoreHistoryPoint(BaseModel):
|
||||
"""健康度历史数据点。"""
|
||||
|
||||
period: str
|
||||
total_score: float
|
||||
calculated_at: datetime
|
||||
|
||||
|
||||
class CompanyDetailResponse(BaseModel):
|
||||
"""企业详情聚合响应 — 工作台使用。"""
|
||||
|
||||
company: CompanyResponse
|
||||
health_score: HealthScoreBrief | None = None
|
||||
health_score_history: list[HealthScoreHistoryPoint] = []
|
||||
recent_reports: list[ReportBrief] = []
|
||||
open_risks: list[RiskBrief] = []
|
||||
recent_weak_signals: list[WeakSignalBrief] = []
|
||||
active_agreements: list[AgreementBrief] = []
|
||||
recent_board_meetings: list[BoardMeetingBrief] = []
|
||||
major_events: list[MajorEventBrief] = []
|
||||
milestones: list[MilestoneBrief] = []
|
||||
team_members: list[TeamMemberBrief] = []
|
||||
synergy_opportunities: list[SynergyBrief] = []
|
||||
financial_data_count: int = 0
|
||||
latest_financial: dict | None = None
|
||||
|
||||
Reference in New Issue
Block a user