rebuild(stage-6): deliver emotion and market pools

This commit is contained in:
leefer
2026-07-30 03:03:53 +08:00
parent 889963862a
commit 59f6011ae8
30 changed files with 1751 additions and 9 deletions
+24
View File
@@ -8,8 +8,10 @@ from backend.features.accounts.auth import AdminWritePrincipal, AuthenticatedPri
from backend.features.market.schemas import (
ChartResponse,
MarketSummaryResponse,
MarketWorkspaceResponse,
ReferenceSyncResponse,
SearchResponse,
SnapshotSyncResponse,
TradeContextResponse,
)
@@ -57,3 +59,25 @@ def chart(
@router.post("/reference-sync", response_model=ReferenceSyncResponse)
def refresh_reference(request: Request, _principal: AdminWritePrincipal) -> dict[str, int | str]:
return request.app.state.container.market.refresh_reference()
@router.post("/snapshot-sync", response_model=SnapshotSyncResponse)
def sync_snapshot(
request: Request,
_principal: AdminWritePrincipal,
requested_date: Annotated[str | None, Query(alias="date")] = None,
) -> dict:
return request.app.state.container.market.sync_snapshot(requested_date)
@router.get("/workspaces/{key}", response_model=MarketWorkspaceResponse)
def workspace(
request: Request,
_principal: AuthenticatedPrincipal,
key: Annotated[
Literal["emotion", "pool", "broken", "limit-down", "yesterday", "performance"],
Path(),
],
requested_date: Annotated[str | None, Query(alias="date")] = None,
) -> dict:
return request.app.state.container.market.workspace(key, requested_date)