Coverage for src/paperap/models/document/metadata/model.py: 100%
22 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-20 13:17 -0400
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-20 13:17 -0400
1"""
2----------------------------------------------------------------------------
4METADATA:
6File: metadata.py
7 Project: paperap
8Created: 2025-03-18
9 Version: 0.0.8
10Author: Jess Mann
11Email: jess@jmann.me
12 Copyright (c) 2025 Jess Mann
14----------------------------------------------------------------------------
16LAST MODIFIED:
182025-03-18 By Jess Mann
20"""
22from __future__ import annotations
24from paperap.models.abstract import StandardModel
27class DocumentMetadataType(StandardModel):
28 """
29 Represents metadata for a document in Paperless-NgX.
31 This is a key-value pair of metadata information.
32 """
34 key: str
35 value: str
37 class Meta(StandardModel.Meta):
38 read_only_fields = {"key", "value"}
41class DocumentMetadata(StandardModel):
42 """
43 Represents a Paperless-NgX document's metadata.
45 Attributes:
46 original_checksum: The checksum of the original document.
47 original_size: The size of the original document in bytes.
48 original_mime_type: The MIME type of the original document.
49 media_filename: The filename of the media file.
50 has_archive_version: Whether the document has an archive version.
51 original_metadata: Metadata of the original document.
52 archive_checksum: The checksum of the archived document.
53 archive_media_filename: The filename of the archived media file.
54 original_filename: The original filename of the document.
55 lang: The language of the document.
56 archive_size: The size of the archived document in bytes.
57 archive_metadata: Metadata of the archived document.
59 """
61 original_checksum: str | None = None
62 original_size: int | None = None
63 original_mime_type: str | None = None
64 media_filename: str | None = None
65 has_archive_version: bool | None = None
66 original_metadata: list[DocumentMetadataType] = []
67 archive_checksum: str | None = None
68 archive_media_filename: str | None = None
69 original_filename: str | None = None
70 lang: str | None = None
71 archive_size: int | None = None
72 archive_metadata: list[DocumentMetadataType] = []
74 class Meta(StandardModel.Meta):
75 read_only_fields = {
76 "original_checksum",
77 "original_size",
78 "original_mime_type",
79 "media_filename",
80 "has_archive_version",
81 "original_metadata",
82 "archive_checksum",
83 "archive_media_filename",
84 "original_filename",
85 "lang",
86 "archive_size",
87 "archive_metadata",
88 }