"""Catalog Engine — settings registration."""

from __future__ import annotations

from simorgh.apps.catalog.models import CatalogType


def register_all() -> None:
    from simorgh.apps.app_settings.models import SettingScope
    from simorgh.apps.app_settings.registry import SettingDefinition, register_setting

    register_setting(
        SettingDefinition(
            key="catalog.enabled_catalog_types",
            type="json",
            default=[ct.value for ct in CatalogType],
            label_key="catalog.settings.enabled_catalog_types",
            description_key="catalog.settings.enabled_catalog_types.help",
            scopes=(SettingScope.TENANT,),
        )
    )
    register_setting(
        SettingDefinition(
            key="catalog.max_items_per_category",
            type="int",
            default=500,
            label_key="catalog.settings.max_items_per_category",
            scopes=(SettingScope.TENANT,),
        )
    )
    register_setting(
        SettingDefinition(
            key="catalog.require_approval_for_publish",
            type="bool",
            default=True,
            label_key="catalog.settings.require_approval_for_publish",
            scopes=(SettingScope.TENANT,),
        )
    )
    register_setting(
        SettingDefinition(
            key="catalog.enable_custom_attributes",
            type="bool",
            default=True,
            label_key="catalog.settings.enable_custom_attributes",
            scopes=(SettingScope.TENANT,),
        )
    )
    register_setting(
        SettingDefinition(
            key="catalog.max_related_items",
            type="int",
            default=10,
            label_key="catalog.settings.max_related_items",
            scopes=(SettingScope.TENANT,),
        )
    )
