namespace DocumentOperator.Application.Common.DTOs; /// /// PDF/A validation metadata including conformance level and validation errors/warnings /// public sealed class PdfAMetadata( bool isValid, string pdfVersion, int pageCount, long fileSizeBytes, bool encrypted, string? pdfaVersion, bool pdfaCompliant, IReadOnlyList errors, IReadOnlyList warnings) { public bool IsValid { get; } = isValid; public string PdfVersion { get; } = pdfVersion; public int PageCount { get; } = pageCount; public long FileSizeBytes { get; } = fileSizeBytes; public bool Encrypted { get; } = encrypted; public string? PdfAVersion { get; } = pdfaVersion; public bool PdfACompliant { get; } = pdfaCompliant; public IReadOnlyList Errors { get; } = errors; public IReadOnlyList Warnings { get; } = warnings; // Computed property public double FileSizeMB => FileSizeBytes / 1024.0 / 1024.0; public override string ToString() { return $"PDF/A: {PdfAVersion ?? "None"}, {PageCount} pages, {FileSizeMB:F2} MB, Compliant: {PdfACompliant}"; } }