"""
Feature flags para control de nuevas funcionalidades ML.

Uso:
    from ..config.feature_flags import FeatureFlags

    if FeatureFlags.USE_SYMBOL_TRAINERS:
        # usar modelos por símbolo
        ...

Variables de entorno:
    ML_USE_SYMBOL_TRAINERS: Activar modelos por símbolo (default: true)
    ML_USE_DIRECTIONAL_FILTERS: Activar filtros direccionales (default: true)
    ML_USE_CENTRALIZED_CONFIGS: Usar configuración centralizada (default: true)
"""
import os


class FeatureFlags:
    """Feature flags para control de nuevas funcionalidades ML"""

    # Activar modelos por símbolo (prediction_service.py)
    USE_SYMBOL_TRAINERS = os.getenv('ML_USE_SYMBOL_TRAINERS', 'true').lower() == 'true'

    # Activar filtros direccionales (signal_generator.py)
    USE_DIRECTIONAL_FILTERS = os.getenv('ML_USE_DIRECTIONAL_FILTERS', 'true').lower() == 'true'

    # Usar configuración centralizada (range_predictor_factor.py)
    USE_CENTRALIZED_CONFIGS = os.getenv('ML_USE_CENTRALIZED_CONFIGS', 'true').lower() == 'true'

    @classmethod
    def status(cls) -> dict:
        """Retornar estado actual de todos los flags"""
        return {
            'USE_SYMBOL_TRAINERS': cls.USE_SYMBOL_TRAINERS,
            'USE_DIRECTIONAL_FILTERS': cls.USE_DIRECTIONAL_FILTERS,
            'USE_CENTRALIZED_CONFIGS': cls.USE_CENTRALIZED_CONFIGS,
        }
