38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
from datetime import date, datetime
|
|
from app.domain.models import AnalysisStatus
|
|
|
|
class AnalysisSessionBase(BaseModel):
|
|
ticker: str
|
|
analysts_selected: List[str]
|
|
research_depth: int
|
|
llm_provider: str
|
|
backend_url: str
|
|
shallow_thinker: str
|
|
deep_thinker: str
|
|
|
|
class AnalysisSessionCreate(AnalysisSessionBase):
|
|
pass
|
|
|
|
class AnalysisSessionUpdate(BaseModel):
|
|
status: Optional[AnalysisStatus] = None
|
|
final_report: Optional[str] = None
|
|
error_message: Optional[str] = None
|
|
|
|
class AnalysisSessionInDBBase(AnalysisSessionBase):
|
|
id: int
|
|
user_id: int
|
|
analysis_date: date
|
|
status: AnalysisStatus
|
|
final_report: Optional[str] = None
|
|
error_message: Optional[str] = None
|
|
created_at: datetime
|
|
started_at: Optional[datetime] = None
|
|
completed_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
class AnalysisSession(AnalysisSessionInDBBase):
|
|
pass |