rebuild(stage-12): deliver private review workflows

This commit is contained in:
leefer
2026-07-30 07:45:55 +08:00
parent 0a055867a4
commit b93fb3ec41
32 changed files with 2292 additions and 9 deletions
+51
View File
@@ -0,0 +1,51 @@
from __future__ import annotations
from typing import Literal
from pydantic import BaseModel, Field
class WatchInput(BaseModel):
identifier: str = Field(min_length=1, max_length=40)
class WatchRemarkInput(BaseModel):
remark: str = Field(max_length=500)
class NoteInput(BaseModel):
trade_date: str
code: str = Field(default="", max_length=12)
stock_name: str = Field(default="", max_length=40)
summary: str = Field(default="", max_length=500)
content: str = Field(default="", max_length=5000)
plan: str = Field(default="", max_length=2000)
class TradeInput(BaseModel):
id: int | None = Field(default=None, gt=0)
trade_date: str
code: str = Field(min_length=6, max_length=12)
name: str = Field(min_length=1, max_length=40)
action: Literal["buy", "sell", "add", "trim", "watch"]
price: float = Field(ge=0, le=1_000_000)
quantity: int = Field(default=0, ge=0, le=100_000_000)
position_pct: float | None = Field(default=None, ge=0, le=100)
pnl_amount: float | None = Field(default=None, ge=-1e12, le=1e12)
pnl_pct: float | None = Field(default=None, ge=-1000, le=10000)
emotion: Literal["calm", "confident", "hesitant", "anxious", "impulsive"]
tags: list[str] = Field(default_factory=list, max_length=8)
thesis: str = Field(default="", max_length=2000)
execution: str = Field(default="", max_length=2000)
class AlertInput(BaseModel):
title: str = Field(min_length=1, max_length=80)
remind_date: str
code: str = Field(default="", max_length=12)
content: str = Field(default="", max_length=500)
class AssistantInput(BaseModel):
trade_date: str
question: str = Field(min_length=1, max_length=2000)