neue Archivfunktion und Optimierung an Artikelbearbeitung

This commit is contained in:
2026-08-09 18:24:04 +02:00
parent dd51532533
commit b80e2d5a6c
23 changed files with 1185 additions and 77 deletions

View File

@@ -1,6 +1,6 @@
-- ==========================================================================
-- Einkaufsliste vollständiges Datenbankschema
-- Entspricht dem Stand nach Alembic-Revision 0012.
-- Entspricht dem Stand nach Alembic-Revision 0013.
-- ==========================================================================
--
-- Normalerweise wird diese Datei NICHT gebraucht: Der api-Container
@@ -163,6 +163,10 @@ CREATE TABLE `shopping_list` (
ON UPDATE CURRENT_TIMESTAMP,
-- Soft Delete: Offline gebliebene Geräte sollen vom Löschen erfahren.
`deleted_at` DATETIME NULL,
-- Vorwarnungen vor der automatischen Löschung, getrennt vermerkt,
-- damit jede Stufe genau einmal verschickt wird
`warn_7d_at` DATETIME NULL,
`warn_1d_at` DATETIME NULL,
PRIMARY KEY (`id`),
KEY `fk_shopping_list_owner` (`owner_id`),
-- RESTRICT: Ein Konto lässt sich nicht löschen, solange ihm Listen
@@ -178,6 +182,12 @@ CREATE TABLE `list_member` (
`role` VARCHAR(16) NOT NULL DEFAULT 'editor',
-- Zusatzrecht, unabhängig von der Rolle
`may_share_public` TINYINT(1) NOT NULL DEFAULT 0,
-- Archivierung ist eine Eigenschaft der MITGLIEDSCHAFT, nicht der
-- Liste: Dieselbe Liste kann bei einem Mitglied im Archiv liegen und
-- beim anderen aktiv sein.
`archived_at` DATETIME NULL,
-- Grundlage der automatischen Archivierung, je Person getrennt
`last_opened_at` DATETIME NULL,
`joined_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`list_id`, `user_id`),
KEY `ix_list_member_user` (`user_id`),
@@ -504,6 +514,6 @@ CREATE TABLE `alembic_version` (
PRIMARY KEY (`version_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `alembic_version` (`version_num`) VALUES ('0012');
INSERT INTO `alembic_version` (`version_num`) VALUES ('0013');
SET FOREIGN_KEY_CHECKS = 1;