Files
leocrm/app/plugins/builtins/dms/schemas.py
T
Agent Zero ec81940178 Phase 0 Complete: Tasks 0.7-0.20
- 0.7: UI-Design-Richtlinien (docs/ui-design-guidelines.md, 535 lines)
- 0.8: Theme-Customization Backend (4 theme fields, migration 0023)
- 0.9: Theme-Customization Frontend (SettingsTheme.tsx, themeStore.ts, live preview)
- 0.10: RBAC-Audit (4 plugins secured, 53 routes with require_permission)
- 0.11: LiteLLM-Cleanup (llm_client.py migrated from httpx to litellm)
- 0.12: KI-Agent-Framework docs (plugin-development-guide.md, agent_capabilities field)
- 0.13: Heartbeat configurable (ProactiveSettings, migration 0024, frontend UI)
- 0.14: Unified Search Field-Level RBAC (resolve_permissions + filter_fields_by_permission)
- 0.15: Undo/History-System (EntityHistory model, service, routes, migration 0025, HistoryViewer)
- 0.16: Storage Backend (LocalStorage + S3Storage, DMS/attachments/mail updated)
- 0.17: Import/Export unified Contact fields (firstname, surname, email_1, phone_1)
- 0.18: .gitignore & Config-Cleanup (webui→frontend, python-jose removed, .env untracked)
- 0.19: Mail-Salt Security-Fix (per-account random salt, migration 0026)
- 0.20: AGPL replaced (PyMuPDF→pypdf, OnlyOffice→Collabora, LICENSE + THIRD_PARTY_LICENSES.md)
2026-07-23 08:42:26 +02:00

71 lines
1.6 KiB
Python

"""Pydantic schemas for the DMS plugin."""
from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, Field
class FolderCreate(BaseModel):
name: str = Field(..., min_length=1, max_length=255)
parent_id: str | None = None
class FolderUpdate(BaseModel):
name: str | None = Field(None, min_length=1, max_length=255)
parent_id: str | None = None
class FolderResponse(BaseModel):
id: str
name: str
parent_id: str | None = None
created_by: str
deleted_at: datetime | None = None
path: str = ""
children: list[dict] = []
class FileMetadataResponse(BaseModel):
id: str
name: str
folder_id: str | None = None
uploaded_by: str
mime_type: str
size_bytes: int
storage_path: str
deleted_at: datetime | None = None
created_at: datetime | None = None
updated_at: datetime | None = None
class FileUpdate(BaseModel):
name: str | None = Field(None, min_length=1, max_length=255)
folder_id: str | None = None
class ShareRequest(BaseModel):
user_ids: list[str] = Field(default_factory=list)
group_ids: list[str] = Field(default_factory=list)
access_level: str = Field("read", pattern="^(read|write)$")
class ShareRemoveRequest(BaseModel):
user_id: str | None = None
group_id: str | None = None
class BulkMoveRequest(BaseModel):
file_ids: list[str] = Field(..., min_length=1)
target_folder_id: str | None = None
class BulkDeleteRequest(BaseModel):
file_ids: list[str] = Field(..., min_length=1)
class CollaboraConfig(BaseModel):
document: dict
editorConfig: dict # noqa: N815