"""
Django App Configuration for Reports Module.

This module manages comprehensive reporting and analytics functionality
including data visualization, custom reports, and business intelligence.
It provides powerful reporting tools for insights and decision-making.

Features:
- Custom report generation
- Data visualization and charts
- Scheduled report delivery
- Interactive dashboards
- Export functionality (PDF, Excel, CSV)
- Real-time analytics and metrics

Author: Adtlas Development Team
Version: 1.0.0
"""

from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class ReportsConfig(AppConfig):
    """
    Django application configuration for the Reports app.
    
    This configuration class defines the settings and metadata for the reports
    application, including database field configurations, application naming,
    and initialization hooks for reporting and analytics 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.reports"
    verbose_name = _("Reports & Analytics")
    label = "reports"
    
    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
        report generation and analytics operations.
        """
        try:
            # Import signal handlers for report operations
            from . import signals  # noqa: F401
        except ImportError:
            # Signals module doesn't exist yet
            pass
