Source code for paperap.models.share_links.model

"""
Module for managing share links in Paperless-NgX.

This module provides the ShareLinks model for creating, retrieving, and managing
document share links in Paperless-NgX. Share links allow documents to be shared
with users who don't have access to the Paperless-NgX instance.
"""

from __future__ import annotations

from datetime import datetime
from typing import TYPE_CHECKING, Any

from pydantic import Field, field_serializer

from paperap.const import ShareLinkFileVersionType
from paperap.models.abstract.model import StandardModel
from paperap.models.share_links.queryset import ShareLinksQuerySet

if TYPE_CHECKING:
    from paperap.models.correspondent import Correspondent
    from paperap.models.document import Document
    from paperap.models.document_type import DocumentType
    from paperap.models.storage_path import StoragePath
    from paperap.models.tag import Tag