672 lines
24 KiB
SQL
672 lines
24 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "QRCodeStatus" AS ENUM ('active', 'revoked');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "CheckInResult" AS ENUM ('checked_in', 'duplicate', 'rejected');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "CommunicationChannel" AS ENUM ('email', 'sms', 'whatsapp');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "CommunicationStatus" AS ENUM ('queued', 'sent', 'failed');
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "Registration" ADD COLUMN "checkedInAt" TIMESTAMP(3),
|
|
ADD COLUMN "source" TEXT NOT NULL DEFAULT 'admin',
|
|
ADD COLUMN "ticketTypeId" TEXT;
|
|
|
|
-- AlterTable
|
|
ALTER TABLE "PaymentTransaction" ADD COLUMN "registrationId" TEXT,
|
|
ADD COLUMN "ticketTypeId" TEXT;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EventPage" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"heroTitle" TEXT,
|
|
"description" TEXT,
|
|
"content" JSONB,
|
|
"theme" JSONB,
|
|
"publishedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "EventPage_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "TicketType" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"priceKobo" INTEGER NOT NULL DEFAULT 0,
|
|
"currency" TEXT NOT NULL DEFAULT 'NGN',
|
|
"capacity" INTEGER,
|
|
"soldCount" INTEGER NOT NULL DEFAULT 0,
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "TicketType_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Form" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"isPublic" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Form_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "FormField" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"formId" TEXT NOT NULL,
|
|
"label" TEXT NOT NULL,
|
|
"key" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"required" BOOLEAN NOT NULL DEFAULT false,
|
|
"options" JSONB,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "FormField_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "FormSubmission" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"formId" TEXT NOT NULL,
|
|
"eventId" TEXT,
|
|
"attendeeId" TEXT,
|
|
"registrationId" TEXT,
|
|
"data" JSONB NOT NULL,
|
|
"source" TEXT NOT NULL DEFAULT 'admin',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "FormSubmission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "QRCode" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"registrationId" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"payload" JSONB NOT NULL,
|
|
"status" "QRCodeStatus" NOT NULL DEFAULT 'active',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "QRCode_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CheckIn" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT NOT NULL,
|
|
"registrationId" TEXT NOT NULL,
|
|
"attendeeId" TEXT,
|
|
"checkedInByUserId" TEXT,
|
|
"code" TEXT NOT NULL,
|
|
"result" "CheckInResult" NOT NULL DEFAULT 'checked_in',
|
|
"note" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "CheckIn_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CommunicationTemplate" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"channel" "CommunicationChannel" NOT NULL,
|
|
"subject" TEXT,
|
|
"body" TEXT NOT NULL,
|
|
"variables" JSONB,
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CommunicationTemplate_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CommunicationLog" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"templateId" TEXT,
|
|
"inviteeId" TEXT,
|
|
"registrationId" TEXT,
|
|
"channel" "CommunicationChannel" NOT NULL,
|
|
"to" TEXT NOT NULL,
|
|
"subject" TEXT,
|
|
"body" TEXT NOT NULL,
|
|
"status" "CommunicationStatus" NOT NULL DEFAULT 'queued',
|
|
"providerMessageId" TEXT,
|
|
"error" TEXT,
|
|
"raw" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CommunicationLog_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "PaystackWebhookEvent" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT,
|
|
"event" TEXT NOT NULL,
|
|
"reference" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'received',
|
|
"raw" JSONB NOT NULL,
|
|
"receivedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"processedAt" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "PaystackWebhookEvent_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CRMLead" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT,
|
|
"attendeeId" TEXT,
|
|
"fullName" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"phone" TEXT,
|
|
"source" TEXT NOT NULL DEFAULT 'manual',
|
|
"status" TEXT NOT NULL DEFAULT 'new',
|
|
"valueKobo" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CRMLead_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CRMDeal" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"leadId" TEXT,
|
|
"eventId" TEXT,
|
|
"title" TEXT NOT NULL,
|
|
"stage" TEXT NOT NULL DEFAULT 'new',
|
|
"valueKobo" INTEGER NOT NULL DEFAULT 0,
|
|
"probability" INTEGER NOT NULL DEFAULT 0,
|
|
"ownerUserId" TEXT,
|
|
"expectedCloseAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CRMDeal_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CRMActivity" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"leadId" TEXT,
|
|
"dealId" TEXT,
|
|
"userId" TEXT,
|
|
"type" TEXT NOT NULL DEFAULT 'note',
|
|
"note" TEXT NOT NULL,
|
|
"dueAt" TIMESTAMP(3),
|
|
"completedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "CRMActivity_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Workflow" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Workflow_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WorkflowTrigger" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"workflowId" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"config" JSONB,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WorkflowTrigger_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WorkflowAction" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"workflowId" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"config" JSONB,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WorkflowAction_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CalendarRoutingForm" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"eventId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"durationMinutes" INTEGER NOT NULL DEFAULT 30,
|
|
"active" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CalendarRoutingForm_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CalendarSlot" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"routingFormId" TEXT NOT NULL,
|
|
"startsAt" TIMESTAMP(3) NOT NULL,
|
|
"endsAt" TIMESTAMP(3) NOT NULL,
|
|
"capacity" INTEGER NOT NULL DEFAULT 1,
|
|
"bookedCount" INTEGER NOT NULL DEFAULT 0,
|
|
"active" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CalendarSlot_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Booking" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"routingFormId" TEXT NOT NULL,
|
|
"eventId" TEXT,
|
|
"attendeeId" TEXT,
|
|
"fullName" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"phone" TEXT,
|
|
"startsAt" TIMESTAMP(3) NOT NULL,
|
|
"endsAt" TIMESTAMP(3) NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'booked',
|
|
"notes" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Booking_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "EventPage_eventId_key" ON "EventPage"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "EventPage_tenantId_idx" ON "EventPage"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "TicketType_tenantId_idx" ON "TicketType"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "TicketType_tenantId_eventId_idx" ON "TicketType"("tenantId", "eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "TicketType_tenantId_eventId_name_key" ON "TicketType"("tenantId", "eventId", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Form_tenantId_idx" ON "Form"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Form_tenantId_eventId_idx" ON "Form"("tenantId", "eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Form_tenantId_slug_key" ON "Form"("tenantId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormField_tenantId_idx" ON "FormField"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormField_formId_idx" ON "FormField"("formId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "FormField_formId_key_key" ON "FormField"("formId", "key");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormSubmission_tenantId_idx" ON "FormSubmission"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormSubmission_formId_idx" ON "FormSubmission"("formId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormSubmission_eventId_idx" ON "FormSubmission"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormSubmission_attendeeId_idx" ON "FormSubmission"("attendeeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FormSubmission_registrationId_idx" ON "FormSubmission"("registrationId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "QRCode_registrationId_key" ON "QRCode"("registrationId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "QRCode_code_key" ON "QRCode"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "QRCode_tenantId_idx" ON "QRCode"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CheckIn_tenantId_idx" ON "CheckIn"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CheckIn_tenantId_eventId_idx" ON "CheckIn"("tenantId", "eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CheckIn_registrationId_idx" ON "CheckIn"("registrationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CheckIn_attendeeId_idx" ON "CheckIn"("attendeeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CommunicationTemplate_tenantId_idx" ON "CommunicationTemplate"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "CommunicationTemplate_tenantId_name_channel_key" ON "CommunicationTemplate"("tenantId", "name", "channel");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CommunicationLog_tenantId_idx" ON "CommunicationLog"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CommunicationLog_templateId_idx" ON "CommunicationLog"("templateId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CommunicationLog_inviteeId_idx" ON "CommunicationLog"("inviteeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CommunicationLog_registrationId_idx" ON "CommunicationLog"("registrationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "PaystackWebhookEvent_tenantId_idx" ON "PaystackWebhookEvent"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "PaystackWebhookEvent_reference_idx" ON "PaystackWebhookEvent"("reference");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMLead_tenantId_idx" ON "CRMLead"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMLead_eventId_idx" ON "CRMLead"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMLead_attendeeId_idx" ON "CRMLead"("attendeeId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "CRMLead_tenantId_email_key" ON "CRMLead"("tenantId", "email");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMDeal_tenantId_idx" ON "CRMDeal"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMDeal_leadId_idx" ON "CRMDeal"("leadId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMDeal_eventId_idx" ON "CRMDeal"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMActivity_tenantId_idx" ON "CRMActivity"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMActivity_leadId_idx" ON "CRMActivity"("leadId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMActivity_dealId_idx" ON "CRMActivity"("dealId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CRMActivity_userId_idx" ON "CRMActivity"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Workflow_tenantId_idx" ON "Workflow"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Workflow_tenantId_name_key" ON "Workflow"("tenantId", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WorkflowTrigger_tenantId_idx" ON "WorkflowTrigger"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WorkflowTrigger_workflowId_idx" ON "WorkflowTrigger"("workflowId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WorkflowAction_tenantId_idx" ON "WorkflowAction"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WorkflowAction_workflowId_idx" ON "WorkflowAction"("workflowId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarRoutingForm_tenantId_idx" ON "CalendarRoutingForm"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarRoutingForm_eventId_idx" ON "CalendarRoutingForm"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "CalendarRoutingForm_tenantId_slug_key" ON "CalendarRoutingForm"("tenantId", "slug");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarSlot_tenantId_idx" ON "CalendarSlot"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarSlot_routingFormId_idx" ON "CalendarSlot"("routingFormId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarSlot_startsAt_idx" ON "CalendarSlot"("startsAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Booking_tenantId_idx" ON "Booking"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Booking_routingFormId_idx" ON "Booking"("routingFormId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Booking_eventId_idx" ON "Booking"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Booking_attendeeId_idx" ON "Booking"("attendeeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Booking_startsAt_idx" ON "Booking"("startsAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Registration_ticketTypeId_idx" ON "Registration"("ticketTypeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "PaymentTransaction_registrationId_idx" ON "PaymentTransaction"("registrationId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "PaymentTransaction_ticketTypeId_idx" ON "PaymentTransaction"("ticketTypeId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Registration" ADD CONSTRAINT "Registration_ticketTypeId_fkey" FOREIGN KEY ("ticketTypeId") REFERENCES "TicketType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "PaymentTransaction" ADD CONSTRAINT "PaymentTransaction_registrationId_fkey" FOREIGN KEY ("registrationId") REFERENCES "Registration"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "PaymentTransaction" ADD CONSTRAINT "PaymentTransaction_ticketTypeId_fkey" FOREIGN KEY ("ticketTypeId") REFERENCES "TicketType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EventPage" ADD CONSTRAINT "EventPage_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EventPage" ADD CONSTRAINT "EventPage_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TicketType" ADD CONSTRAINT "TicketType_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "TicketType" ADD CONSTRAINT "TicketType_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Form" ADD CONSTRAINT "Form_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Form" ADD CONSTRAINT "Form_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormField" ADD CONSTRAINT "FormField_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormField" ADD CONSTRAINT "FormField_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormSubmission" ADD CONSTRAINT "FormSubmission_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormSubmission" ADD CONSTRAINT "FormSubmission_formId_fkey" FOREIGN KEY ("formId") REFERENCES "Form"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormSubmission" ADD CONSTRAINT "FormSubmission_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormSubmission" ADD CONSTRAINT "FormSubmission_attendeeId_fkey" FOREIGN KEY ("attendeeId") REFERENCES "Attendee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FormSubmission" ADD CONSTRAINT "FormSubmission_registrationId_fkey" FOREIGN KEY ("registrationId") REFERENCES "Registration"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "QRCode" ADD CONSTRAINT "QRCode_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "QRCode" ADD CONSTRAINT "QRCode_registrationId_fkey" FOREIGN KEY ("registrationId") REFERENCES "Registration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CheckIn" ADD CONSTRAINT "CheckIn_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CheckIn" ADD CONSTRAINT "CheckIn_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CheckIn" ADD CONSTRAINT "CheckIn_registrationId_fkey" FOREIGN KEY ("registrationId") REFERENCES "Registration"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CheckIn" ADD CONSTRAINT "CheckIn_attendeeId_fkey" FOREIGN KEY ("attendeeId") REFERENCES "Attendee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CheckIn" ADD CONSTRAINT "CheckIn_checkedInByUserId_fkey" FOREIGN KEY ("checkedInByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CommunicationTemplate" ADD CONSTRAINT "CommunicationTemplate_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CommunicationLog" ADD CONSTRAINT "CommunicationLog_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CommunicationLog" ADD CONSTRAINT "CommunicationLog_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "CommunicationTemplate"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CommunicationLog" ADD CONSTRAINT "CommunicationLog_inviteeId_fkey" FOREIGN KEY ("inviteeId") REFERENCES "Invitee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CommunicationLog" ADD CONSTRAINT "CommunicationLog_registrationId_fkey" FOREIGN KEY ("registrationId") REFERENCES "Registration"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "PaystackWebhookEvent" ADD CONSTRAINT "PaystackWebhookEvent_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMLead" ADD CONSTRAINT "CRMLead_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMLead" ADD CONSTRAINT "CRMLead_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMLead" ADD CONSTRAINT "CRMLead_attendeeId_fkey" FOREIGN KEY ("attendeeId") REFERENCES "Attendee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMDeal" ADD CONSTRAINT "CRMDeal_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMDeal" ADD CONSTRAINT "CRMDeal_leadId_fkey" FOREIGN KEY ("leadId") REFERENCES "CRMLead"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMDeal" ADD CONSTRAINT "CRMDeal_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMActivity" ADD CONSTRAINT "CRMActivity_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMActivity" ADD CONSTRAINT "CRMActivity_leadId_fkey" FOREIGN KEY ("leadId") REFERENCES "CRMLead"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMActivity" ADD CONSTRAINT "CRMActivity_dealId_fkey" FOREIGN KEY ("dealId") REFERENCES "CRMDeal"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CRMActivity" ADD CONSTRAINT "CRMActivity_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Workflow" ADD CONSTRAINT "Workflow_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkflowTrigger" ADD CONSTRAINT "WorkflowTrigger_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkflowTrigger" ADD CONSTRAINT "WorkflowTrigger_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkflowAction" ADD CONSTRAINT "WorkflowAction_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkflowAction" ADD CONSTRAINT "WorkflowAction_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CalendarRoutingForm" ADD CONSTRAINT "CalendarRoutingForm_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CalendarRoutingForm" ADD CONSTRAINT "CalendarRoutingForm_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CalendarSlot" ADD CONSTRAINT "CalendarSlot_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CalendarSlot" ADD CONSTRAINT "CalendarSlot_routingFormId_fkey" FOREIGN KEY ("routingFormId") REFERENCES "CalendarRoutingForm"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Booking" ADD CONSTRAINT "Booking_tenantId_fkey" FOREIGN KEY ("tenantId") REFERENCES "Tenant"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Booking" ADD CONSTRAINT "Booking_routingFormId_fkey" FOREIGN KEY ("routingFormId") REFERENCES "CalendarRoutingForm"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Booking" ADD CONSTRAINT "Booking_eventId_fkey" FOREIGN KEY ("eventId") REFERENCES "Event"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Booking" ADD CONSTRAINT "Booking_attendeeId_fkey" FOREIGN KEY ("attendeeId") REFERENCES "Attendee"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|