feat(ui): add maintenance page for task management
Some checks failed
CI / build-and-test (push) Failing after -31m53s
Some checks failed
CI / build-and-test (push) Failing after -31m53s
* Implement maintenance page with task and log display * Add backfill and metadata retry functionality * Integrate grid component for project display in thoughts page * Update types for maintenance tasks and logs * Enhance sidebar and shell for new maintenance navigation
This commit is contained in:
54
migrations/_old/014_meal_planning.sql
Normal file
54
migrations/_old/014_meal_planning.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Extension 4: Meal Planning
|
||||
-- Recipes, weekly meal plans, and shopping lists (single-user, no RLS)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS recipes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT NOT NULL,
|
||||
cuisine TEXT,
|
||||
prep_time_minutes INTEGER,
|
||||
cook_time_minutes INTEGER,
|
||||
servings INTEGER,
|
||||
ingredients JSONB NOT NULL DEFAULT '[]',
|
||||
instructions JSONB NOT NULL DEFAULT '[]',
|
||||
tags TEXT[] NOT NULL DEFAULT '{}',
|
||||
rating INTEGER CHECK (rating >= 1 AND rating <= 5),
|
||||
notes TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS meal_plans (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
week_start DATE NOT NULL,
|
||||
day_of_week TEXT NOT NULL,
|
||||
meal_type TEXT NOT NULL CHECK (meal_type IN ('breakfast', 'lunch', 'dinner', 'snack')),
|
||||
recipe_id UUID REFERENCES recipes(id) ON DELETE SET NULL,
|
||||
custom_meal TEXT,
|
||||
servings INTEGER,
|
||||
notes TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS shopping_lists (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
week_start DATE NOT NULL UNIQUE,
|
||||
items JSONB NOT NULL DEFAULT '[]',
|
||||
notes TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_recipes_cuisine ON recipes(cuisine);
|
||||
CREATE INDEX IF NOT EXISTS idx_recipes_tags ON recipes USING GIN (tags);
|
||||
CREATE INDEX IF NOT EXISTS idx_meal_plans_week ON meal_plans(week_start);
|
||||
CREATE INDEX IF NOT EXISTS idx_shopping_lists_week ON shopping_lists(week_start);
|
||||
|
||||
DROP TRIGGER IF EXISTS update_recipes_updated_at ON recipes;
|
||||
CREATE TRIGGER update_recipes_updated_at
|
||||
BEFORE UPDATE ON recipes
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||||
|
||||
DROP TRIGGER IF EXISTS update_shopping_lists_updated_at ON shopping_lists;
|
||||
CREATE TRIGGER update_shopping_lists_updated_at
|
||||
BEFORE UPDATE ON shopping_lists
|
||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||||
Reference in New Issue
Block a user