# -*- coding: utf-8 -*-
from __future__ import annotations

import pathlib
import typing

from hotpocket_backend.secrets.admin import AdminSecrets
from hotpocket_backend.secrets.webapp import WebAppSecrets
from hotpocket_common.constants import App, Environment


class PSettings(typing.Protocol):
    DEBUG: bool
    TESTING: bool
    ALLOWED_HOSTS: list[str]
    SECRET_KEY: str

    APP: App
    ENV: Environment

    SECRETS: AdminSecrets | WebAppSecrets

    MODEL_AUTH_IS_DISABLED: bool

    SITE_TITLE: str
    SITE_SHORT_TITLE: str
    IMAGE_ID: str

    SAVES_SAVE_ADAPTER: str
    SAVES_ASSOCIATION_ADAPTER: str

    UPLOADS_PATH: pathlib.Path

    AUTH_KEY_TTL: int

    UI_BASE_HEAD_INCLUDES: list
    UI_BASE_SCRIPT_INCLUDES: list

    UI_PAGE_HEAD_INCLUDES: list
    UI_PAGE_SCRIPT_INCLUDES: list

    OPERATOR_EMAIL: str | None
