rebuild(stage-8): deliver market insight workspaces

This commit is contained in:
leefer
2026-07-30 04:12:04 +08:00
parent a18e8e9d27
commit 976a5cac03
39 changed files with 3671 additions and 14 deletions
+35 -1
View File
@@ -3,7 +3,7 @@ from __future__ import annotations
from datetime import datetime
from typing import Any, Literal
from pydantic import BaseModel, Field
from pydantic import BaseModel, ConfigDict, Field
class TradeContextResponse(BaseModel):
@@ -101,3 +101,37 @@ class RotationMembersResponse(BaseModel):
quoted_count: int = Field(ge=0)
coverage: float = Field(ge=0, le=1)
items: list[dict[str, Any]] = Field(default_factory=list)
class MarketInsightResponse(BaseModel):
model_config = ConfigDict(extra="allow")
requested_date: str
trade_date: str
observed_at: datetime | None = None
state: str | None = None
carried_forward: bool = False
message: str = ""
summary: dict[str, Any] = Field(default_factory=dict)
class ThemeDetailResponse(BaseModel):
model_config = ConfigDict(extra="allow")
trade_date: str
observed_at: datetime | None = None
state: str | None = None
message: str = ""
theme: dict[str, Any]
summary: dict[str, Any]
members: list[dict[str, Any]]
class SeatAliasRequest(BaseModel):
seat_name: str = Field(min_length=1, max_length=200)
alias_name: str = Field(min_length=1, max_length=80)
class SeatAliasResponse(BaseModel):
seat_name: str
alias_name: str