from .roc import ROCAdvice
from .som import SOMAdvice
from .cdn import CDNAdvice
from .cpcss import CPCSSAdvice
from .imgopt import ImgOptAdvice
from .wpos_base import WPOSModuleApply

advice_mapping = {
    "OBJECT_CACHE": ROCAdvice(),
    "SITE_OPTIMIZATION": SOMAdvice(),
    "CDN": CDNAdvice(),
    "CPCSS": CPCSSAdvice(),
    "IMAGE_OPTIMIZATION": ImgOptAdvice()
}

supported = tuple(advice_mapping.keys())


def get_advice_instance(advice_type: str) -> WPOSModuleApply:
    """Get appropriate instance of Apply actions class by advice type"""
    return advice_mapping[advice_type]
