"""
Django App Configuration for Notifications Module.

This module manages comprehensive notification systems including real-time alerts,
email notifications, push notifications, and in-app messaging. It provides
flexible notification delivery and management functionality across multiple channels.

Features:
- Multi-channel notification delivery
- Real-time push notifications
- Email notification templates
- In-app notification center
- Notification preferences and settings
- Delivery tracking and analytics

Author: Adtlas Development Team
Version: 1.0.0
"""

from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class NotificationsConfig(AppConfig):
    """
    Django application configuration for the Notifications app.
    
    This configuration class defines the settings and metadata for the notifications
    application, including database field configurations, application naming,
    and initialization hooks for notification systems.
    
    Attributes:
        default_auto_field (str): The default primary key field type for models
        name (str): The full Python path to the application
        verbose_name (str): Human-readable name for the application
        label (str): Short name for the application (used in migrations)
    """
    
    # Database configuration
    default_auto_field = "django.db.models.BigAutoField"
    
    # Application identification
    name = "apps.notifications"
    verbose_name = _("Notification System")
    label = "notifications"
    
    def ready(self):
        """
        Initialize the application when Django starts.
        
        This method is called when the application is ready and all models
        have been imported. It's used to register signal handlers for
        notification events and delivery systems.
        """
        try:
            # Import signal handlers for notification operations
            from . import signals  # noqa: F401
        except ImportError:
            # Signals module doesn't exist yet
            pass
