-- CreateEnum CREATE TYPE "DraftType" AS ENUM ('EVENT', 'SEVA_TASK', 'FAQ_ITEM'); -- CreateEnum CREATE TYPE "DraftStatus" AS ENUM ('PENDING_REVIEW', 'APPROVED', 'REJECTED'); -- CreateTable CREATE TABLE "ContentDraft" ( "id" TEXT NOT NULL, "tenantId" TEXT NOT NULL, "type" "DraftType" NOT NULL, "status" "DraftStatus" NOT NULL DEFAULT 'PENDING_REVIEW', "sourceMessageId" TEXT NOT NULL, "proposedJson" JSONB NOT NULL, "confidence" DOUBLE PRECISION, "reviewedBy" TEXT, "reviewedAt" TIMESTAMP(3), "publishedId" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "ContentDraft_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "ContentDraft_tenantId_status_idx" ON "ContentDraft"("tenantId", "status"); -- CreateIndex CREATE INDEX "ContentDraft_tenantId_type_status_idx" ON "ContentDraft"("tenantId", "type", "status"); -- CreateIndex CREATE INDEX "ContentDraft_sourceMessageId_idx" ON "ContentDraft"("sourceMessageId"); -- AddForeignKey ALTER TABLE "ContentDraft" ADD CONSTRAINT "ContentDraft_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "ContentDraft" ADD CONSTRAINT "ContentDraft_sourceMessageId_fkey" FOREIGN KEY ("sourceMessageId") REFERENCES "Message"("id") ON DELETE RESTRICT ON UPDATE CASCADE;