""" Tool_OCR - Authentication Schemas """ from typing import Optional from pydantic import BaseModel, Field class LoginRequest(BaseModel): """Login request schema""" username: str = Field(..., min_length=3, max_length=50, description="Username") password: str = Field(..., min_length=6, description="Password") class Config: json_schema_extra = { "example": { "username": "admin", "password": "password123" } } class Token(BaseModel): """JWT token response schema""" access_token: str = Field(..., description="JWT access token") token_type: str = Field(default="bearer", description="Token type") expires_in: int = Field(..., description="Token expiration time in seconds") class Config: json_schema_extra = { "example": { "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "bearer", "expires_in": 3600 } } class TokenData(BaseModel): """Token payload data""" user_id: Optional[int] = None username: Optional[str] = None