Загрузка данных


from django.utils.translation import gettext_lazy as _
from pydantic import BaseModel, EmailStr, Field

class LoginRequestSchema(BaseModel):
    """Схема запроса для аутентификации пользователя."""
    email: EmailStr = Field(
        description=_("Unique electronic address of the user registered in the system."),
        examples=["vfx_artist@paprika.studio"]
    )
    password: str = Field(
        min_length=8,
        max_length=128,
        description=_("User password. Must be at least 8 characters long."),
        examples=["p@ssw0rd_vfx_2026"]
    )

class LoginResponseSchema(BaseModel):
    """Схема успешного ответа при аутентификации (Access токен)."""
    access: str = Field(
        description=_("Short-lived JWT Access token. Passed in the 'Authorization: Bearer' header."),
        examples=["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."]
    )

class RefreshRequestSchema(BaseModel):
    """Схема обновления токена. Тело должно быть пустым, токен извлекается из куки."""
    class Config:
        extra = "forbid"

class RefreshResponseSchema(BaseModel):
    """Схема успешного обновления сессии."""
    access: str = Field(
        description=_("New valid JWT Access token."),
        examples=["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.new..."]
    )

class LogoutRequestSchema(BaseModel):
    """Схема запроса для выхода из системы (пустое тело)."""
    class Config:
        extra = "forbid"

class LogoutResponseSchema(BaseModel):
    """Схема ответа при успешном выходе из системы."""
    detail: str = Field(
        default="Successfully logged out.",
        description=_("Text confirmation of successful session termination."),
        examples=["Successfully logged out."]
    )