mirror of
https://github.com/hanzoai/calendar.git
synced 2026-10-30 14:46:43 +00:00
* feat: add denormalized table for BookingTimeStatus * Update packages/prisma/migrations/20240320000001_add_booking_time_status_denormalized/migration.sql Co-authored-by: sean-brydon <[email protected]> * add more indexes * improvement * update schema * improve indexes * apply feedback from mrge * split update trigger for better perf * remove unnecessary checks * split migration into two * less logging * address feedback * add updatedAt and userUsername * remove timeStatus * add deletion trigger * clean up denorm table on row deletion at EventType or users * add timeStatus back as a part of a new view * keep user and eventType nullable * rename triggers * add tests * clean up migrations * update tests * update tests * update test clean up * one more try * similar updates * use e2e test instead --------- Co-authored-by: sean-brydon <[email protected]>
63 lines
1.9 KiB
SQL
63 lines
1.9 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "BookingDenormalized" (
|
|
"id" INTEGER NOT NULL,
|
|
"uid" TEXT NOT NULL,
|
|
"eventTypeId" INTEGER,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"startTime" TIMESTAMP(3) NOT NULL,
|
|
"endTime" TIMESTAMP(3) NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL,
|
|
"updatedAt" TIMESTAMP(3),
|
|
"location" TEXT,
|
|
"paid" BOOLEAN NOT NULL,
|
|
"status" "BookingStatus" NOT NULL,
|
|
"rescheduled" BOOLEAN,
|
|
"userId" INTEGER,
|
|
"teamId" INTEGER,
|
|
"eventLength" INTEGER,
|
|
"eventParentId" INTEGER,
|
|
"userEmail" TEXT,
|
|
"userName" TEXT,
|
|
"userUsername" TEXT,
|
|
"ratingFeedback" TEXT,
|
|
"rating" INTEGER,
|
|
"noShowHost" BOOLEAN,
|
|
"isTeamBooking" BOOLEAN NOT NULL,
|
|
|
|
CONSTRAINT "BookingDenormalized_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_userId_idx" ON "BookingDenormalized"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_createdAt_idx" ON "BookingDenormalized"("createdAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_eventTypeId_idx" ON "BookingDenormalized"("eventTypeId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_eventParentId_idx" ON "BookingDenormalized"("eventParentId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_teamId_idx" ON "BookingDenormalized"("teamId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_startTime_idx" ON "BookingDenormalized"("startTime");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_endTime_idx" ON "BookingDenormalized"("endTime");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_status_idx" ON "BookingDenormalized"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_teamId_isTeamBooking_idx" ON "BookingDenormalized"("teamId", "isTeamBooking");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "BookingDenormalized_userId_isTeamBooking_idx" ON "BookingDenormalized"("userId", "isTeamBooking");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "BookingDenormalized_id_key" ON "BookingDenormalized"("id");
|