from dataclasses import dataclass, field from datetime import datetime from enum import Enum class Depth(Enum): BASIC = "basic" STANDARD = "standard" FULL = "full" @property def label(self) -> str: return { Depth.BASIC: "Basic", Depth.STANDARD: "Standard", Depth.FULL: "Full", }[self] class FocusArea(Enum): PSYCHOLOGY = "psychology" BUSINESS = "business" MARKETING = "marketing" CONTENT = "content" AUDIENCE = "audience" SENTIMENT = "sentiment" @property def label(self) -> str: return { FocusArea.PSYCHOLOGY: "Psychology & Influence", FocusArea.BUSINESS: "Business & Monetization", FocusArea.MARKETING: "Marketing & Growth", FocusArea.CONTENT: "Content Strategy", FocusArea.AUDIENCE: "Audience & Engagement", FocusArea.SENTIMENT: "Sentiment Analysis", }[self] @dataclass class ChannelMessage: id: int date: datetime text: str views: int | None = None forwards: int | None = None replies: int | None = None @dataclass class AnalysisSession: channel: str depth: Depth | None = None focus_areas: list[FocusArea] = field(default_factory=list) model_id: str | None = None