brief-rags-bench/app/models/auth.py

36 lines
710 B
Python

"""Authentication Pydantic models."""
from pydantic import BaseModel, Field
class LoginRequest(BaseModel):
"""Login request model."""
login: str = Field(..., pattern=r'^\d{8}$', description="8-значный логин")
client_ip: str = Field(..., description="IP адрес клиента")
class UserResponse(BaseModel):
"""User response model."""
user_id: str
login: str
last_login_at: str
created_at: str
class LoginResponse(BaseModel):
"""Login response with JWT token."""
access_token: str
token_type: str = "bearer"
user: UserResponse
class TokenPayload(BaseModel):
"""JWT token payload."""
user_id: str
login: str
exp: int