"""Inngest 工作流模块。"""

from typing import Any, Callable

import inngest

from butler.config import settings

# 开发模式下不需要 signing key
inngest_client = inngest.Inngest(
    app_id="butler-shell",
    event_key=settings.inngest_event_key or "dev_key",
    signing_key=settings.inngest_signing_key or None,
    is_production=bool(settings.inngest_signing_key),
)

__all__ = ["inngest_client"]


def function(
    *, fn_id: str, name: str, trigger: inngest.TriggerEvent
) -> Callable[[Callable[..., Any]], inngest.Function[Any]]:
    """Create Inngest function with client."""
    return inngest_client.create_function(fn_id=fn_id, name=name, trigger=trigger)
