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}";
}
}