public class SepsisAlertHandler
{
    private readonly ISepsisBundleService _bundleService;
    private readonly ILogger<SepsisAlertHandler> _logger;

    public SepsisAlertHandler(ISepsisBundleService bundleService, ILogger<SepsisAlertHandler> logger)
    {
        _bundleService = bundleService;
        _logger = logger;
    }

    public async Task OnSepsisAlertCreatedAsync(
        Guid encounterId, Guid alertId, AlertType alertType, CancellationToken ct)
    {
        if (alertType != AlertType.SofaSepsis)
        {
            _logger.LogDebug(
                "Alert type {AlertType} does not trigger sepsis bundle — skipping",
                alertType.ToDbString());
            return;
        }

        var bundle = await _bundleService.TryCreateBundleAsync(encounterId, alertId, alertType, ct);

        if (bundle is not null)
            _logger.LogInformation(
                "Sepsis bundle {BundleId} created for encounter {EncounterId} (trigger={AlertType})",
                bundle.Id, encounterId, alertType.ToDbString());
    }
}