Vibeon Deploy Bot
deploy: vibeon-translator 2026-08-23T13:56:02Z
2909918
Raw
History Blame Contribute Delete
1.1 kB
"""
Pydantic models for authentication and user management
"""
from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel, EmailStr, Field
class TokenData(BaseModel):
"""Token data extracted from JWT"""
username: Optional[str] = None
user_id: Optional[str] = None
scopes: List[str] = []
class UserBase(BaseModel):
"""Base user model"""
username: str
email: EmailStr
is_active: bool = True
is_superuser: bool = False
class UserCreate(UserBase):
"""User creation model"""
password: str = Field(..., min_length=6, max_length=100)
class UserLogin(BaseModel):
"""User login model"""
username: str
password: str
class User(UserBase):
"""User model for responses"""
id: str
created_at: Optional[datetime] = None
class Config:
from_attributes = True
class UserInDB(User):
"""User model with database fields"""
hashed_password: str
class Token(BaseModel):
"""Token response model"""
access_token: str
token_type: str = "bearer"
expires_in: int