o2o-infinith-backend/app/models/analysis.py

44 lines
1011 B
Python

from pydantic import BaseModel
from models.status import AnalysisStatus
class Channels(BaseModel):
youtube: str | None = None
instagram: str | None = None
facebook: str | None = None
naver_blog: str | None = None
gangnam_unni: str | None = None
tiktok: str | None = None
instagram_en: str | None = None
facebook_en: str | None = None
kakao_talk: str | None = None
naver_cafe: str | None = None
class AnalysisOptions(BaseModel):
skip_vision: bool = False
skip_perplexity: bool = False
class AnalysisCreate(BaseModel):
clinic_id: str
channels: Channels
options: AnalysisOptions = AnalysisOptions()
class AnalysisStartResponse(BaseModel):
analysis_run_id: str
clinic_id: str
status: AnalysisStatus
estimated_seconds: int
poll_url: str
class AnalysisStatusResponse(BaseModel):
analysis_run_id: str
status: AnalysisStatus
progress: float
current_step: str
channel_errors: dict
completed_at: str | None