81 lines
2.9 KiB
SQL
81 lines
2.9 KiB
SQL
-- 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;
|