namespace JSMR.Application.Jobs; public interface IJobProgressWriter { Task SetStepAsync(int jobId, string step, CancellationToken cancellationToken); Task SetProgressAsync(int jobId, int? current, int? total, CancellationToken cancellationToken); Task SetHeartbeatAsync(int jobId, CancellationToken cancellationToken); Task CompleteAsync(int jobId, string? summary, CancellationToken cancellationToken); Task FailAsync(int jobId, string error, CancellationToken cancellationTokenct); }