diff --git a/DocumentService.API/Controllers/PdfAttachmentController.cs b/DocumentService.API/Controllers/PdfAttachmentController.cs
index 10c3efb..5f1ebba 100644
--- a/DocumentService.API/Controllers/PdfAttachmentController.cs
+++ b/DocumentService.API/Controllers/PdfAttachmentController.cs
@@ -2,7 +2,7 @@ using DocumentService.Application.AddAttachments;
using DocumentService.Application.CheckPdfAttachments.Queries;
using DocumentService.Application.Common.DTOs;
using DocumentService.Application.ExtractPdfAttachments;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Domain.Common.Exceptions;
using MediatR;
using Microsoft.AspNetCore.Http;
@@ -290,67 +290,3 @@ public class PdfAttachmentController(IMediator mediator) : ControllerBase
}
}
-///
-/// Request DTO for Base64-encoded PDF attachment check
-///
-public record CheckPdfAttachmentsRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public string Base64Pdf { get; init; } = string.Empty;
-}
-
-///
-/// Request DTO for Base64-encoded PDF attachment extraction
-///
-public record ExtractPdfAttachmentsRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
-
-///
-/// Request DTO for Base64-encoded PDF with attachments to add
-///
-public record AddAttachmentsRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-
- ///
- /// List of attachments to embed
- ///
- public required List Attachments { get; init; }
-}
-
-///
-/// DTO for attachment file in request
-///
-public record AttachmentRequestDto
-{
- ///
- /// File name (e.g., "invoice.xml", "document.pdf")
- ///
- /// factur-x.xml
- public required string FileName { get; init; }
-
- ///
- /// File content encoded as Base64 string
- ///
- /// PD94bWwgdmVyc2lvbj0iMS4wIj8+...
- public required string Base64Content { get; init; }
-
- ///
- /// MIME type (optional, e.g., "application/xml")
- ///
- /// application/xml
- public string? MimeType { get; init; }
-}
diff --git a/DocumentService.API/Controllers/PdfConversionController.cs b/DocumentService.API/Controllers/PdfConversionController.cs
index 9bf7228..84fd8b7 100644
--- a/DocumentService.API/Controllers/PdfConversionController.cs
+++ b/DocumentService.API/Controllers/PdfConversionController.cs
@@ -1,6 +1,6 @@
using DocumentService.Application.ConvertFromPdfA;
using DocumentService.Application.ConvertToPdfA;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Domain.Common.Exceptions;
using MediatR;
using Microsoft.AspNetCore.Http;
diff --git a/DocumentService.API/Controllers/PdfOperationsController.cs b/DocumentService.API/Controllers/PdfOperationsController.cs
index 90dde0f..f3a3177 100644
--- a/DocumentService.API/Controllers/PdfOperationsController.cs
+++ b/DocumentService.API/Controllers/PdfOperationsController.cs
@@ -1,5 +1,6 @@
using DocumentService.Application.AddAnnotation;
using DocumentService.Application.AddStamp;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Application.MergePdfs;
using DocumentService.Domain.Common.Exceptions;
using DocumentService.Domain.Models.ValueObjects;
@@ -158,7 +159,7 @@ public class PdfOperationsController(IMediator mediator) : ControllerBase
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)]
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status500InternalServerError)]
public async Task AnnotateFromBase64(
- [FromBody] AddAnnotationBase64Command command,
+ [FromBody] AddAnnotationBase64Request command,
CancellationToken cancellationToken)
{
// Convert Base64 to MemoryStream
@@ -404,116 +405,6 @@ public class AddAnnotationMultipartRequest
public AnnotationOrigin Origin { get; set; } = AnnotationOrigin.BottomLeft;
}
-///
-/// Request DTO for Base64-encoded PDF merge operation (API layer only - converts to MergePdfsCommand)
-///
-public record MergePdfsBase64Request
-{
- ///
- /// Array of Base64-encoded PDF files (minimum 2 required)
- ///
- /// ["JVBERi0xLjQK...", "JVBERi0xLjQK..."]
- public required List Base64Pdfs { get; init; }
-
- ///
- /// Optional page ranges per PDF (null = all pages).
- /// Format: "1-3,5" means pages 1, 2, 3, and 5.
- /// If provided, array length must match Base64Pdfs length.
- ///
- /// ["1-2", "1,3,5", null]
- public List? PageRanges { get; init; }
-}
-
-///
-/// Request DTO for Base64-encoded PDF annotation (API layer only - converts to AddAnnotationCommand)
-///
-public record AddAnnotationBase64Command
-{
- ///
- /// Base64-encoded PDF file
- ///
- /// "JVBERi0xLjQK..."
- public required string Base64Pdf { get; init; }
-
- ///
- /// Type of annotation to add
- ///
- /// TextMarkup
- public required AnnotationType AnnotationType { get; init; }
-
- ///
- /// Target page number (1-indexed)
- ///
- /// 1
- public required int PageNumber { get; init; }
-
- ///
- /// Rectangle X1 coordinate (left)
- ///
- /// 100.0
- public required double X1 { get; init; }
-
- ///
- /// Rectangle Y1 coordinate (top or bottom depending on Origin)
- ///
- /// 100.0
- public required double Y1 { get; init; }
-
- ///
- /// Rectangle X2 coordinate (right). Optional if Width is provided.
- ///
- /// 200.0
- public double? X2 { get; init; }
-
- ///
- /// Rectangle Y2 coordinate (bottom or top depending on Origin). Optional if Height is provided.
- ///
- /// 120.0
- public double? Y2 { get; init; }
-
- ///
- /// Rectangle width. Alternative to X2 (X2 = X1 + Width). Optional if X2 is provided.
- ///
- /// 100.0
- public double? Width { get; init; }
-
- ///
- /// Rectangle height. Alternative to Y2 (Y2 = Y1 + Height). Optional if Y2 is provided.
- ///
- /// 20.0
- public double? Height { get; init; }
-
- ///
- /// Annotation content (required for FreeText and StickyNote)
- ///
- /// "Important text to highlight"
- public string? Content { get; init; }
-
- ///
- /// Author name (optional)
- ///
- /// "John Doe"
- public string? Author { get; init; }
-
- ///
- /// Hex color (6 digits, e.g., "FF0000" for red). Optional - defaults vary by annotation type.
- ///
- /// "FFFF00"
- public string? Color { get; init; }
-
- ///
- /// Text markup style (Highlight, Underline, or Strikeout). Required for TextMarkup annotations.
- ///
- /// Highlight
- public TextMarkupStyle? TextMarkupStyle { get; init; }
-
- ///
- /// Coordinate origin (BottomLeft = PDF native, TopLeft = UI-friendly). Default: BottomLeft
- ///
- /// BottomLeft
- public AnnotationOrigin Origin { get; init; } = AnnotationOrigin.BottomLeft;
-}
-
///
/// Request DTO for multipart/form-data stamp operation
///
@@ -618,111 +509,3 @@ public class AddStampMultipartRequest
/// Confidential
public PredefinedStampType? PredefinedType { get; set; }
}
-
-///
-/// Request DTO for Base64-encoded PDF stamp operation (API layer only - converts to AddStampCommand)
-///
-public record AddStampBase64Request
-{
- ///
- /// Base64-encoded PDF file
- ///
- /// "JVBERi0xLjQK..."
- public required string Base64Pdf { get; init; }
-
- ///
- /// Type of stamp (Text, Image, or Predefined)
- ///
- /// Text
- public required StampType StampType { get; init; }
-
- ///
- /// Target page numbers (1-indexed). Null or empty = all pages.
- ///
- /// [1, 3, 5]
- public int[]? PageNumbers { get; init; }
-
- ///
- /// Stamp position X coordinate
- ///
- /// 100.0
- public required double X { get; init; }
-
- ///
- /// Stamp position Y coordinate
- ///
- /// 100.0
- public required double Y { get; init; }
-
- ///
- /// Stamp width (optional, auto-size for images if not specified)
- ///
- /// 200.0
- public double? Width { get; init; }
-
- ///
- /// Stamp height (optional, auto-size for images if not specified)
- ///
- /// 50.0
- public double? Height { get; init; }
-
- ///
- /// Coordinate origin (BottomLeft = PDF native, TopLeft = UI-friendly). Default: BottomLeft
- ///
- /// BottomLeft
- public AnnotationOrigin Origin { get; init; } = AnnotationOrigin.BottomLeft;
-
- ///
- /// Text content (required for Text stamps)
- ///
- /// "CONFIDENTIAL"
- public string? Text { get; init; }
-
- ///
- /// Font name (default: Arial)
- ///
- /// "Arial"
- public string? FontName { get; init; }
-
- ///
- /// Font size in points (default: 12)
- ///
- /// 24.0
- public double? FontSize { get; init; }
-
- ///
- /// Hex color (6 digits, e.g., "FF0000" for red, default: "000000")
- ///
- /// "FF0000"
- public string? Color { get; init; }
-
- ///
- /// Opacity (0.0 = transparent, 1.0 = opaque, default: 0.5)
- ///
- /// 0.5
- public double? Opacity { get; init; }
-
- ///
- /// Rotation angle in degrees (0-360, default: 0)
- ///
- /// 45.0
- public double? Rotation { get; init; }
-
- ///
- /// Stamp placement (Foreground = on top, Background = watermark effect, default: Foreground)
- ///
- /// Foreground
- public StampPlacement Placement { get; init; } = StampPlacement.Foreground;
-
- ///
- /// Base64-encoded image (required for Image stamps, PNG/JPEG)
- ///
- /// "iVBORw0KGgoAAAANSUhEUgAA..."
- public string? Base64Image { get; init; }
-
- ///
- /// Predefined stamp type (required for Predefined stamps)
- ///
- /// Confidential
- public PredefinedStampType? PredefinedType { get; init; }
-}
diff --git a/DocumentService.API/Controllers/PdfValidationController.cs b/DocumentService.API/Controllers/PdfValidationController.cs
index 7d587d4..4b209e2 100644
--- a/DocumentService.API/Controllers/PdfValidationController.cs
+++ b/DocumentService.API/Controllers/PdfValidationController.cs
@@ -1,7 +1,7 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Application.ValidatePdf.Queries;
using DocumentService.Application.ValidatePdfA.Queries;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Domain.Common.Exceptions;
using MediatR;
using Microsoft.AspNetCore.Mvc;
diff --git a/DocumentService.API/Controllers/SwissQrCodeController.cs b/DocumentService.API/Controllers/SwissQrCodeController.cs
index f9657a9..f8e9a77 100644
--- a/DocumentService.API/Controllers/SwissQrCodeController.cs
+++ b/DocumentService.API/Controllers/SwissQrCodeController.cs
@@ -1,4 +1,5 @@
using DocumentService.Application.Common.DTOs;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Application.SwissQrCode.Queries;
using DocumentService.Domain.Common.Exceptions;
using MediatR;
@@ -100,14 +101,3 @@ public class SwissQrCodeController(IMediator Mediator) : ControllerBase
}
}
-///
-/// Request DTO for Base64-encoded Swiss QR Code extraction
-///
-public record ExtractSwissQrCodeBase64Request
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
diff --git a/DocumentService.API/Controllers/ZugferdController.cs b/DocumentService.API/Controllers/ZugferdController.cs
index 3967f51..4f752d8 100644
--- a/DocumentService.API/Controllers/ZugferdController.cs
+++ b/DocumentService.API/Controllers/ZugferdController.cs
@@ -1,7 +1,7 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Application.ExtractZugferd;
using DocumentService.Application.HasZugferd.Queries;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Domain.Common.Exceptions;
using MediatR;
using Microsoft.AspNetCore.Http;
diff --git a/DocumentService.Client/Models/Requests/PdfAttachmentRequests.cs b/DocumentService.Application/Common/DTOs/Requests/PdfAttachmentRequests.cs
similarity index 59%
rename from DocumentService.Client/Models/Requests/PdfAttachmentRequests.cs
rename to DocumentService.Application/Common/DTOs/Requests/PdfAttachmentRequests.cs
index 9cee72f..13071ec 100644
--- a/DocumentService.Client/Models/Requests/PdfAttachmentRequests.cs
+++ b/DocumentService.Application/Common/DTOs/Requests/PdfAttachmentRequests.cs
@@ -1,31 +1,28 @@
-namespace DocumentService.Client.Models.Requests;
+namespace DocumentService.Application.Common.DTOs.Requests;
///
/// Request DTO for Base64-encoded PDF attachment check
///
-public record CheckPdfAttachmentsRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
+public record CheckPdfAttachmentsRequest : PdfBase64RequestBase;
///
/// Request DTO for Base64-encoded PDF attachment extraction
///
-public record ExtractPdfAttachmentsRequest
+public record ExtractPdfAttachmentsRequest : PdfBase64RequestBase;
+
+///
+/// Request DTO for Base64-encoded PDF with attachments to add
+///
+public record AddAttachmentsRequest : PdfBase64RequestBase
{
///
- /// PDF document encoded as Base64 string
+ /// List of attachments to embed
///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
+ public required List Attachments { get; init; }
}
///
-/// DTO for attachment file in request
+/// DTO for a single attachment file in a request
///
public record AttachmentRequestDto
{
diff --git a/DocumentService.Client/Models/Requests/SwissQrCodeRequests.cs b/DocumentService.Application/Common/DTOs/Requests/PdfBase64RequestBase.cs
similarity index 50%
rename from DocumentService.Client/Models/Requests/SwissQrCodeRequests.cs
rename to DocumentService.Application/Common/DTOs/Requests/PdfBase64RequestBase.cs
index 775199c..80325c5 100644
--- a/DocumentService.Client/Models/Requests/SwissQrCodeRequests.cs
+++ b/DocumentService.Application/Common/DTOs/Requests/PdfBase64RequestBase.cs
@@ -1,9 +1,10 @@
-namespace DocumentService.Client.Models.Requests;
+namespace DocumentService.Application.Common.DTOs.Requests;
///
-/// Request DTO for Base64-encoded Swiss QR Code extraction
+/// Base record for all single-PDF Base64 request types.
+/// Provides the common property shared across endpoints.
///
-public record ExtractSwissQrCodeBase64Request
+public abstract record PdfBase64RequestBase
{
///
/// PDF document encoded as Base64 string
diff --git a/DocumentService.Application/Common/DTOs/Requests/PdfConversionRequests.cs b/DocumentService.Application/Common/DTOs/Requests/PdfConversionRequests.cs
new file mode 100644
index 0000000..c165071
--- /dev/null
+++ b/DocumentService.Application/Common/DTOs/Requests/PdfConversionRequests.cs
@@ -0,0 +1,18 @@
+namespace DocumentService.Application.Common.DTOs.Requests;
+
+///
+/// Request DTO for converting a standard PDF to PDF/A format (Base64 JSON)
+///
+public record ConvertToPdfARequest : PdfBase64RequestBase
+{
+ ///
+ /// Target PDF/A conformance level. Defaults to "PDF/A-3b".
+ ///
+ /// PDF/A-3b
+ public string? PdfALevel { get; init; }
+}
+
+///
+/// Request DTO for converting a PDF/A document back to standard PDF (Base64 JSON)
+///
+public record ConvertFromPdfARequest : PdfBase64RequestBase;
diff --git a/DocumentService.Client/Models/Requests/PdfOperationRequests.cs b/DocumentService.Application/Common/DTOs/Requests/PdfOperationRequests.cs
similarity index 92%
rename from DocumentService.Client/Models/Requests/PdfOperationRequests.cs
rename to DocumentService.Application/Common/DTOs/Requests/PdfOperationRequests.cs
index c6b9416..802b6a9 100644
--- a/DocumentService.Client/Models/Requests/PdfOperationRequests.cs
+++ b/DocumentService.Application/Common/DTOs/Requests/PdfOperationRequests.cs
@@ -1,7 +1,6 @@
-using DocumentService.Client.Models.ValueObjects;
using DocumentService.Domain.Models.ValueObjects;
-namespace DocumentService.Client.Models.Requests;
+namespace DocumentService.Application.Common.DTOs.Requests;
///
/// Request DTO for Base64-encoded PDF merge operation
@@ -26,14 +25,8 @@ public record MergePdfsBase64Request
///
/// Request DTO for Base64-encoded PDF annotation
///
-public record AddAnnotationBase64Request
+public record AddAnnotationBase64Request : PdfBase64RequestBase
{
- ///
- /// Base64-encoded PDF file
- ///
- /// "JVBERi0xLjQK..."
- public required string Base64Pdf { get; init; }
-
///
/// Type of annotation to add
///
@@ -116,14 +109,8 @@ public record AddAnnotationBase64Request
///
/// Request DTO for Base64-encoded PDF stamp operation
///
-public record AddStampBase64Request
+public record AddStampBase64Request : PdfBase64RequestBase
{
- ///
- /// Base64-encoded PDF file
- ///
- /// "JVBERi0xLjQK..."
- public required string Base64Pdf { get; init; }
-
///
/// Type of stamp (Text, Image, or Predefined)
///
diff --git a/DocumentService.Application/Common/DTOs/Requests/PdfValidationRequests.cs b/DocumentService.Application/Common/DTOs/Requests/PdfValidationRequests.cs
new file mode 100644
index 0000000..e6b98f7
--- /dev/null
+++ b/DocumentService.Application/Common/DTOs/Requests/PdfValidationRequests.cs
@@ -0,0 +1,11 @@
+namespace DocumentService.Application.Common.DTOs.Requests;
+
+///
+/// Request DTO for Base64-encoded PDF validation
+///
+public record ValidatePdfBase64Request : PdfBase64RequestBase;
+
+///
+/// Request DTO for Base64-encoded PDF/A validation
+///
+public record ValidatePdfABase64Request : PdfBase64RequestBase;
diff --git a/DocumentService.Application/Common/DTOs/Requests/SwissQrCodeRequests.cs b/DocumentService.Application/Common/DTOs/Requests/SwissQrCodeRequests.cs
new file mode 100644
index 0000000..8a5460e
--- /dev/null
+++ b/DocumentService.Application/Common/DTOs/Requests/SwissQrCodeRequests.cs
@@ -0,0 +1,6 @@
+namespace DocumentService.Application.Common.DTOs.Requests;
+
+///
+/// Request DTO for Base64-encoded Swiss QR Code extraction
+///
+public record ExtractSwissQrCodeBase64Request : PdfBase64RequestBase;
diff --git a/DocumentService.Application/Common/DTOs/Requests/ZugferdRequests.cs b/DocumentService.Application/Common/DTOs/Requests/ZugferdRequests.cs
new file mode 100644
index 0000000..e7aa262
--- /dev/null
+++ b/DocumentService.Application/Common/DTOs/Requests/ZugferdRequests.cs
@@ -0,0 +1,11 @@
+namespace DocumentService.Application.Common.DTOs.Requests;
+
+///
+/// Request DTO for Base64-encoded PDF ZUGFeRD check
+///
+public record HasZugferdRequest : PdfBase64RequestBase;
+
+///
+/// Request DTO for Base64-encoded PDF ZUGFeRD extraction
+///
+public record ExtractZugferdRequest : PdfBase64RequestBase;
diff --git a/DocumentService.Client/Clients/PdfAttachmentClient.cs b/DocumentService.Client/Clients/PdfAttachmentClient.cs
index b6be48f..a80942b 100644
--- a/DocumentService.Client/Clients/PdfAttachmentClient.cs
+++ b/DocumentService.Client/Clients/PdfAttachmentClient.cs
@@ -1,6 +1,6 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.IO.Compression;
using System.Net.Http;
diff --git a/DocumentService.Client/Clients/PdfConversionClient.cs b/DocumentService.Client/Clients/PdfConversionClient.cs
index 0ecb0ed..59ed870 100644
--- a/DocumentService.Client/Clients/PdfConversionClient.cs
+++ b/DocumentService.Client/Clients/PdfConversionClient.cs
@@ -1,5 +1,5 @@
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.Net.Http;
diff --git a/DocumentService.Client/Clients/PdfOperationsClient.cs b/DocumentService.Client/Clients/PdfOperationsClient.cs
index 3ba4919..dffdecf 100644
--- a/DocumentService.Client/Clients/PdfOperationsClient.cs
+++ b/DocumentService.Client/Clients/PdfOperationsClient.cs
@@ -1,5 +1,5 @@
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.Net.Http;
using System.Net.Http.Headers;
diff --git a/DocumentService.Client/Clients/PdfValidationClient.cs b/DocumentService.Client/Clients/PdfValidationClient.cs
index 06efa87..a0ccf21 100644
--- a/DocumentService.Client/Clients/PdfValidationClient.cs
+++ b/DocumentService.Client/Clients/PdfValidationClient.cs
@@ -1,6 +1,6 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.Net.Http;
diff --git a/DocumentService.Client/Clients/SwissQrCodeClient.cs b/DocumentService.Client/Clients/SwissQrCodeClient.cs
index 8454ba8..7036743 100644
--- a/DocumentService.Client/Clients/SwissQrCodeClient.cs
+++ b/DocumentService.Client/Clients/SwissQrCodeClient.cs
@@ -1,6 +1,6 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.Net.Http;
diff --git a/DocumentService.Client/Clients/ZugferdClient.cs b/DocumentService.Client/Clients/ZugferdClient.cs
index 190adef..838d2a1 100644
--- a/DocumentService.Client/Clients/ZugferdClient.cs
+++ b/DocumentService.Client/Clients/ZugferdClient.cs
@@ -1,7 +1,7 @@
using DocumentService.Application.Common.DTOs;
using DocumentService.Application.ExtractZugferd;
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using Microsoft.Extensions.Logging;
using System.Net.Http;
diff --git a/DocumentService.Client/Interfaces/IPdfAttachmentClient.cs b/DocumentService.Client/Interfaces/IPdfAttachmentClient.cs
index b6e6b0a..cd711a8 100644
--- a/DocumentService.Client/Interfaces/IPdfAttachmentClient.cs
+++ b/DocumentService.Client/Interfaces/IPdfAttachmentClient.cs
@@ -1,5 +1,5 @@
using DocumentService.Application.Common.DTOs;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
namespace DocumentService.Client.Interfaces;
diff --git a/DocumentService.Client/Interfaces/IPdfOperationsClient.cs b/DocumentService.Client/Interfaces/IPdfOperationsClient.cs
index bdde83e..1236899 100644
--- a/DocumentService.Client/Interfaces/IPdfOperationsClient.cs
+++ b/DocumentService.Client/Interfaces/IPdfOperationsClient.cs
@@ -1,4 +1,4 @@
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
namespace DocumentService.Client.Interfaces;
diff --git a/DocumentService.Client/Models/Requests/PdfConversionRequests.cs b/DocumentService.Client/Models/Requests/PdfConversionRequests.cs
deleted file mode 100644
index 825228a..0000000
--- a/DocumentService.Client/Models/Requests/PdfConversionRequests.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace DocumentService.Client.Models.Requests;
-
-///
-/// Request DTO for converting a standard PDF to PDF/A format (Base64 JSON)
-///
-public record ConvertToPdfARequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-
- ///
- /// Target PDF/A conformance level. Defaults to "PDF/A-3b".
- ///
- /// PDF/A-3b
- public string? PdfALevel { get; init; }
-}
-
-///
-/// Request DTO for converting a PDF/A document back to standard PDF (Base64 JSON)
-///
-public record ConvertFromPdfARequest
-{
- ///
- /// PDF/A document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
diff --git a/DocumentService.Client/Models/Requests/PdfValidationRequests.cs b/DocumentService.Client/Models/Requests/PdfValidationRequests.cs
deleted file mode 100644
index b6d4ff4..0000000
--- a/DocumentService.Client/Models/Requests/PdfValidationRequests.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using DocumentService.Client.Models.ValueObjects;
-
-namespace DocumentService.Client.Models.Requests;
-
-///
-/// Request DTO for Base64-encoded PDF validation
-///
-public record ValidatePdfBase64Request
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
-
-///
-/// Request DTO for Base64-encoded PDF/A validation
-///
-public record ValidatePdfABase64Request
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
diff --git a/DocumentService.Client/Models/Requests/ZugferdRequests.cs b/DocumentService.Client/Models/Requests/ZugferdRequests.cs
deleted file mode 100644
index a6adca4..0000000
--- a/DocumentService.Client/Models/Requests/ZugferdRequests.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace DocumentService.Client.Models.Requests;
-
-///
-/// Request DTO for Base64-encoded PDF ZUGFeRD check
-///
-public record HasZugferdRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
-
-///
-/// Request DTO for Base64-encoded PDF ZUGFeRD extraction
-///
-public record ExtractZugferdRequest
-{
- ///
- /// PDF document encoded as Base64 string
- ///
- /// JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c...
- public required string Base64Pdf { get; init; }
-}
diff --git a/DocumentService.Tests/Integration/API/ExtractSwissQrCodeEndpointTests.cs b/DocumentService.Tests/Integration/API/ExtractSwissQrCodeEndpointTests.cs
index fe87103..18ab2d5 100644
--- a/DocumentService.Tests/Integration/API/ExtractSwissQrCodeEndpointTests.cs
+++ b/DocumentService.Tests/Integration/API/ExtractSwissQrCodeEndpointTests.cs
@@ -1,4 +1,4 @@
-using DocumentService.API.Controllers; // For ExtractSwissQrCodeBase64Request DTO
+using DocumentService.Application.Common.DTOs.Requests; // For ExtractSwissQrCodeBase64Request DTO
using DocumentService.Application.Common.DTOs;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc.Testing;
diff --git a/DocumentService.Tests/Integration/API/PdfAttachmentControllerTests.cs b/DocumentService.Tests/Integration/API/PdfAttachmentControllerTests.cs
index 364a400..c6b5e37 100644
--- a/DocumentService.Tests/Integration/API/PdfAttachmentControllerTests.cs
+++ b/DocumentService.Tests/Integration/API/PdfAttachmentControllerTests.cs
@@ -1,5 +1,5 @@
using DocumentService.Application.Common.DTOs;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc.Testing;
using System.Net;
diff --git a/DocumentService.Tests/Integration/API/PdfOperationsControllerTests.cs b/DocumentService.Tests/Integration/API/PdfOperationsControllerTests.cs
index 3a29c8e..e271f87 100644
--- a/DocumentService.Tests/Integration/API/PdfOperationsControllerTests.cs
+++ b/DocumentService.Tests/Integration/API/PdfOperationsControllerTests.cs
@@ -3,7 +3,7 @@ using System.Net.Http.Headers;
using System.Reflection;
using System.Text;
using System.Text.Json;
-using DocumentService.API.Controllers;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Domain.Models.ValueObjects;
using FluentAssertions;
using Microsoft.AspNetCore.Mvc.Testing;
@@ -243,7 +243,7 @@ public class PdfOperationsControllerTests : IClassFixture
/// Unit tests for .
-/// All tests use a fake — no real HTTP calls are made.
+/// All tests use a fake � no real HTTP calls are made.
///
public class PdfAttachmentClientTests
{
@@ -118,7 +118,7 @@ public class PdfAttachmentClientTests
doc.RootElement.GetProperty("base64Pdf").GetString().Should().NotBeNullOrEmpty();
}
- // ?? ExtractAttachmentsAsync (Stream) — ZIP unzip ?????????????????????????
+ // ?? ExtractAttachmentsAsync (Stream) � ZIP unzip ?????????????????????????
[Fact]
public async Task ExtractAttachmentsAsync_Stream_UnzipsAndReturnsDictionary()
@@ -169,7 +169,7 @@ public class PdfAttachmentClientTests
foreach (var s in result.Values) s.Dispose();
}
- // ?? ExtractAttachmentsAsync (byte[]) — ZIP unzip ?????????????????????????
+ // ?? ExtractAttachmentsAsync (byte[]) � ZIP unzip ?????????????????????????
[Fact]
public async Task ExtractAttachmentsAsync_Bytes_SendsJsonAndUnzips()
diff --git a/DocumentService.Tests/Unit/Client/PdfOperationsClientTests.cs b/DocumentService.Tests/Unit/Client/PdfOperationsClientTests.cs
index 17aa54b..8b09d21 100644
--- a/DocumentService.Tests/Unit/Client/PdfOperationsClientTests.cs
+++ b/DocumentService.Tests/Unit/Client/PdfOperationsClientTests.cs
@@ -1,6 +1,6 @@
using DocumentService.Client.Clients;
using DocumentService.Client.Interfaces;
-using DocumentService.Client.Models.Requests;
+using DocumentService.Application.Common.DTOs.Requests;
using DocumentService.Client.Models.ValueObjects;
using DocumentService.Domain.Models.ValueObjects;
using FluentAssertions;
@@ -13,7 +13,7 @@ namespace DocumentService.Tests.Unit.Client;
///
/// Unit tests for .
-/// All tests use a fake — no real HTTP calls are made.
+/// All tests use a fake � no real HTTP calls are made.
///
public class PdfOperationsClientTests
{