"""
Django App Configuration for Campaigns Module.

This module manages marketing campaigns, promotional activities, and campaign
analytics within the platform. It provides comprehensive campaign management
functionality including creation, execution, monitoring, and performance analysis.

Features:
- Campaign creation and management
- Multi-channel campaign execution
- Performance tracking and analytics
- A/B testing and optimization
- Campaign scheduling and automation
- ROI and conversion tracking

Author: Adtlas Development Team
Version: 1.0.0
"""

from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class CampaignsConfig(AppConfig):
    """
    Django application configuration for the Campaigns app.
    
    This configuration class defines the settings and metadata for the campaigns
    application, including database field configurations, application naming,
    and initialization hooks for campaign management 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.campaigns"
    verbose_name = _("Campaign Management")
    label = "campaigns"
    
    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
        campaign events and performance tracking.
        """
        try:
            # Import signal handlers for campaign operations
            from . import signals  # noqa: F401
        except ImportError:
            # Signals module doesn't exist yet
            pass
