File size: 1,100 Bytes
60e60c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d63a9e4
 
60e60c0
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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,
        }