"""Схемы публичного эндпоинта настроек клиента (`GET /public/settings`)."""

from pydantic import BaseModel


class PublicSettingsOut(BaseModel):
    """Настройки инстанса, нужные клиенту ДО аутентификации.

    Общая точка для флагов, которые должны быть на руках у страницы логина
    и гостевой карточки входа (`LoginPage`/`JoinPage`) — обе публичные,
    `GET /admin/settings` им недоступен (только для админа). Отдельно от
    `GET /auth/registration-options`: тот про опции конкретно карточки
    регистрации, а не про настройки инстанса в целом (сессия 33).
    """

    # Проверка устройств на входе (сессия 33) — см.
    # `core/plugins/config.py::InstanceConfig.device_check_enabled`.
    device_check_enabled: bool
    # Замена фона видео (сессия 35) — нужен превью на `JoinPage`, чтобы
    # показать выбор фона ещё до входа в комнату. Участнику УЖЕ в комнате тот
    # же флаг приезжает в join-ответе (`JoinOut.virtual_background_enabled`):
    # эта страница публичная и `GET /admin/settings` ей недоступен.
    virtual_background_enabled: bool
