-- AlterTable ALTER TABLE `posts` ADD COLUMN `required_participant` INTEGER NULL; -- CreateTable CREATE TABLE `schedules` ( `id` VARCHAR(191) NOT NULL, `post_id` VARCHAR(191) NOT NULL, `user_id` VARCHAR(191) NULL, `date` DATETIME(3) NOT NULL, `start_time` VARCHAR(191) NOT NULL, `end_time` VARCHAR(191) NOT NULL, `participant_count` INTEGER NOT NULL DEFAULT 0, `max_participants` INTEGER NOT NULL DEFAULT 3, `is_available` BOOLEAN NOT NULL DEFAULT true, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `post_id`(`post_id`), UNIQUE INDEX `schedules_post_id_date_start_time_end_time_key`(`post_id`, `date`, `start_time`, `end_time`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `reviews` ( `id` VARCHAR(191) NOT NULL, `post_id` VARCHAR(191) NOT NULL, `user_id` VARCHAR(191) NOT NULL, `rating` INTEGER NOT NULL DEFAULT 0, `comment` VARCHAR(191) NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `post_id`(`post_id`), INDEX `user_id`(`user_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `participants` ( `id` VARCHAR(191) NOT NULL, `post_id` VARCHAR(191) NOT NULL, `user_id` VARCHAR(191) NOT NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `post_id`(`post_id`), INDEX `user_id`(`user_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `schedules` ADD CONSTRAINT `schedules_post_id_fkey` FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `schedules` ADD CONSTRAINT `schedules_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `reviews` ADD CONSTRAINT `reviews_post_id_fkey` FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `reviews` ADD CONSTRAINT `reviews_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `participants` ADD CONSTRAINT `participants_post_id_fkey` FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `participants` ADD CONSTRAINT `participants_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;