using System.ComponentModel.DataAnnotations; namespace Extrudex.API.DTOs.PrintJobs; /// /// Query parameters for filtering and paginating the print job list endpoint. /// All parameters are optional — defaults are applied when not provided. /// public class PrintJobQueryParameters { /// Page number (1-based). Defaults to 1. [Range(1, int.MaxValue, ErrorMessage = "PageNumber must be at least 1.")] public int PageNumber { get; set; } = 1; /// Number of items per page. Defaults to 20, max 100. [Range(1, 100, ErrorMessage = "PageSize must be between 1 and 100.")] public int PageSize { get; set; } = 20; /// Optional filter by printer ID. Only returns jobs for this printer. public Guid? PrinterId { get; set; } /// Optional filter by spool ID. Only returns jobs that used this spool. public Guid? SpoolId { get; set; } /// /// Optional filter by job status. Must be a valid JobStatus value /// (Queued, Printing, Completed, Cancelled, Failed). Case-insensitive. /// public string? Status { get; set; } }