Files
govoplan-files/src/govoplan_files/backend/storage/common.py
T
zemion 61625fb00f
Module Package Release / publish-packages (push) Successful in 14s
fix(files): verify acquired source identity and index import lookups
Release v0.1.27. Coordinated integrity review: GovOPlaN/govoplan-core#298.
2026-09-08 12:19:38 +02:00

47 lines
868 B
Python

from __future__ import annotations
from dataclasses import dataclass
from datetime import datetime, timezone
from govoplan_files.backend.db.models import FileAsset, FileBlob, FileVersion
class FileStorageError(RuntimeError):
pass
class FileSourceConflict(FileStorageError):
"""A source cannot be selected or revision-bound without ambiguity."""
@dataclass(slots=True)
class UploadedStoredFile:
asset: FileAsset
version: FileVersion
blob: FileBlob
@dataclass(slots=True)
class ResolvedPattern:
pattern: str
matches: list[FileAsset]
@dataclass(slots=True)
class FileConflictResolution:
target_path: str
action: str
new_path: str | None = None
@dataclass(slots=True)
class RenamePlanItem:
kind: str
id: str
old_path: str
new_path: str
def utcnow() -> datetime:
return datetime.now(timezone.utc)