namespace PrintService.Models;
///
/// Configuration for document types
///
public class DocumentConfig
{
///
/// Name/identifier of the document type
///
public string Name { get; set; } = string.Empty;
///
/// Printer name to send to
///
public string PrinterName { get; set; } = string.Empty;
///
/// Sequence of tray numbers to use (1-based, e.g., [3, 4, 1, 2])
/// These will be mapped to physical PaperSource indexes
///
public int[] TraySequence { get; set; } = Array.Empty();
///
/// Font name to use for rendering
///
public string FontName { get; set; } = "Courier New";
///
/// Font size in points
///
public float FontSize { get; set; } = 10f;
///
/// Vertical offset adjustment (in pixels)
///
public int VerticalOffset { get; set; } = 0;
///
/// Horizontal offset adjustment (in pixels)
///
public int HorizontalOffset { get; set; } = 0;
///
/// Text transformation rules (regex patterns to remove/replace)
///
public List Transformations { get; set; } = new();
///
/// Whether to archive files after printing (true) or delete them (false)
///
public bool ArchiveAfterPrint { get; set; } = true;
///
/// Archive folder path (if ArchiveAfterPrint is true)
///
public string? ArchivePath { get; set; }
///
/// Output folder for PDF files (when using "Microsoft Print to PDF")
/// If specified, PDFs will be saved to this folder automatically
///
public string? OutputPath { get; set; }
///
/// Skip post-processing (archive/delete) to leave files in queue for repeated testing
/// Useful for development and testing scenarios
///
public bool SkipPostProcessing { get; set; } = false;
}
///
/// Text transformation rule
///
public class TextTransform
{
///
/// Regex pattern to match
///
public string Pattern { get; set; } = string.Empty;
///
/// Replacement text (empty string to remove)
///
public string Replacement { get; set; } = string.Empty;
///
/// Description of what this transformation does
///
public string Description { get; set; } = string.Empty;
}