CREATE TABLE "recipe_submissions" ( "id" text PRIMARY KEY NOT NULL, "userId" text NOT NULL, "name" text NOT NULL, "portions" integer DEFAULT 1 NOT NULL, "minutes" integer DEFAULT 0 NOT NULL, "notes" text, "mealPrepDays" integer DEFAULT 0 NOT NULL, "status" text DEFAULT 'pending' NOT NULL, "reviewNote" text, "reviewedBy" text, "reviewedAt" timestamp, "acceptedRecipeId" text, "createdAt" timestamp DEFAULT now() NOT NULL, "updatedAt" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE "recipe_submission_ingredients" ( "id" text PRIMARY KEY NOT NULL, "submissionId" text NOT NULL, "foodId" text NOT NULL, "amountG" numeric(8, 2) NOT NULL, "displayAmount" numeric(8, 2), "displayUnit" "portion_unit", "portionId" text, "sortOrder" integer DEFAULT 0 NOT NULL ); --> statement-breakpoint ALTER TABLE "recipe_submissions" ADD CONSTRAINT "recipe_submissions_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "recipe_submissions" ADD CONSTRAINT "recipe_submissions_reviewedBy_user_id_fk" FOREIGN KEY ("reviewedBy") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint ALTER TABLE "recipe_submissions" ADD CONSTRAINT "recipe_submissions_acceptedRecipeId_recipes_id_fk" FOREIGN KEY ("acceptedRecipeId") REFERENCES "public"."recipes"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint ALTER TABLE "recipe_submission_ingredients" ADD CONSTRAINT "recipe_submission_ingredients_submissionId_recipe_submissions_id_fk" FOREIGN KEY ("submissionId") REFERENCES "public"."recipe_submissions"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint ALTER TABLE "recipe_submission_ingredients" ADD CONSTRAINT "recipe_submission_ingredients_foodId_foods_id_fk" FOREIGN KEY ("foodId") REFERENCES "public"."foods"("id") ON DELETE restrict ON UPDATE no action;--> statement-breakpoint ALTER TABLE "recipe_submission_ingredients" ADD CONSTRAINT "recipe_submission_ingredients_portionId_food_portions_id_fk" FOREIGN KEY ("portionId") REFERENCES "public"."food_portions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint CREATE INDEX "recipe_submissions_user_idx" ON "recipe_submissions" USING btree ("userId");--> statement-breakpoint CREATE INDEX "recipe_submissions_status_idx" ON "recipe_submissions" USING btree ("status","createdAt");--> statement-breakpoint CREATE INDEX "recipe_submission_ingredients_submission_idx" ON "recipe_submission_ingredients" USING btree ("submissionId");--> statement-breakpoint