cal.pub0.org/packages/prisma/migrations/20220711182928_add_workflows/migration.sql

87 lines
2.9 KiB
SQL

-- CreateEnum
CREATE TYPE "WorkflowTriggerEvents" AS ENUM ('BEFORE_EVENT', 'EVENT_CANCELLED', 'NEW_EVENT');
-- CreateEnum
CREATE TYPE "WorkflowActions" AS ENUM ('EMAIL_HOST', 'EMAIL_ATTENDEE', 'SMS_ATTENDEE', 'SMS_NUMBER');
-- CreateEnum
CREATE TYPE "TimeUnit" AS ENUM ('day', 'hour', 'minute');
-- CreateEnum
CREATE TYPE "WorkflowTemplates" AS ENUM ('REMINDER', 'CUSTOM');
-- CreateEnum
CREATE TYPE "WorkflowMethods" AS ENUM ('EMAIL', 'SMS');
-- AlterTable
ALTER TABLE "Booking" ADD COLUMN "smsReminderNumber" TEXT;
-- CreateTable
CREATE TABLE "WorkflowStep" (
"id" SERIAL NOT NULL,
"stepNumber" INTEGER NOT NULL,
"action" "WorkflowActions" NOT NULL,
"workflowId" INTEGER NOT NULL,
"sendTo" TEXT,
"reminderBody" TEXT,
"emailSubject" TEXT,
"template" "WorkflowTemplates" NOT NULL DEFAULT E'REMINDER',
CONSTRAINT "WorkflowStep_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Workflow" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"userId" INTEGER NOT NULL,
"trigger" "WorkflowTriggerEvents" NOT NULL,
"time" INTEGER,
"timeUnit" "TimeUnit",
CONSTRAINT "Workflow_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowsOnEventTypes" (
"id" SERIAL NOT NULL,
"workflowId" INTEGER NOT NULL,
"eventTypeId" INTEGER NOT NULL,
CONSTRAINT "WorkflowsOnEventTypes_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "WorkflowReminder" (
"id" SERIAL NOT NULL,
"bookingUid" TEXT NOT NULL,
"method" "WorkflowMethods" NOT NULL,
"scheduledDate" TIMESTAMP(3) NOT NULL,
"referenceId" TEXT,
"scheduled" BOOLEAN NOT NULL,
"workflowStepId" INTEGER NOT NULL,
CONSTRAINT "WorkflowReminder_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "WorkflowReminder_referenceId_key" ON "WorkflowReminder"("referenceId");
-- AddForeignKey
ALTER TABLE "WorkflowStep" ADD CONSTRAINT "WorkflowStep_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Workflow" ADD CONSTRAINT "Workflow_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowsOnEventTypes" ADD CONSTRAINT "WorkflowsOnEventTypes_eventTypeId_fkey" FOREIGN KEY ("eventTypeId") REFERENCES "EventType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowsOnEventTypes" ADD CONSTRAINT "WorkflowsOnEventTypes_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowReminder" ADD CONSTRAINT "WorkflowReminder_bookingUid_fkey" FOREIGN KEY ("bookingUid") REFERENCES "Booking"("uid") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "WorkflowReminder" ADD CONSTRAINT "WorkflowReminder_workflowStepId_fkey" FOREIGN KEY ("workflowStepId") REFERENCES "WorkflowStep"("id") ON DELETE CASCADE ON UPDATE CASCADE;