from dataclasses import dataclass, field from typing import List, Dict, Any @dataclass class Profile: id: str username: str offers: List[str] = field(default_factory=list) wants: List[str] = field(default_factory=list) availability: str = "" preferences: Dict[str, Any] = field(default_factory=dict) avatar: str = "" @staticmethod def from_dict(data: Dict[str, Any]) -> "Profile": return Profile( id=data.get("id", ""), username=data.get("username", ""), offers=data.get("offers", []), wants=data.get("wants", []), availability=data.get("availability", ""), preferences=data.get("preferences", {}), avatar=data.get("avatar", ""), ) def to_dict(self) -> Dict[str, Any]: return { "id": self.id, "username": self.username, "offers": self.offers, "wants": self.wants, "availability": self.availability, "preferences": self.preferences, "avatar": self.avatar, }