35 lines
948 B
Python
35 lines
948 B
Python
from dataclasses import dataclass
|
|
from datetime import datetime
|
|
from enum import Enum
|
|
|
|
|
|
class ReportType(Enum):
|
|
CONTENT = "content"
|
|
CONTENT_STATS = "content_stats"
|
|
FULL_AUDIT = "full_audit"
|
|
|
|
@property
|
|
def label(self) -> str:
|
|
return {
|
|
ReportType.CONTENT: "Content Analysis",
|
|
ReportType.CONTENT_STATS: "Content + Stats",
|
|
ReportType.FULL_AUDIT: "Full Audit",
|
|
}[self]
|
|
|
|
@property
|
|
def description(self) -> str:
|
|
return {
|
|
ReportType.CONTENT: "Topics, tone, themes, content strategy",
|
|
ReportType.CONTENT_STATS: "Above + posting frequency, engagement patterns",
|
|
ReportType.FULL_AUDIT: "All above + sentiment, audience insights, recommendations",
|
|
}[self]
|
|
|
|
|
|
@dataclass
|
|
class ChannelMessage:
|
|
id: int
|
|
date: datetime
|
|
text: str
|
|
views: int | None = None
|
|
forwards: int | None = None
|
|
replies: int | None = None
|