87 lines
2.9 KiB
MySQL
87 lines
2.9 KiB
MySQL
|
-- 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;
|