namespace PrintService.Models;
///
/// Represents a print job in the queue
///
public class PrintJob
{
///
/// Unique identifier for the job
///
public Guid Id { get; set; } = Guid.NewGuid();
///
/// Path to the original capture file
///
public string SourceFilePath { get; set; } = string.Empty;
///
/// Path to the queued file (after being moved with GUID name)
///
public string QueuedFilePath { get; set; } = string.Empty;
///
/// Document type (invoice, order, delivery, etc.)
///
public string DocumentType { get; set; } = string.Empty;
///
/// Optional order number
///
public string? OrderNumber { get; set; }
///
/// When the job was created
///
public DateTime CreatedAt { get; set; } = DateTime.Now;
///
/// When the job was last updated
///
public DateTime UpdatedAt { get; set; } = DateTime.Now;
///
/// Current status of the job
///
public PrintJobStatus Status { get; set; } = PrintJobStatus.Pending;
///
/// Number of times this job has been attempted
///
public int RetryCount { get; set; } = 0;
///
/// Last error message if failed
///
public string? LastError { get; set; }
///
/// Original filename before moving to queue
///
public string OriginalFilename { get; set; } = string.Empty;
}
///
/// Status of a print job
///
public enum PrintJobStatus
{
Pending,
Processing,
Completed,
Failed,
RetryScheduled
}