from dataclasses import dataclass from typing import Any @dataclass(slots=True) class BotStats: total_users: int = 0 total_cookies: int = 0 total_paid_direct: float = 0.0 total_paid_referral: float = 0.0 @classmethod def default(cls) -> "BotStats": return cls() @classmethod def from_dict(cls, data: dict[str, Any] | None) -> "BotStats": data = data or {} return cls( total_users=int(data.get("total_users", 0)), total_cookies=int(data.get("total_cookies", 0)), total_paid_direct=float(data.get("total_paid_direct", 0.0)), total_paid_referral=float(data.get("total_paid_referral", 0.0)), ) def to_dict(self) -> dict[str, Any]: return { "total_users": self.total_users, "total_cookies": self.total_cookies, "total_paid_direct": self.total_paid_direct, "total_paid_referral": self.total_paid_referral, }