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