from dataclasses import dataclass | |
from typing import Optional | |
from datetime import datetime | |
class User: | |
"""User model representing a user in the system.""" | |
id: str | |
email: str | |
created_at: datetime | |
email_confirmed_at: Optional[datetime] = None | |
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 | |
} | |