namespace DocumentOperator.Domain.Models.ValueObjects;

public sealed class PdfMetadata
{
    public int PageCount { get; }
    public long FileSizeBytes { get; }
    public string PdfVersion { get; }
    public bool HasAttachments { get; }
    public int AttachmentCount { get; }

    // Computed Property (berechnet aus FileSizeBytes)
    public double FileSizeMB => FileSizeBytes / 1024.0 / 1024.0;

    public PdfMetadata(
        int pageCount,
        long fileSizeBytes,
        string pdfVersion,
        bool hasAttachments,
        int attachmentCount)
    {
        PageCount = pageCount;
        FileSizeBytes = fileSizeBytes;
        PdfVersion = pdfVersion;
        HasAttachments = hasAttachments;
        AttachmentCount = attachmentCount;
    }

    public override string ToString()
    {
        return $"PDF: {PageCount} pages, {FileSizeMB:F2} MB, Version {PdfVersion}, Attachments: {AttachmentCount}";
    }
}