CREATE TABLE "student_custom_modules" ( "id" UUID NOT NULL, "user_id" UUID NOT NULL, "course_id" UUID NOT NULL, "week" INTEGER NOT NULL, "sort_order" INTEGER NOT NULL, "category" TEXT NOT NULL, "name" TEXT NOT NULL, "folder_name" TEXT NOT NULL, "docker_image" TEXT, "package_name" TEXT NOT NULL, "launch_file" TEXT NOT NULL, "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMPTZ(3) NOT NULL, CONSTRAINT "student_custom_modules_pkey" PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "student_custom_modules_user_id_course_id_week_folder_name_key" ON "student_custom_modules"("user_id", "course_id", "week", "folder_name"); CREATE INDEX "student_custom_modules_user_id_course_id_week_sort_order_idx" ON "student_custom_modules"("user_id", "course_id", "week", "sort_order"); ALTER TABLE "student_custom_modules" ADD CONSTRAINT "student_custom_modules_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "student_custom_modules" ADD CONSTRAINT "student_custom_modules_course_id_fkey" FOREIGN KEY ("course_id") REFERENCES "courses"("id") ON DELETE CASCADE ON UPDATE CASCADE;