"""Views & Visualization — settings definitions.

Platform-wide settings for view, dashboard, and chart behaviour.
"""

from __future__ import annotations

from simorgh.apps.app_settings.registry import SettingDefinition, register_setting


def register_all() -> None:
    register_setting(
        SettingDefinition(
            key="visualization.max_saved_views_per_entity",
            type="int",
            default=20,
            label_key="visualization.settings.max_saved_views",
            description_key="visualization.settings.max_saved_views_desc",
            scopes=("tenant",),
        )
    )
    register_setting(
        SettingDefinition(
            key="visualization.max_dashboards_per_tenant",
            type="int",
            default=50,
            label_key="visualization.settings.max_dashboards",
            description_key="visualization.settings.max_dashboards_desc",
            scopes=("tenant",),
        )
    )
    register_setting(
        SettingDefinition(
            key="visualization.max_widgets_per_dashboard",
            type="int",
            default=30,
            label_key="visualization.settings.max_widgets",
            description_key="visualization.settings.max_widgets_desc",
            scopes=("tenant",),
        )
    )
    register_setting(
        SettingDefinition(
            key="visualization.max_charts_per_entity",
            type="int",
            default=10,
            label_key="visualization.settings.max_charts",
            description_key="visualization.settings.max_charts_desc",
            scopes=("tenant",),
        )
    )
    register_setting(
        SettingDefinition(
            key="visualization.default_dashboard_grid_cols",
            type="int",
            default=12,
            label_key="visualization.settings.default_grid_cols",
            description_key="visualization.settings.default_grid_cols_desc",
            scopes=("tenant",),
        )
    )
