"""
Environment setting definitions organized by category.
"""

from typing import Any, Dict, List, cast

from ..env_settings import EnvSetting
from .testing import TESTING_SETTINGS
from .bootstrap import BOOTSTRAP_SETTINGS
from .db_config import DB_CONFIG_SETTINGS
from .news_scheduler import NEWS_SCHEDULER_SETTINGS
from .security import SECURITY_SETTINGS
from .server import SERVER_SETTINGS

# Combine all settings for easy access
ALL_SETTINGS: Dict[str, List[EnvSetting[Any]]] = {
    "testing": cast(List[EnvSetting[Any]], TESTING_SETTINGS),
    "bootstrap": cast(List[EnvSetting[Any]], BOOTSTRAP_SETTINGS),
    "db_config": cast(List[EnvSetting[Any]], DB_CONFIG_SETTINGS),
    "news_scheduler": cast(List[EnvSetting[Any]], NEWS_SCHEDULER_SETTINGS),
    "security": cast(List[EnvSetting[Any]], SECURITY_SETTINGS),
    "server": cast(List[EnvSetting[Any]], SERVER_SETTINGS),
}

__all__ = [
    "TESTING_SETTINGS",
    "BOOTSTRAP_SETTINGS",
    "DB_CONFIG_SETTINGS",
    "NEWS_SCHEDULER_SETTINGS",
    "SECURITY_SETTINGS",
    "SERVER_SETTINGS",
    "ALL_SETTINGS",
]
