34 lines
3.1 KiB
SQL
34 lines
3.1 KiB
SQL
CREATE TABLE "cooking_sessions" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"recipe_id" uuid NOT NULL,
|
|
"household_id" uuid NOT NULL,
|
|
"started_by_user_id" uuid NOT NULL,
|
|
"status" text DEFAULT 'planned' NOT NULL,
|
|
"planned_portions" integer NOT NULL,
|
|
"planned_meal_type" "meal_type" DEFAULT 'dinner' NOT NULL,
|
|
"actual_portions_eaten" integer,
|
|
"leftover_estimate_portions" integer,
|
|
"planned_deductions" jsonb,
|
|
"started_at" timestamp with time zone,
|
|
"completed_at" timestamp with time zone,
|
|
"cancelled_at" timestamp with time zone,
|
|
"cancel_reason" text,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "inventory_transactions" ADD COLUMN "cooking_session_id" uuid;--> statement-breakpoint
|
|
ALTER TABLE "recipe_cooks" ADD COLUMN "cooking_session_id" uuid;--> statement-breakpoint
|
|
ALTER TABLE "meal_boxes" ADD COLUMN "cooking_session_id" uuid;--> statement-breakpoint
|
|
ALTER TABLE "meals" ADD COLUMN "cooking_session_id" uuid;--> statement-breakpoint
|
|
ALTER TABLE "cooking_sessions" ADD CONSTRAINT "cooking_sessions_recipe_id_recipes_id_fk" FOREIGN KEY ("recipe_id") REFERENCES "public"."recipes"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "cooking_sessions" ADD CONSTRAINT "cooking_sessions_household_id_households_id_fk" FOREIGN KEY ("household_id") REFERENCES "public"."households"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "cooking_sessions" ADD CONSTRAINT "cooking_sessions_started_by_user_id_users_id_fk" FOREIGN KEY ("started_by_user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "cooking_sessions_household_status_idx" ON "cooking_sessions" USING btree ("household_id","status");--> statement-breakpoint
|
|
CREATE INDEX "cooking_sessions_recipe_idx" ON "cooking_sessions" USING btree ("recipe_id");--> statement-breakpoint
|
|
CREATE INDEX "cooking_sessions_timeout_idx" ON "cooking_sessions" USING btree ("status","started_at");--> statement-breakpoint
|
|
ALTER TABLE "inventory_transactions" ADD CONSTRAINT "inventory_transactions_cooking_session_id_cooking_sessions_id_fk" FOREIGN KEY ("cooking_session_id") REFERENCES "public"."cooking_sessions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "recipe_cooks" ADD CONSTRAINT "recipe_cooks_cooking_session_id_cooking_sessions_id_fk" FOREIGN KEY ("cooking_session_id") REFERENCES "public"."cooking_sessions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "meal_boxes" ADD CONSTRAINT "meal_boxes_cooking_session_id_cooking_sessions_id_fk" FOREIGN KEY ("cooking_session_id") REFERENCES "public"."cooking_sessions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "meals" ADD CONSTRAINT "meals_cooking_session_id_cooking_sessions_id_fk" FOREIGN KEY ("cooking_session_id") REFERENCES "public"."cooking_sessions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "recipe_cooks_session_idx" ON "recipe_cooks" USING btree ("cooking_session_id"); |