CREATE TABLE "student_saved_maps" ( "id" UUID NOT NULL DEFAULT gen_random_uuid(), "user_id" UUID NOT NULL, "course_id" UUID NOT NULL, "week" INTEGER NOT NULL, "name" TEXT NOT NULL, "source_map_key" TEXT NOT NULL, "world_file" TEXT NOT NULL, "viewer_model" TEXT NOT NULL, "yaml_path" TEXT NOT NULL, "pgm_path" TEXT NOT NULL, "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMPTZ(3) NOT NULL, CONSTRAINT "student_saved_maps_pkey" PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "student_saved_maps_user_id_course_id_week_yaml_path_key" ON "student_saved_maps"("user_id", "course_id", "week", "yaml_path"); CREATE INDEX "student_saved_maps_user_id_course_id_week_created_at_idx" ON "student_saved_maps"("user_id", "course_id", "week", "created_at"); ALTER TABLE "student_saved_maps" ADD CONSTRAINT "student_saved_maps_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "student_saved_maps" ADD CONSTRAINT "student_saved_maps_course_id_fkey" FOREIGN KEY ("course_id") REFERENCES "courses"("id") ON DELETE CASCADE ON UPDATE CASCADE;