From 45223df86d178cf08b2b6154d33c35d98650e083 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Tue, 21 Apr 2026 22:43:50 +0200 Subject: [PATCH] chore(db): Migration 013 fuer Einkaufsliste-Tabellen --- .../server/db/migrations/013_shopping_list.sql | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/lib/server/db/migrations/013_shopping_list.sql diff --git a/src/lib/server/db/migrations/013_shopping_list.sql b/src/lib/server/db/migrations/013_shopping_list.sql new file mode 100644 index 0000000..fde54f9 --- /dev/null +++ b/src/lib/server/db/migrations/013_shopping_list.sql @@ -0,0 +1,18 @@ +-- Einkaufsliste: haushaltsweit geteilt. shopping_cart_recipe haelt die +-- Rezepte im Wagen (inkl. gewuenschter Portionsgroesse), shopping_cart_check +-- die abgehakten aggregierten Zutaten-Zeilen. Aggregation wird bei jedem +-- Read aus shopping_cart_recipe JOIN ingredient derived — nichts +-- materialisiert, damit Rezept-Edits live durchschlagen. +CREATE TABLE shopping_cart_recipe ( + recipe_id INTEGER PRIMARY KEY REFERENCES recipe(id) ON DELETE CASCADE, + servings INTEGER NOT NULL CHECK (servings > 0), + added_by_profile_id INTEGER REFERENCES profile(id) ON DELETE SET NULL, + added_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE shopping_cart_check ( + name_key TEXT NOT NULL, + unit_key TEXT NOT NULL, + checked_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (name_key, unit_key) +);