import importlib

from django.conf import settings

from dbsettings.functions import getValue

providers = []

modules_available = []

for module in settings.EXPEPHALON_MODULES:
    try:
        mos = importlib.import_module(f"{module}.sms")
        for provider in mos.SMSPROVIDERS:
            providers.append(provider)
        if mos.CREATE:
            modules_available.append(mos.CREATE)
    except (AttributeError, ModuleNotFoundError):
        continue

def get_sms_provider_by_name(name):
    for provider in providers:
        if provider.name == name:
            return provider

def get_default_sms_provider_name():
    return getValue("core.sms.default", False)

def get_default_sms_provider():
    name = get_default_sms_provider_name()
    if name:
        for provider in providers:
            if provider.name == name and provider.is_active:
                return provider
    for provider in providers:
        if provider.is_active:
            return provider