Files
delphi-database/app/auth/schemas.py
2025-08-14 19:16:28 -05:00

64 lines
1.3 KiB
Python

"""
Authentication schemas
"""
from typing import Optional
from pydantic import BaseModel, EmailStr
from pydantic.config import ConfigDict
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
theme_preference: Optional[str] = "light"
model_config = ConfigDict(from_attributes=True)
class ThemePreferenceUpdate(BaseModel):
"""Theme preference update schema"""
theme_preference: str
class Token(BaseModel):
"""Token response schema"""
access_token: str
token_type: str
refresh_token: Optional[str] = None
class TokenData(BaseModel):
"""Token payload schema"""
username: Optional[str] = None
class LoginRequest(BaseModel):
"""Login request schema"""
username: str
password: str
class RefreshRequest(BaseModel):
"""Refresh token submission"""
refresh_token: str