35 lines
989 B
SQL
35 lines
989 B
SQL
-- CreateEnum
|
|
CREATE TYPE "ProjectStatus" AS ENUM ('DRAFT', 'PUBLISHED', 'ARCHIVED');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Project" (
|
|
"id" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"status" "ProjectStatus" NOT NULL DEFAULT 'DRAFT',
|
|
"contentJson" JSONB NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Project_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Asset" (
|
|
"id" TEXT NOT NULL,
|
|
"projectId" TEXT NOT NULL,
|
|
"kind" TEXT NOT NULL,
|
|
"url" TEXT NOT NULL,
|
|
"hash" TEXT,
|
|
"meta" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "Asset_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Project_slug_key" ON "Project"("slug");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Asset" ADD CONSTRAINT "Asset_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|