TradingAgents/backend/analysis_session/infra/db_models/analysis_session.py

35 lines
1.1 KiB
Python

from datetime import datetime,date
from sqlmodel import SQLModel, Field, JSON
import uuid
import enum
from sqlalchemy import Column
from sqlalchemy.dialects import oracle
from utils.auth import Role
import uuid
class AnalysisStatus(str, enum.Enum):
PENDING = "pending"
RUNNING = "running"
COMPLETED = "completed"
FAILED = "failed"
CANCELLED = "cancelled"
class AnalysisSession(SQLModel, table=True):
__tablename__ = "analysis_sessions"
id: str = Field(default=None, max_length=36, primary_key=True)
member_id: str = Field(foreign_key="members.id")
ticker: str
analysis_date: date
analysts_selected: list[str] = Field(sa_column=Column(JSON))
research_depth: int
llm_provider: str
backend_url: str
shallow_thinker: str
deep_thinker: str
status: AnalysisStatus = Field(default=AnalysisStatus.PENDING)
final_report: str | None = None
error_message: str | None = None
completed_at: datetime | None = None
created_at : datetime = Field(nullable=False)
updated_at : datetime = Field(nullable=False)