using DocumentService.Application.Common.DTOs;
using DocumentService.Client.Models.Results;
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 attempts Swiss QR Code extraction in a single call,
/// returning both results together. The method never throws on invalid documents –
/// the caller receives the full regardless of outcome,
/// enabling detailed logging, diagnostics, or batch processing without try/catch.
///
/// PDF file as byte array.
///
/// false (default) – returns a parsed object.
/// true – returns raw QR text lines without parsing.
///
/// Cancellation token.
///
/// A containing the
/// (always populated) and the (null if the
/// document was invalid).
///
Task InspectSwissQrCodeAsync(
byte[] pdfBytes,
bool raw = false,
CancellationToken cancellationToken = default);
///
/// PDF file as a stream.
///
/// Cancellation token.
Task InspectSwissQrCodeAsync(
Stream pdfStream,
bool raw = false,
CancellationToken cancellationToken = default);
}