from pydantic import BaseModel from typing import Optional class LoginRequest(BaseModel): email: str password: str class LoginResponse(BaseModel): access_token: str token_type: str = "bearer" user: "UserInfo" class UserInfo(BaseModel): id: str email: str name: str role: Optional[str] = None department_id: Optional[str] = None is_system_admin: bool = False class TokenPayload(BaseModel): sub: str email: str role: Optional[str] = None department_id: Optional[str] = None is_system_admin: bool = False exp: int iat: int # Update forward reference LoginResponse.model_rebuild()