# app/modules/core/services/__init__.py
"""
Core module services.

Provides foundational services used across the platform:
- auth_service: Authentication and authorization
- menu_service: Menu visibility and configuration
- storage_service: Storage abstraction (local/R2)
- admin_settings_service: Platform-wide admin settings
- platform_settings_service: Platform settings with resolution chain
"""

from app.modules.core.services.admin_settings_service import (
    AdminSettingsService,
    admin_settings_service,
)
from app.modules.core.services.auth_service import AuthService, auth_service
from app.modules.core.services.menu_discovery_service import (
    DiscoveredMenuItem,
    DiscoveredMenuSection,
    MenuDiscoveryService,
    menu_discovery_service,
)
from app.modules.core.services.menu_service import (
    MenuItemConfig,
    MenuService,
    menu_service,
)
from app.modules.core.services.platform_settings_service import (
    PlatformSettingsService,
    platform_settings_service,
)
from app.modules.core.services.stats_aggregator import (
    StatsAggregatorService,
    stats_aggregator,
)
from app.modules.core.services.storage_service import (
    LocalStorageBackend,
    R2StorageBackend,
    StorageBackend,
    get_storage_backend,
    reset_storage_backend,
)
from app.modules.core.services.widget_aggregator import (
    WidgetAggregatorService,
    widget_aggregator,
)

__all__ = [
    # Auth
    "AuthService",
    "auth_service",
    # Menu (legacy)
    "MenuService",
    "MenuItemConfig",
    "menu_service",
    # Menu Discovery (module-driven)
    "MenuDiscoveryService",
    "DiscoveredMenuItem",
    "DiscoveredMenuSection",
    "menu_discovery_service",
    # Storage
    "StorageBackend",
    "LocalStorageBackend",
    "R2StorageBackend",
    "get_storage_backend",
    "reset_storage_backend",
    # Admin settings
    "AdminSettingsService",
    "admin_settings_service",
    # Platform settings
    "PlatformSettingsService",
    "platform_settings_service",
    # Stats aggregator
    "StatsAggregatorService",
    "stats_aggregator",
    # Widget aggregator
    "WidgetAggregatorService",
    "widget_aggregator",
]
