-- CreateTable CREATE TABLE "users" ( "id" TEXT NOT NULL, "email" TEXT NOT NULL, "name" TEXT NOT NULL, "password_hash" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "users_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "recordings" ( "id" TEXT NOT NULL, "user_id" TEXT NOT NULL, "title" TEXT NOT NULL, "audio_file_path" TEXT NOT NULL, "duration" INTEGER NOT NULL, "transcript" TEXT, "summary" TEXT, "is_transcribing" BOOLEAN NOT NULL DEFAULT false, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "recordings_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "generated_apps" ( "id" TEXT NOT NULL, "user_id" TEXT NOT NULL, "recording_id" TEXT NOT NULL, "title" TEXT NOT NULL, "description" TEXT, "html_content" TEXT NOT NULL, "prd_content" TEXT, "ui_ux_design" TEXT, "app_type" TEXT, "status" TEXT NOT NULL DEFAULT 'completed', "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "generated_apps_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); -- CreateIndex CREATE INDEX "recordings_user_id_idx" ON "recordings"("user_id"); -- CreateIndex CREATE INDEX "generated_apps_user_id_idx" ON "generated_apps"("user_id"); -- CreateIndex CREATE INDEX "generated_apps_recording_id_idx" ON "generated_apps"("recording_id"); -- AddForeignKey ALTER TABLE "recordings" ADD CONSTRAINT "recordings_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "generated_apps" ADD CONSTRAINT "generated_apps_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "generated_apps" ADD CONSTRAINT "generated_apps_recording_id_fkey" FOREIGN KEY ("recording_id") REFERENCES "recordings"("id") ON DELETE CASCADE ON UPDATE CASCADE;