from notifier.backends import MessageAPINotifierBackend, WeComWebhookNotifierBackend
from notifier.models import NotifierChannelEnum


BACKEND_REGISTRY = {
    NotifierChannelEnum.WECOM_WEBHOOK: WeComWebhookNotifierBackend,
    NotifierChannelEnum.MESSAGE_API: MessageAPINotifierBackend,
}


def get_notifier_backend(channel: str):
    try:
        backend_cls = BACKEND_REGISTRY[channel]
    except KeyError as exc:
        raise ValueError(f"不支持的通知渠道: {channel}") from exc
    return backend_cls()
