Files
delphi-database/app/auth/schemas.py
HotSwapp c2f3c4411d progress
2025-08-09 16:37:57 -05:00

58 lines
1.1 KiB
Python

"""
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
theme_preference: Optional[str] = "light"
class Config:
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
class TokenData(BaseModel):
"""Token payload schema"""
username: Optional[str] = None
class LoginRequest(BaseModel):
"""Login request schema"""
username: str
password: str