using GB5Shared.DTO.Framework.Login;
namespace GB5Shared.QueueReader
{
public interface IJobQueueEnqueuer
{
///
/// Optional FK to TJOBEXECUTION.JOBEXECUTIONID (TJOBQUEUE.JOBEXECUTIONID) — set when
/// this queue row originates from a scheduler job execution (e.g.
/// SchedulerExecutionDeliveryService's SCHEDULER_ACTION_EVENT messages), so the two
/// rows can be joined directly instead of parsing MessageId/CorrelationId. Leave null
/// for message types unrelated to a scheduler job.
///
Task EnqueueAsync(string messageType, string payload, LoginDTO login,
string? messageId = null, byte priority = 5, DateTime? scheduledFor = null,
int maxRetries = 3, string? correlationId = null, string? sourceService = null,
long? jobExecutionId = null, CancellationToken ct = default);
}
}