"""Creatives App Configuration

Django app configuration for the creatives module.
Handles creative asset management, processing, and optimization.

Features:
- Creative file upload and processing
- Multi-format transcoding
- Version control and approval workflows
- Performance tracking
- Template management
- Brand safety compliance

Signals:
- Creative upload processing
- Automatic transcoding
- Performance tracking
- Approval notifications
- Compliance checks
"""

from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _


class CreativesConfig(AppConfig):
    """Configuration for Creatives app.
    
    Manages creative assets, processing workflows, and optimization.
    Handles file uploads, transcoding, approval processes, and performance tracking.
    
    Features:
    - Creative asset management
    - Multi-format support
    - Approval workflows
    - Performance analytics
    - Template system
    - Compliance checking
    """
    
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'apps.creatives'
    verbose_name = _('Creative Management')
    
    def ready(self):
        """Initialize app when Django starts.
        
        Imports signal handlers for:
        - Creative processing
        - File transcoding
        - Approval workflows
        - Performance tracking
        - Compliance checks
        """
        try:
            # Import signal handlers
            import apps.creatives.signals  # noqa F401
        except ImportError:
            pass
        
        # Register custom template tags
        try:
            from django.template import engines
            from django.template.backends.django import DjangoTemplates
            
            for engine in engines.all():
                if isinstance(engine, DjangoTemplates):
                    engine.engine.builtins.append('apps.creatives.templatetags.creative_tags')
        except ImportError:
            pass