""" Authentication schemas """ from typing import Optional from pydantic import BaseModel, EmailStr class UserBase(BaseModel): """Base user schema""" username: str email: EmailStr full_name: Optional[str] = None class UserCreate(UserBase): """User creation schema""" password: str class UserUpdate(BaseModel): """User update schema""" username: Optional[str] = None email: Optional[EmailStr] = None full_name: Optional[str] = None is_active: Optional[bool] = None class UserResponse(UserBase): """User response schema""" id: int is_active: bool is_admin: bool class Config: from_attributes = True class Token(BaseModel): """Token response schema""" access_token: str token_type: str class TokenData(BaseModel): """Token payload schema""" username: Optional[str] = None class LoginRequest(BaseModel): """Login request schema""" username: str password: str