35595-vm/db/migrations/004_create_chat_tables.sql
Flatlogic Bot 89d2171b50 1.0.1
2025-11-09 14:00:35 +00:00

31 lines
1.1 KiB
SQL

CREATE TABLE IF NOT EXISTS `messages` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`sender_id` INT NOT NULL,
`receiver_id` INT, -- For private messages
`group_id` INT, -- For group messages
`message` TEXT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (sender_id) REFERENCES users(id),
FOREIGN KEY (receiver_id) REFERENCES users(id)
-- FOREIGN KEY (group_id) REFERENCES chat_groups(id) -- This will be added later to avoid circular dependency
);
CREATE TABLE IF NOT EXISTS `chat_groups` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`creator_id` INT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (creator_id) REFERENCES users(id)
);
CREATE TABLE IF NOT EXISTS `chat_group_members` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`group_id` INT NOT NULL,
`user_id` INT NOT NULL,
`role` ENUM('member', 'admin') NOT NULL DEFAULT 'member',
FOREIGN KEY (group_id) REFERENCES chat_groups(id),
FOREIGN KEY (user_id) REFERENCES users(id)
);
ALTER TABLE `messages` ADD CONSTRAINT `fk_messages_group_id` FOREIGN KEY (`group_id`) REFERENCES `chat_groups`(`id`);