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) +);