using Kbx.Shared.Integrations.Generated; namespace Kbx.Shared.Integrations; public static class KbxDurableIntegrationRetryPlanner { public static DateTimeOffset? NextAttemptAt( KbxIntegrationDefinition definition, int durableAttempt, DateTimeOffset now) { if (durableAttempt < 1) throw new ArgumentOutOfRangeException(nameof(durableAttempt)); if (durableAttempt > definition.LongRetryAttempts) return null; var index = durableAttempt - 1; if (index >= definition.LongRetryScheduleSeconds.Count) return null; return now.AddSeconds(definition.LongRetryScheduleSeconds[index]); } }