# -*- coding: utf-8 -*-
"""
Adtlas Activities App Configuration

This module configures the activities app for the Adtlas DAI Management System.
It handles activity tracking, logging, and audit trail functionality.

Features:
    - User activity tracking and monitoring
    - System event logging
    - Audit trail management
    - Activity analytics and reporting
    - Real-time activity feeds
    - Automated activity cleanup

Author: Adtlas Development Team
Version: 1.0.0
Last Updated: 2025-01-27
"""

from django.apps import AppConfig
from django.db.models.signals import post_migrate
from django.utils.translation import gettext_lazy as _


class ActivitiesConfig(AppConfig):
    """
    Configuration class for the activities app.
    
    This class defines the configuration for the activities application,
    including the app name, default auto field type, and initialization
    code for signals and default data.
    
    Attributes:
        default_auto_field (str): The default auto field type for models
        name (str): The full Python path to the app
        verbose_name (str): Human-readable name for the app
    """
    
    default_auto_field = "django.db.models.BigAutoField"
    name = "apps.activities"
    verbose_name = _("Activity Tracking & Audit Logs")
    
    def ready(self):
        """
        Initialize the app when Django starts.
        
        This method is called when the app is ready and can be used
        to register signals, perform initialization, or set up
        any app-specific configurations.
        
        Operations performed:
            - Register activity tracking signals
            - Initialize activity categories (via post_migrate)
        
        Note: Celery periodic task setup is handled via management command
        to avoid database access during app initialization.
        """
        # Import signals to register them
        try:
            from . import signals
            print("Activities app signals registered successfully")

            # Connect the post_migrate signal to initialize default activity categories
            post_migrate.connect(signals.create_default_activity_categories, sender=self) 
            
            # ✅ REMOVED: Celery setup moved to management command
            # post_migrate.connect(signals.setup_periodic_cleanup, sender=self)

        except ImportError as e:
            print(f"Warning: Could not import activities signals: {e}")

 


