namespace FrameworkBLL.SystemJob
{
///
/// Strongly-typed contract for server-to-client SysJob SignalR push messages.
/// Defined in FrameworkBLL so both FrameworkBLL (SysJobShareBLL) and
/// FrameworkSL (SysJobHub) can reference it without a circular dependency.
///
public interface ISysJobClient
{
/// Job has been claimed and execution started.
Task JobStarted(int sysJobId, int sysJobRunId, string worker, DateTime startedAt);
/// Job completed successfully.
Task JobCompleted(int sysJobId, int sysJobRunId, string? resultLocation, DateTime endedAt);
/// Job failed and will be retried.
Task JobRetrying(int sysJobId, int sysJobRunId, int retryCount, int maxRetries, string error, DateTime endedAt);
/// Job has permanently failed (retry limit reached).
Task JobFailed(int sysJobId, int sysJobRunId, string error, DateTime endedAt);
/// Job was cancelled by a user before or during execution.
Task JobCancelled(int sysJobId, DateTime cancelledAt);
/// A job has been shared with the connected user.
Task JobShared(int sysJobId, string sharedByName);
/// Progress update for a running job (0–100).
Task JobProgress(int sysJobId, int progressPct, string progressMessage);
}
}