FDN-01: repository & projektgerüst
Git-Repository für bestehenden archivdms-Code initialisiert, Branch-/Commit-Konvention (feature/<ticket>-<slug>-Branches, Ticket-Prefix in Commit-Nachricht) etabliert.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
-- PROJ: Gespeicherte Suchansichten (SavedViews, Paperless-ngx inspiriert)
|
||||
-- Doku-only (siehe README.md in diesem Verzeichnis) — die tatsächliche
|
||||
-- Ausführung passiert idempotent über
|
||||
-- internal/storage/saved_views.go initSavedViewsSchema(), aufgerufen aus
|
||||
-- (*Store).initSchema() NACH initDocumentNotesSchema.
|
||||
--
|
||||
-- Nutzer speichern ihre aktuelle Such-/Filter-Query als benannte,
|
||||
-- wiederverwendbare Ansicht. filters ist die serialisierte index.SearchQuery
|
||||
-- (JSONB, 1:1 wieder einlesbar). Eine Ansicht ist privat für ihren Ersteller,
|
||||
-- außer is_shared=true -> tenant-weit sichtbar, aber weiterhin nur vom
|
||||
-- Ersteller änderbar/löschbar (WHERE id + tenant_id + user_id). Create/Update/
|
||||
-- Delete werden im Audit-Log protokolliert (Nachvollziehbarkeit).
|
||||
|
||||
CREATE TABLE IF NOT EXISTS saved_views (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
tenant_id BIGINT NOT NULL,
|
||||
user_id BIGINT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
filters JSONB NOT NULL,
|
||||
is_shared BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_saved_views_tenant_user ON saved_views (tenant_id, user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_saved_views_tenant_shared ON saved_views (tenant_id, is_shared) WHERE is_shared;
|
||||
Reference in New Issue
Block a user