From 6cae0700611a946871a6e383879b75d558f4147a Mon Sep 17 00:00:00 2001 From: "Konrad M." Date: Tue, 21 Apr 2026 21:50:55 +0200 Subject: [PATCH] feat(db): add external_calendars table and link to calendar events (migration v14) Stores display name and color per synced Google/Apple calendar. calendar_events gains a calendar_ref_id FK for join-based name/color lookup. --- server/db.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/server/db.js b/server/db.js index 1c6f12c..5906850 100644 --- a/server/db.js +++ b/server/db.js @@ -523,6 +523,27 @@ const MIGRATIONS = [ CREATE INDEX IF NOT EXISTS idx_meals_recipe_id ON meals(recipe_id); `, }, + { + version: 14, + description: 'Externe Kalender-Metadaten (Name, Farbe) und Verknüpfung mit Events', + up: ` + CREATE TABLE IF NOT EXISTS external_calendars ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + source TEXT NOT NULL CHECK(source IN ('google', 'apple')), + external_id TEXT NOT NULL, + name TEXT NOT NULL, + color TEXT, + UNIQUE(source, external_id) + ); + + CREATE INDEX IF NOT EXISTS idx_ext_cal_source ON external_calendars(source, external_id); + + ALTER TABLE calendar_events ADD COLUMN calendar_ref_id INTEGER + REFERENCES external_calendars(id) ON DELETE SET NULL; + + CREATE INDEX IF NOT EXISTS idx_cal_events_ref ON calendar_events(calendar_ref_id); + `, + }, ]; /**