diff --git a/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs b/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs index bbbb224..9c7795c 100644 --- a/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs +++ b/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs @@ -1,4 +1,4 @@ -using DocumentOperator.Domain.Models.ValueObjects; +using DocumentOperator.Application.Common.DTOs; namespace DocumentOperator.Application.Common.Interfaces; @@ -7,20 +7,30 @@ public interface IPdfProcessor /// /// Validates a PDF and extracts metadata. /// - /// PDF content as byte array + /// PDF content as stream (caller is responsible for disposal) /// PDF metadata (page count, size, version, attachments) - /// - /// Thrown when PDF is corrupted or cannot be processed + /// + /// Thrown when stream is empty or invalid /// - Task ValidateAsync(byte[] pdfBytes); + Task ValidateAsync(Stream pdfStream); /// /// Validates a PDF/A document and checks conformance level. /// - /// PDF content as byte array + /// PDF content as stream (caller is responsible for disposal) /// PDF/A metadata including conformance level and validation errors/warnings - /// - /// Thrown when PDF is corrupted or cannot be processed + /// + /// Thrown when stream is empty or invalid /// - Task ValidatePdfAAsync(byte[] pdfBytes); + Task ValidatePdfAAsync(Stream pdfStream); + + /// + /// Checks for embedded files (attachments) in a PDF document and returns detailed metadata. + /// + /// PDF content as stream (caller is responsible for disposal) + /// Attachment information (count, file names, MIME types, sizes) + /// + /// Thrown when stream is empty or invalid + /// + Task CheckAttachmentsAsync(Stream pdfStream); } \ No newline at end of file