Add Swiss QR Code extraction feature

Introduced DTOs for request and response to handle Swiss QR Code extraction from PDF documents. Implemented `ExtractSwissQrCodeHandler` to process the extraction using `ISwissQrCodeProcessor`. Added validation for the query with `ExtractSwissQrCodeValidator`. Developed unit tests to ensure correct behavior for successful and failure scenarios.
This commit is contained in:
OlgunR
2026-06-26 08:46:42 +02:00
parent 47cba50d0f
commit 586fd4a207
6 changed files with 233 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
using DocumentOperator.Domain.Models.ValueObjects;
using DocumentOperator.Domain.ValueObjects;
using MediatR;
namespace DocumentOperator.Application.Features.Documents.ExtractSwissQrCode;
/// <summary>
/// Query to extract Swiss QR Code data from a PDF document.
/// Returns references (passed through) and parsed QR code data.
/// </summary>
/// <param name="References">Array of reference strings to pass through in the response</param>
/// <param name="PdfContent">PDF document content as Base64 string</param>
public record ExtractSwissQrCodeQuery(
IReadOnlyList<string> References,
Base64String PdfContent
) : IRequest<ExtractSwissQrCodeResult>;
/// <summary>
/// Result containing passed-through references and extracted Swiss QR Code data
/// </summary>
/// <param name="References">Reference strings passed through from request</param>
/// <param name="QrCodeData">Parsed Swiss QR Code data from the last page of the PDF</param>
public record ExtractSwissQrCodeResult(
IReadOnlyList<string> References,
SwissQrCodeData QrCodeData
);