from dataclasses import dataclass from typing import Optional from datetime import datetime @dataclass class User: email: str username: str password_hash: str display_name: Optional[str] = None role: str = "user" id: Optional[str] = None created_at: Optional[str] = None @staticmethod def from_dict(data: dict) -> 'User': if not data: return None return User( id=data.get("id"), email=data.get("email"), username=data.get("username"), password_hash=data.get("password_hash"), display_name=data.get("display_name"), role=data.get("role", "user"), created_at=data.get("created_at") ) def to_dict(self) -> dict: return { "id": self.id, "username": self.username, "email": self.email, "display_name": self.display_name, "role": self.role, "created_at": self.created_at }