File size: 984 Bytes
25f22bf |
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 |
from dataclasses import dataclass
from typing import Optional
from datetime import datetime
@dataclass
class User:
"""User model representing a user in the system."""
id: str
email: str
created_at: datetime
email_confirmed_at: Optional[datetime] = None
@classmethod
def from_dict(cls, data: dict):
"""Create a User instance from a dictionary."""
return cls(
id=data['id'],
email=data['email'],
created_at=data['created_at'] if data.get('created_at') else None,
email_confirmed_at=data['email_confirmed_at'] if data.get('email_confirmed_at') else None
)
def to_dict(self):
"""Convert User instance to dictionary."""
return {
'id': self.id,
'email': self.email,
'created_at': self.created_at if self.created_at else None,
'email_confirmed_at': self.email_confirmed_at if self.email_confirmed_at else None
}
|