|
| 1 | +-- CreateTable |
| 2 | +CREATE TABLE `ChatRoom` ( |
| 3 | + `room_id` INTEGER NOT NULL AUTO_INCREMENT, |
| 4 | + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), |
| 5 | + `last_message_id` INTEGER NULL, |
| 6 | + `user_id1` INTEGER NOT NULL, |
| 7 | + `user_id2` INTEGER NOT NULL, |
| 8 | + |
| 9 | + UNIQUE INDEX `ChatRoom_last_message_id_key`(`last_message_id`), |
| 10 | + UNIQUE INDEX `ChatRoom_user_id1_user_id2_key`(`user_id1`, `user_id2`), |
| 11 | + PRIMARY KEY (`room_id`) |
| 12 | +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 13 | + |
| 14 | +-- CreateTable |
| 15 | +CREATE TABLE `ChatMessage` ( |
| 16 | + `message_id` INTEGER NOT NULL AUTO_INCREMENT, |
| 17 | + `content` TEXT NULL, |
| 18 | + `sent_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), |
| 19 | + `sender_id` INTEGER NOT NULL, |
| 20 | + `room_id` INTEGER NOT NULL, |
| 21 | + |
| 22 | + PRIMARY KEY (`message_id`) |
| 23 | +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 24 | + |
| 25 | +-- CreateTable |
| 26 | +CREATE TABLE `ChatParticipant` ( |
| 27 | + `chat_participant_id` INTEGER NOT NULL AUTO_INCREMENT, |
| 28 | + `is_pinned` BOOLEAN NOT NULL DEFAULT false, |
| 29 | + `left_at` DATETIME(3) NULL, |
| 30 | + `room_id` INTEGER NOT NULL, |
| 31 | + `user_id` INTEGER NOT NULL, |
| 32 | + `last_read_message_id` INTEGER NULL, |
| 33 | + |
| 34 | + UNIQUE INDEX `ChatParticipant_room_id_user_id_key`(`room_id`, `user_id`), |
| 35 | + PRIMARY KEY (`chat_participant_id`) |
| 36 | +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 37 | + |
| 38 | +-- CreateTable |
| 39 | +CREATE TABLE `UserBlock` ( |
| 40 | + `block_id` INTEGER NOT NULL AUTO_INCREMENT, |
| 41 | + `blocked_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), |
| 42 | + `blocker_id` INTEGER NOT NULL, |
| 43 | + `blocked_id` INTEGER NOT NULL, |
| 44 | + |
| 45 | + UNIQUE INDEX `UserBlock_blocker_id_blocked_id_key`(`blocker_id`, `blocked_id`), |
| 46 | + PRIMARY KEY (`block_id`) |
| 47 | +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 48 | + |
| 49 | +-- CreateTable |
| 50 | +CREATE TABLE `Attachment` ( |
| 51 | + `attachment_id` INTEGER NOT NULL AUTO_INCREMENT, |
| 52 | + `message_id` INTEGER NOT NULL, |
| 53 | + `url` TEXT NOT NULL, |
| 54 | + `type` ENUM('IMAGE', 'FILE') NOT NULL, |
| 55 | + `name` VARCHAR(191) NOT NULL, |
| 56 | + `size` INTEGER NOT NULL, |
| 57 | + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), |
| 58 | + |
| 59 | + INDEX `Attachment_message_id_idx`(`message_id`), |
| 60 | + PRIMARY KEY (`attachment_id`) |
| 61 | +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 62 | + |
| 63 | +-- AddForeignKey |
| 64 | +ALTER TABLE `ChatRoom` ADD CONSTRAINT `ChatRoom_last_message_id_fkey` FOREIGN KEY (`last_message_id`) REFERENCES `ChatMessage`(`message_id`) ON DELETE SET NULL ON UPDATE CASCADE; |
| 65 | + |
| 66 | +-- AddForeignKey |
| 67 | +ALTER TABLE `ChatRoom` ADD CONSTRAINT `ChatRoom_user_id1_fkey` FOREIGN KEY (`user_id1`) REFERENCES `User`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE; |
| 68 | + |
| 69 | +-- AddForeignKey |
| 70 | +ALTER TABLE `ChatRoom` ADD CONSTRAINT `ChatRoom_user_id2_fkey` FOREIGN KEY (`user_id2`) REFERENCES `User`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE; |
| 71 | + |
| 72 | +-- AddForeignKey |
| 73 | +ALTER TABLE `ChatMessage` ADD CONSTRAINT `ChatMessage_sender_id_fkey` FOREIGN KEY (`sender_id`) REFERENCES `User`(`user_id`) ON DELETE RESTRICT ON UPDATE CASCADE; |
| 74 | + |
| 75 | +-- AddForeignKey |
| 76 | +ALTER TABLE `ChatMessage` ADD CONSTRAINT `ChatMessage_room_id_fkey` FOREIGN KEY (`room_id`) REFERENCES `ChatRoom`(`room_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
| 77 | + |
| 78 | +-- AddForeignKey |
| 79 | +ALTER TABLE `ChatParticipant` ADD CONSTRAINT `ChatParticipant_room_id_fkey` FOREIGN KEY (`room_id`) REFERENCES `ChatRoom`(`room_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
| 80 | + |
| 81 | +-- AddForeignKey |
| 82 | +ALTER TABLE `ChatParticipant` ADD CONSTRAINT `ChatParticipant_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
| 83 | + |
| 84 | +-- AddForeignKey |
| 85 | +ALTER TABLE `ChatParticipant` ADD CONSTRAINT `ChatParticipant_last_read_message_id_fkey` FOREIGN KEY (`last_read_message_id`) REFERENCES `ChatMessage`(`message_id`) ON DELETE SET NULL ON UPDATE CASCADE; |
| 86 | + |
| 87 | +-- AddForeignKey |
| 88 | +ALTER TABLE `UserBlock` ADD CONSTRAINT `UserBlock_blocker_id_fkey` FOREIGN KEY (`blocker_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
| 89 | + |
| 90 | +-- AddForeignKey |
| 91 | +ALTER TABLE `UserBlock` ADD CONSTRAINT `UserBlock_blocked_id_fkey` FOREIGN KEY (`blocked_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
| 92 | + |
| 93 | +-- AddForeignKey |
| 94 | +ALTER TABLE `Attachment` ADD CONSTRAINT `Attachment_message_id_fkey` FOREIGN KEY (`message_id`) REFERENCES `ChatMessage`(`message_id`) ON DELETE CASCADE ON UPDATE CASCADE; |
0 commit comments