namespace DocumentService.Client.Interfaces; /// /// Client for Swiss QR Code extraction operations. /// public interface ISwissQrCodeClient { /// /// Extracts Swiss QR Code from PDF (multipart). /// /// PDF file stream /// If true, returns raw QR text lines instead of parsed Bill object /// Cancellation token /// Swiss QR Code extraction result Task ExtractSwissQrCodeAsync(Stream pdfStream, bool raw = false, CancellationToken cancellationToken = default); /// /// Extracts Swiss QR Code from PDF (Base64). /// /// PDF file as byte array /// If true, returns raw QR text lines instead of parsed Bill object /// Cancellation token /// Swiss QR Code extraction result Task ExtractSwissQrCodeAsync(byte[] pdfBytes, bool raw = false, CancellationToken cancellationToken = default); } /// /// DTO for Swiss QR Code extraction result /// public record SwissQrCodeExtractionResult { /// Parsed Swiss QR bill object. null when raw=true was requested. public object? Bill { get; init; } /// Raw QR code text lines. Populated when raw=true was requested. public List RawLines { get; init; } = new(); }