40 lines
883 B
Python
40 lines
883 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
|
|
|
|
|
|
class AnalysisOptions(BaseModel):
|
|
skip_vision: bool = False
|
|
skip_perplexity: bool = False
|
|
|
|
|
|
class AnalysisCreate(BaseModel):
|
|
clinic_id: str | None = None
|
|
url: str | None = None
|
|
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
|