package repository import "context" type QueueRepository interface { Enqueue(ctx context.Context, workerType, jobID string) error Dequeue(ctx context.Context, workerType string, timeoutSeconds int) (string, error) RemoveJob(ctx context.Context, workerType, jobID string) error SetCancelSignal(ctx context.Context, jobID, reason string) error GetCancelSignal(ctx context.Context, jobID string) (bool, string, error) ClearCancelSignal(ctx context.Context, jobID string) error TryLock(ctx context.Context, jobID, workerID string, ttlSeconds int) (bool, error) RefreshLock(ctx context.Context, jobID, workerID string, ttlSeconds int) error ReleaseLock(ctx context.Context, jobID, workerID string) error TryAcquireDedupe(ctx context.Context, templateType, dedupeHash, jobID string, ttlSeconds int) (bool, error) ReleaseDedupe(ctx context.Context, templateType, dedupeHash string) error TrySchedulerLock(ctx context.Context, holder string, ttlSeconds int) (bool, error) ReleaseSchedulerLock(ctx context.Context, holder string) error }