Files
Wabenhain/prisma/migrations/20260925010000_archive_fields/migration.sql
T
Nick SzaunigandClaude Opus 5.5 fb9c2353c6
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 3m24s
feat: Archiv-Tab fuer Bestellungen, Retouren und Produkte im Admin
Abgeschlossene Eintraege wandern automatisch in einen Tab "Archiv", damit
die aktiven Listen nur zeigen, was noch zu tun ist:
- Bestellungen: versendet/abgeholt/storniert, keine offene Retoure,
  seit einem Monat nicht bearbeitet
- Retouren: angenommen/abgelehnt/erstattet, seit einem Monat nicht bearbeitet
- Produkte: seit einem Monat Bestand 0 (nur Admin-Sicht, Shop unveraendert)

Die Automatik laeuft beim Oeffnen der jeweiligen Liste (hoechstens alle
5 Minuten) und holt Eintraege zurueck, sobald sie wieder offen sind.
Zusaetzlich "Archivieren"/"Wiederherstellen" per Hand; von Hand
archivierte Eintraege fasst die Automatik nicht an. Alle Verschiebungen
landen im Audit-Log.

Neue Felder archivedAt/archivedManually samt Index an orders,
return_requests und products (Migration 20260925010000_archive_fields).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-25 04:05:10 +02:00

32 lines
1.3 KiB
SQL

-- Archiv fuer Bestellungen, Retouren und Produkte (siehe lib/archive.ts).
--
-- archivedAt gesetzt = Eintrag erscheint im Admin-Tab "Archiv" statt in der
-- aktiven Liste. Die Automatik archiviert abgeschlossene Eintraege nach einem
-- Monat ohne Bearbeitung (Produkte: Bestand 0) und holt sie zurueck, sobald
-- sie wieder offen sind. archivedManually markiert Eintraege, die jemand
-- von Hand archiviert hat — die fasst die Automatik nicht an.
--
-- Nullable bzw. mit Default: bestehende Zeilen gelten als aktiv; der erste
-- Aufruf der jeweiligen Admin-Liste archiviert faellige Altbestaende.
-- AlterTable
ALTER TABLE "orders" ADD COLUMN "archivedAt" TIMESTAMP(3),
ADD COLUMN "archivedManually" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "return_requests" ADD COLUMN "archivedAt" TIMESTAMP(3),
ADD COLUMN "archivedManually" BOOLEAN NOT NULL DEFAULT false;
-- AlterTable
ALTER TABLE "products" ADD COLUMN "archivedAt" TIMESTAMP(3),
ADD COLUMN "archivedManually" BOOLEAN NOT NULL DEFAULT false;
-- CreateIndex
CREATE INDEX "orders_archivedAt_idx" ON "orders"("archivedAt");
-- CreateIndex
CREATE INDEX "return_requests_archivedAt_idx" ON "return_requests"("archivedAt");
-- CreateIndex
CREATE INDEX "products_archivedAt_idx" ON "products"("archivedAt");