Source code for paperap.models.document.metadata.model

"""
----------------------------------------------------------------------------

METADATA:

File:    metadata.py
        Project: paperap
Created: 2025-03-18
        Version: 0.0.9
Author:  Jess Mann
Email:   jess@jmann.me
        Copyright (c) 2025 Jess Mann

----------------------------------------------------------------------------

LAST MODIFIED:

2025-03-18     By Jess Mann

"""

from __future__ import annotations

import pydantic

from paperap.models.abstract import StandardModel


[docs] class MetadataElement(pydantic.BaseModel): """ Represents metadata for a document in Paperless-NgX. This is a key-value pair of metadata information. """ key: str value: str
[docs] class DocumentMetadata(StandardModel): """ Represents a Paperless-NgX document's metadata. Attributes: original_checksum: The checksum of the original document. original_size: The size of the original document in bytes. original_mime_type: The MIME type of the original document. media_filename: The filename of the media file. has_archive_version: Whether the document has an archive version. original_metadata: Metadata of the original document. archive_checksum: The checksum of the archived document. archive_media_filename: The filename of the archived media file. original_filename: The original filename of the document. lang: The language of the document. archive_size: The size of the archived document in bytes. archive_metadata: Metadata of the archived document. """ original_checksum: str | None = None original_size: int | None = None original_mime_type: str | None = None media_filename: str | None = None has_archive_version: bool | None = None original_metadata: list[MetadataElement] = [] archive_checksum: str | None = None archive_media_filename: str | None = None original_filename: str | None = None lang: str | None = None archive_size: int | None = None archive_metadata: list[MetadataElement] = []
[docs] class Meta(StandardModel.Meta): read_only_fields = { "original_checksum", "original_size", "original_mime_type", "media_filename", "has_archive_version", "original_metadata", "archive_checksum", "archive_media_filename", "original_filename", "lang", "archive_size", "archive_metadata", }