#nullable enable using System.Data; namespace PlanTempus.Core.Outbox; public interface IOutboxService { Task EnqueueAsync(string type, object payload, IDbConnection? connection = null, IDbTransaction? transaction = null); Task> GetPendingAsync(int batchSize = 10); Task MarkAsSentAsync(Guid id); Task MarkAsFailedAsync(Guid id, string errorMessage); }