|
|
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 |
|
|
} |
|
|
|