using DocumentService.Application.Common.DTOs; namespace DocumentService.Client.Interfaces; /// /// Orchestrated multi-step workflows that combine multiple DocumentService operations into /// a single, higher-level call. Prefer these over manually chaining individual clients. /// public interface IWorkflowsClient { /// /// Validates the PDF and extracts its Swiss QR Code in a single call. /// Validation runs first; extraction is only attempted on valid documents. /// /// PDF file as byte array. /// /// false (default) – returns a parsed object.
/// true – returns raw QR text lines without parsing. /// /// /// true (default) – throws when the PDF fails validation.
/// false – returns null instead, allowing the caller to handle the case without a try/catch. /// /// Cancellation token. /// /// Swiss QR Code extraction result, or null if the document is invalid and /// is false. /// /// /// Thrown when the PDF fails validation and is true. /// Task ExtractSwissQrCodeValidatedAsync( byte[] pdfBytes, bool raw = false, bool throwIfInvalid = true, CancellationToken cancellationToken = default); /// /// PDF file as a stream. /// /// /// Cancellation token. Task ExtractSwissQrCodeValidatedAsync( Stream pdfStream, bool raw = false, bool throwIfInvalid = true, CancellationToken cancellationToken = default); /// /// Absolute or relative path to the PDF file. /// /// /// Cancellation token. Task ExtractSwissQrCodeValidatedAsync( string filePath, bool raw = false, bool throwIfInvalid = true, CancellationToken cancellationToken = default); }