from datetime import datetime from typing import Optional from pydantic import BaseModel, EmailStr class UserCreate(BaseModel): email: EmailStr password: str display_name: Optional[str] = None class UserUpdate(BaseModel): display_name: Optional[str] = None timezone: Optional[str] = None class PasswordChange(BaseModel): current_password: str new_password: str class UserResponse(BaseModel): id: int email: str display_name: Optional[str] timezone: str created_at: datetime model_config = {"from_attributes": True} class Token(BaseModel): access_token: str token_type: str = "bearer" class LoginRequest(BaseModel): email: EmailStr password: str