o
    +Wh                     @   s0   d Z ddlmZ ddlmZ G dd deZdS )a  
Analytics App Configuration
===========================

Django app configuration for the Adtlas Analytics module.
This file defines the app configuration, metadata, and initialization settings.

The Analytics app is responsible for:
- Collecting and processing advertising performance data
- Integrating with external analytics providers (SFR, Bouygues)
- Generating reports and dashboards
- Tracking VAST responses and impressions
- Providing real-time analytics capabilities

App Features:
- Real-time data collection
- Multi-provider analytics integration
- Custom report generation
- Performance metrics calculation
- Data visualization support
- Export capabilities
- Predictive analytics

Dependencies:
- Django REST Framework for API endpoints
- Celery for background data processing
- Redis for caching analytics data
- PostgreSQL for data storage
- External analytics APIs (SFR, Bouygues)

Author: Adtlas Development Team
Version: 1.0.0
Created: 2024
    )	AppConfig)gettext_lazyc                   @   s<   e Zd ZdZdZdZdZedZdd Z	dd	 Z
d
d ZdS )AnalyticsConfiga  
    Configuration class for the Analytics app.
    
    This class defines the app configuration including:
    - App name and label
    - Default auto field type
    - Verbose name for admin interface
    - Signal handlers registration
    - App initialization logic
    
    Attributes:
        default_auto_field (str): Default primary key field type
        name (str): Full Python path to the app
        label (str): Short name for the app
        verbose_name (str): Human-readable name for the app
    zdjango.db.models.BigAutoFieldzapps.analytics	analyticszAnalytics & Reportingc              
   C   sp   zddl m} ddl m} |   W dS  ty7 } zddl}|t}|d|  W Y d}~dS d}~ww )a&  
        Perform initialization when Django starts.
        
        This method is called when the app is ready and Django has finished
        loading all apps. It's used to:
        - Import and register signal handlers
        - Initialize background tasks
        - Set up analytics data collectors
        - Configure external API connections
        - Register custom admin actions
        
        Note:
            This method should not perform database operations as the
            database might not be ready yet during startup.
           )signals)tasksr   Nz&Analytics app initialization warning: )	 r   r   _initialize_analytics_servicesImportErrorlogging	getLogger__name__warning)selfr   r   er   logger r   TC:\Users\vibe-look\OneDrive\Desktop\Adtlas - Copy\New_Version\apps\analytics\apps.pyreadyG   s   
zAnalyticsConfig.readyc              
   C   sr   zddl m} | }|  |   W dS  ty8 } zddl}|t}|d|  W Y d}~dS d}~ww )a  
        Initialize analytics services and connections.
        
        This private method sets up:
        - External analytics API connections
        - Data collection services
        - Real-time processing pipelines
        - Cache warming for frequently accessed data
        
        Note:
            This method is called during app initialization and should
            not perform heavy operations that could slow down startup.
        r   )AnalyticsServicer   Nz(Analytics service initialization error: )	Zservicesr   Zinitialize_connections_register_periodic_tasks	Exceptionr   r   r   error)r   r   Zanalytics_servicer   r   r   r   r   r   r
   g   s   
z.AnalyticsConfig._initialize_analytics_servicesc              
   C   s   zddl m}m} ddlm} ddl}|t}|d W dS  t	yC } zddl}|t}|
d|  W Y d}~dS d}~ww )a  
        Register periodic Celery tasks for analytics data collection.
        
        This method sets up recurring tasks for:
        - Collecting data from external analytics providers
        - Processing VAST response data
        - Generating daily/weekly/monthly reports
        - Cleaning up old analytics data
        - Updating performance metrics
        
        Note:
            Tasks are registered with Celery Beat for scheduled execution.
        r   )PeriodicTaskIntervalSchedule)transactionNz1Analytics periodic tasks registration placeholderz$Periodic task registration warning: )Zdjango_celery_beat.modelsr   r   	django.dbr   r   r   r   infor   r   )r   r   r   r   r   r   r   r   r   r   r      s   

z(AnalyticsConfig._register_periodic_tasksN)r   
__module____qualname____doc__default_auto_fieldnamelabel_verbose_namer   r
   r   r   r   r   r   r   )   s     r   N)r!   django.appsr   django.utils.translationr   r%   r   r   r   r   r   <module>   s   #