86 lines
3.3 KiB
SQL
86 lines
3.3 KiB
SQL
-- AlterTable
|
|
ALTER TABLE `bookings` ADD COLUMN `review_reminder_claimed_at` DATETIME(3) NULL,
|
|
ADD COLUMN `review_reminder_due_at` DATETIME(3) NULL,
|
|
ADD COLUMN `review_reminder_sent_at` DATETIME(3) NULL;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `booking_reviews` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`booking_id` VARCHAR(191) NOT NULL,
|
|
`rating` INTEGER NOT NULL,
|
|
`recommendation` INTEGER NULL,
|
|
`tags` JSON NOT NULL,
|
|
`comment` VARCHAR(200) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
UNIQUE INDEX `booking_reviews_booking_id_key`(`booking_id`),
|
|
INDEX `booking_reviews_created_at_idx`(`created_at`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `body_metrics` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`recorded_at` DATE NOT NULL,
|
|
`weight` DOUBLE NULL,
|
|
`body_fat` DOUBLE NULL,
|
|
`waist` DOUBLE NULL,
|
|
`hip` DOUBLE NULL,
|
|
`flexibility` DOUBLE NULL,
|
|
`remark` VARCHAR(200) NOT NULL DEFAULT '',
|
|
`operator_id` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
INDEX `body_metrics_user_id_recorded_at_idx`(`user_id`, `recorded_at`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `member_notes` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`booking_id` VARCHAR(191) NULL,
|
|
`content` VARCHAR(1000) NOT NULL,
|
|
`shared` BOOLEAN NOT NULL DEFAULT false,
|
|
`operator_id` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
INDEX `member_notes_user_id_created_at_idx`(`user_id`, `created_at`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE `progress_photos` (
|
|
`id` VARCHAR(191) NOT NULL,
|
|
`user_id` VARCHAR(191) NOT NULL,
|
|
`object_key` VARCHAR(191) NOT NULL,
|
|
`caption` VARCHAR(200) NOT NULL DEFAULT '',
|
|
`recorded_at` DATE NOT NULL,
|
|
`uploaded_at` DATETIME(3) NULL,
|
|
`consented_at` DATETIME(3) NULL,
|
|
`revoked_at` DATETIME(3) NULL,
|
|
`operator_id` VARCHAR(191) NOT NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
UNIQUE INDEX `progress_photos_object_key_key`(`object_key`),
|
|
INDEX `progress_photos_user_id_recorded_at_idx`(`user_id`, `recorded_at`),
|
|
PRIMARY KEY (`id`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `booking_reviews` ADD CONSTRAINT `booking_reviews_booking_id_fkey` FOREIGN KEY (`booking_id`) REFERENCES `bookings`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `body_metrics` ADD CONSTRAINT `body_metrics_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `member_notes` ADD CONSTRAINT `member_notes_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `member_notes` ADD CONSTRAINT `member_notes_booking_id_fkey` FOREIGN KEY (`booking_id`) REFERENCES `bookings`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE `progress_photos` ADD CONSTRAINT `progress_photos_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|