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 }