diff --git a/app/db/migrations/022_meal_plans.sql b/app/db/migrations/022_meal_plans.sql new file mode 100644 index 0000000..79c019c --- /dev/null +++ b/app/db/migrations/022_meal_plans.sql @@ -0,0 +1,8 @@ +-- 022_meal_plans.sql +CREATE TABLE meal_plans ( + id INTEGER PRIMARY KEY, + week_start TEXT NOT NULL, + meal_types TEXT NOT NULL DEFAULT '["dinner"]', + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); diff --git a/app/db/migrations/023_meal_plan_slots.sql b/app/db/migrations/023_meal_plan_slots.sql new file mode 100644 index 0000000..f2926fa --- /dev/null +++ b/app/db/migrations/023_meal_plan_slots.sql @@ -0,0 +1,11 @@ +-- 023_meal_plan_slots.sql +CREATE TABLE meal_plan_slots ( + id INTEGER PRIMARY KEY, + plan_id INTEGER NOT NULL REFERENCES meal_plans(id) ON DELETE CASCADE, + day_of_week INTEGER NOT NULL CHECK(day_of_week BETWEEN 0 AND 6), + meal_type TEXT NOT NULL, + recipe_id INTEGER REFERENCES recipes(id), + servings REAL NOT NULL DEFAULT 2.0, + custom_label TEXT, + UNIQUE(plan_id, day_of_week, meal_type) +); diff --git a/app/db/migrations/024_prep_sessions.sql b/app/db/migrations/024_prep_sessions.sql new file mode 100644 index 0000000..bb313a2 --- /dev/null +++ b/app/db/migrations/024_prep_sessions.sql @@ -0,0 +1,10 @@ +-- 024_prep_sessions.sql +CREATE TABLE prep_sessions ( + id INTEGER PRIMARY KEY, + plan_id INTEGER NOT NULL REFERENCES meal_plans(id) ON DELETE CASCADE, + scheduled_date TEXT NOT NULL, + status TEXT NOT NULL DEFAULT 'draft' + CHECK(status IN ('draft','reviewed','done')), + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); diff --git a/app/db/migrations/025_prep_tasks.sql b/app/db/migrations/025_prep_tasks.sql new file mode 100644 index 0000000..d9541e3 --- /dev/null +++ b/app/db/migrations/025_prep_tasks.sql @@ -0,0 +1,15 @@ +-- 025_prep_tasks.sql +CREATE TABLE prep_tasks ( + id INTEGER PRIMARY KEY, + session_id INTEGER NOT NULL REFERENCES prep_sessions(id) ON DELETE CASCADE, + recipe_id INTEGER REFERENCES recipes(id), + slot_id INTEGER REFERENCES meal_plan_slots(id), + task_label TEXT NOT NULL, + duration_minutes INTEGER, + sequence_order INTEGER NOT NULL, + equipment TEXT, + is_parallel INTEGER NOT NULL DEFAULT 0, + notes TEXT, + user_edited INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL DEFAULT (datetime('now')) +);