from datetime import datetime from typing import Dict, Optional from models import UserEntity from schemas import RegisterSchema class UserMapper: @staticmethod def from_google_payload( google_id: str, email: str, payload: Dict[str, Optional[str]] ) -> UserEntity: return UserEntity( google_id=google_id, email=email, name=payload.get("name"), pic_url=payload.get("picture"), birth_date=None, phone=None, role="user", is_active=True, address=None, created_at=datetime.now(), updated_at=datetime.now(), verification_token=None, ) @staticmethod def from_register(data: RegisterSchema) -> UserEntity: return UserEntity( email=data.email, password=data.password, name=data.name, birth_date=datetime.strptime(data.birth_date, "%d-%m-%Y").date(), phone=data.phone, role="user", is_active=False, address=None, created_at=datetime.now(), updated_at=datetime.now(), verification_token=None, )