35 lines
828 B
Python
35 lines
828 B
Python
from dataclasses import dataclass
|
|
from enum import Enum
|
|
from typing import Optional
|
|
import time
|
|
|
|
|
|
class AnalysisStatus(str, Enum):
|
|
PENDING = "pending"
|
|
RUNNING = "running"
|
|
DONE = "done"
|
|
FAILED = "failed"
|
|
|
|
|
|
@dataclass
|
|
class AnalysisMeta:
|
|
job_id: str
|
|
user_id: str
|
|
symbol: str
|
|
status: AnalysisStatus
|
|
trade_date: str # "trade_date": final_state["trade_date"],
|
|
updated_at: float
|
|
created_at: float = time.time()
|
|
|
|
@staticmethod
|
|
def new(job_id: str, user_id: str, symbol: str, trade_date: str) -> "AnalysisMeta":
|
|
return AnalysisMeta(
|
|
job_id=job_id,
|
|
user_id=user_id,
|
|
symbol=symbol,
|
|
status=AnalysisStatus.PENDING,
|
|
trade_date=trade_date,
|
|
updated_at=time.time(),
|
|
created_at=time.time(),
|
|
)
|