using Extrudex.Domain.Enums; namespace Extrudex.Domain.Interfaces; /// /// Service interface for generating QR codes that encode deep links to /// Extrudex resources (spools, printers, locations). QR codes are /// high-contrast and optimized for small label printing. /// public interface IQrCodeService { /// /// Generates a PNG QR code image for the specified resource type and ID. /// The encoded URL points to the resource's detail page in the Extrudex frontend. /// /// The type of resource (Spool, Printer, Location). /// The unique identifier of the resource. /// /// Pixel density per QR module. Higher values produce larger images. /// Default (20) balances readability and label size. /// /// A byte array containing the PNG image data. byte[] GeneratePng(QrResourceType resourceType, Guid id, int pixelsPerModule = 20); /// /// Generates an SVG QR code image for the specified resource type and ID. /// SVG is resolution-independent and ideal for printing at any scale. /// /// The type of resource (Spool, Printer, Location). /// The unique identifier of the resource. /// A string containing the SVG markup. string GenerateSvg(QrResourceType resourceType, Guid id); /// /// Constructs the URL that will be encoded into the QR code for the given resource. /// /// The type of resource. /// The unique identifier of the resource. /// The absolute URL to be encoded in the QR code. string GetResourceUrl(QrResourceType resourceType, Guid id); }