41 lines
1.3 KiB
SQL
41 lines
1.3 KiB
SQL
-- CreateSchema
|
|
CREATE SCHEMA IF NOT EXISTS "public";
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "VoiceExperienceStatus" AS ENUM ('UPLOADED', 'TRANSCRIBING', 'TRANSCRIBED', 'ANALYZING', 'ANALYZED', 'FAILED');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Place" (
|
|
"id" TEXT NOT NULL,
|
|
"googlePlaceId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"latitude" DOUBLE PRECISION NOT NULL,
|
|
"longitude" DOUBLE PRECISION NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Place_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "VoiceExperience" (
|
|
"id" TEXT NOT NULL,
|
|
"placeId" TEXT NOT NULL,
|
|
"durationSeconds" INTEGER NOT NULL,
|
|
"audioObjectKey" TEXT NOT NULL,
|
|
"status" "VoiceExperienceStatus" NOT NULL DEFAULT 'UPLOADED',
|
|
"transcript" TEXT,
|
|
"analysis" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "VoiceExperience_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Place_googlePlaceId_key" ON "Place"("googlePlaceId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "VoiceExperience" ADD CONSTRAINT "VoiceExperience_placeId_fkey" FOREIGN KEY ("placeId") REFERENCES "Place"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|