-- CreateTable CREATE TABLE `Publisher` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `firstName` VARCHAR(191) NOT NULL, `lastName` VARCHAR(191) NOT NULL, `email` VARCHAR(191) NOT NULL, `phone` VARCHAR(191) NULL, `isActive` BOOLEAN NOT NULL DEFAULT true, `age` INTEGER NULL, UNIQUE INDEX `Publisher_email_key`(`email`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Availability` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `publisherId` INTEGER NOT NULL, `name` VARCHAR(191) NOT NULL, `dayofweek` ENUM('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') NOT NULL, `startTime` DATETIME(3) NOT NULL, `endTime` DATETIME(3) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `CartEvent` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `startTime` DATETIME(3) NOT NULL, `endTime` DATETIME(3) NOT NULL, `dayofweek` ENUM('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Shift` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `cartEventId` INTEGER NOT NULL, `name` VARCHAR(191) NOT NULL, `startTime` DATETIME(3) NOT NULL, `endTime` DATETIME(3) NOT NULL, `isActive` BOOLEAN NOT NULL DEFAULT true, `requiresTransport` BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `Location` ( `id` INTEGER NOT NULL AUTO_INCREMENT, `name` VARCHAR(191) NOT NULL, `address` VARCHAR(191) NOT NULL, `isActive` BOOLEAN NOT NULL DEFAULT true, `dayofweek` ENUM('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `_PublisherToShift` ( `A` INTEGER NOT NULL, `B` INTEGER NOT NULL, UNIQUE INDEX `_PublisherToShift_AB_unique`(`A`, `B`), INDEX `_PublisherToShift_B_index`(`B`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `Availability` ADD CONSTRAINT `Availability_publisherId_fkey` FOREIGN KEY (`publisherId`) REFERENCES `Publisher`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `Shift` ADD CONSTRAINT `Shift_cartEventId_fkey` FOREIGN KEY (`cartEventId`) REFERENCES `CartEvent`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `_PublisherToShift` ADD CONSTRAINT `_PublisherToShift_A_fkey` FOREIGN KEY (`A`) REFERENCES `Publisher`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `_PublisherToShift` ADD CONSTRAINT `_PublisherToShift_B_fkey` FOREIGN KEY (`B`) REFERENCES `Shift`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;