"""Chat app_settings definitions — registered on AppConfig.ready()."""

from __future__ import annotations

from simorgh.apps.app_settings.registry import SettingDefinition, register_setting

# Max file size per attachment in bytes. Default 50 MiB.
CHAT_MAX_FILE_BYTES = register_setting(
    SettingDefinition(
        key="chat.max_file_bytes",
        type="int",
        default=50 * 1024 * 1024,  # 50 MiB
        label_key="chat.settings.max_file_bytes.label",
        description_key="chat.settings.max_file_bytes.description",
        scopes=("system", "tenant"),
    )
)

# Allowed MIME types. Empty list means all types accepted.
# Examples: "image/jpeg", "image/png", "image/gif", "application/pdf"
CHAT_ALLOWED_MIME_TYPES = register_setting(
    SettingDefinition(
        key="chat.allowed_mime_types",
        type="json",
        default=[
            "image/jpeg",
            "image/png",
            "image/gif",
            "image/webp",
            "application/pdf",
            "application/msword",
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
            "application/vnd.ms-excel",
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "text/plain",
            "application/zip",
            "video/mp4",
            "audio/mpeg",
        ],
        label_key="chat.settings.allowed_mime_types.label",
        description_key="chat.settings.allowed_mime_types.description",
        scopes=("system", "tenant"),
    )
)
