"""
Django App Configuration for Agencies Module.

This module manages agency operations, partnerships, and organizational structures
within the platform. It provides comprehensive agency management functionality
including registration, profile management, and collaboration tools.

Features:
- Agency registration and onboarding
- Agency profile and portfolio management
- Partnership and collaboration tools
- Agency performance metrics
- Multi-agency project coordination

Author: Adtlas Development Team
Version: 1.0.0
"""

from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class AgenciesConfig(AppConfig):
    """
    Django application configuration for the Agencies app.
    
    This configuration class defines the settings and metadata for the agencies
    application, including database field configurations, application naming,
    and initialization hooks for agency 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.agencies"
    verbose_name = _("Agency Management")
    label = "agencies"
    
    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
        agency management and partnership systems.
        """
        try:
            # Import signal handlers for agency operations
            from . import signals  # noqa: F401
        except ImportError:
            # Signals module doesn't exist yet
            pass
