557 lines
22 KiB
SQL
557 lines
22 KiB
SQL
/*M!999999\- enable the sandbox mode */
|
|
-- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64)
|
|
--
|
|
-- Host: 127.0.0.1 Database: app_38443
|
|
-- ------------------------------------------------------
|
|
-- Server version 10.11.14-MariaDB-0+deb12u2
|
|
|
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
/*!40101 SET NAMES utf8mb4 */;
|
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
|
|
--
|
|
-- Table structure for table `channel_autoroles`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_autoroles`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_autoroles` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`icon` varchar(50) NOT NULL,
|
|
`title` varchar(255) NOT NULL,
|
|
`role_id` int(11) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
KEY `role_id` (`role_id`),
|
|
CONSTRAINT `channel_autoroles_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `channel_autoroles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channel_last_read`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_last_read`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_last_read` (
|
|
`channel_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`last_read_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`channel_id`,`user_id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `channel_last_read_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `channel_last_read_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channel_members`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_members`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_members` (
|
|
`channel_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`joined_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`channel_id`,`user_id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `channel_members_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `channel_members_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channel_permissions`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_permissions`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_permissions` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`role_id` int(11) DEFAULT NULL,
|
|
`user_id` int(11) DEFAULT NULL,
|
|
`allow_permissions` int(11) DEFAULT 0,
|
|
`deny_permissions` int(11) DEFAULT 0,
|
|
`role_id_idx` int(11) GENERATED ALWAYS AS (ifnull(`role_id`,0)) VIRTUAL,
|
|
`user_id_idx` int(11) GENERATED ALWAYS AS (ifnull(`user_id`,0)) VIRTUAL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `channel_role_user_fixed` (`channel_id`,`role_id_idx`,`user_id_idx`),
|
|
KEY `role_id` (`role_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channel_rss_feeds`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_rss_feeds`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_rss_feeds` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`url` varchar(255) NOT NULL,
|
|
`last_fetched_at` timestamp NULL DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `channel_rss_feeds_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channel_rules`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channel_rules`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channel_rules` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`content` text NOT NULL,
|
|
`position` int(11) DEFAULT 0,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `channel_rules_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `channels`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `channels`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `channels` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`server_id` int(11) DEFAULT NULL,
|
|
`name` varchar(100) NOT NULL,
|
|
`type` varchar(50) DEFAULT 'chat',
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`allow_file_sharing` tinyint(1) DEFAULT 1,
|
|
`theme_color` varchar(20) DEFAULT NULL,
|
|
`message_limit` int(11) DEFAULT NULL,
|
|
`status` varchar(255) DEFAULT NULL,
|
|
`icon` varchar(50) DEFAULT NULL,
|
|
`position` int(11) DEFAULT 0,
|
|
`category_id` int(11) DEFAULT NULL,
|
|
`rules_role_id` int(11) DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `server_id` (`server_id`),
|
|
CONSTRAINT `channels_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `custom_emotes`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `custom_emotes`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `custom_emotes` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(50) NOT NULL,
|
|
`path` varchar(255) NOT NULL,
|
|
`code` varchar(60) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `forum_tags`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `forum_tags`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `forum_tags` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`name` varchar(50) NOT NULL,
|
|
`color` varchar(20) DEFAULT '#7289da',
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `forum_tags_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `forum_threads`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `forum_threads`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `forum_threads` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`title` varchar(255) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`solution_message_id` int(11) DEFAULT NULL,
|
|
`is_pinned` tinyint(1) NOT NULL DEFAULT 0,
|
|
`is_locked` tinyint(1) NOT NULL DEFAULT 0,
|
|
`last_activity_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
KEY `user_id` (`user_id`),
|
|
KEY `solution_message_id` (`solution_message_id`),
|
|
CONSTRAINT `forum_threads_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `forum_threads_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `forum_threads_ibfk_3` FOREIGN KEY (`solution_message_id`) REFERENCES `messages` (`id`) ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `message_reactions`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `message_reactions`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `message_reactions` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`message_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`emoji` varchar(50) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `message_id` (`message_id`,`user_id`,`emoji`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `message_reactions_ibfk_1` FOREIGN KEY (`message_id`) REFERENCES `messages` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `message_reactions_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `messages`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `messages`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `messages` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`content` text NOT NULL,
|
|
`attachment_url` varchar(255) DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),
|
|
`metadata` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`metadata`)),
|
|
`is_pinned` tinyint(1) DEFAULT 0,
|
|
`thread_id` int(11) DEFAULT NULL,
|
|
`rss_guid` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
KEY `user_id` (`user_id`),
|
|
KEY `fk_thread` (`thread_id`),
|
|
KEY `idx_rss_guid` (`rss_guid`),
|
|
CONSTRAINT `fk_thread` FOREIGN KEY (`thread_id`) REFERENCES `forum_threads` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `messages_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `messages_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `roles`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `roles`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `roles` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`server_id` int(11) NOT NULL,
|
|
`name` varchar(50) NOT NULL,
|
|
`color` varchar(7) DEFAULT '#99aab5',
|
|
`permissions` int(11) DEFAULT 0,
|
|
`position` int(11) DEFAULT 0,
|
|
`icon_url` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `server_id` (`server_id`),
|
|
CONSTRAINT `roles_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `rss_processed_items`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `rss_processed_items`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `rss_processed_items` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_id` int(11) NOT NULL,
|
|
`rss_guid` varchar(255) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_channel_guid` (`channel_id`,`rss_guid`),
|
|
CONSTRAINT `rss_processed_items_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `rule_acceptances`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `rule_acceptances`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `rule_acceptances` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`user_id` int(11) NOT NULL,
|
|
`channel_id` int(11) NOT NULL,
|
|
`accepted_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `user_channel` (`user_id`,`channel_id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `rule_acceptances_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `rule_acceptances_ibfk_2` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `server_members`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `server_members`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `server_members` (
|
|
`server_id` int(11) NOT NULL,
|
|
`user_id` int(11) NOT NULL,
|
|
`joined_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`server_id`,`user_id`),
|
|
KEY `user_id` (`user_id`),
|
|
CONSTRAINT `server_members_ibfk_1` FOREIGN KEY (`server_id`) REFERENCES `servers` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `server_members_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `servers`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `servers`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `servers` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(100) NOT NULL,
|
|
`owner_id` int(11) NOT NULL,
|
|
`icon_url` varchar(255) DEFAULT NULL,
|
|
`invite_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`theme_color` varchar(20) DEFAULT NULL,
|
|
`invite_code_expires_at` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `invite_code` (`invite_code`),
|
|
UNIQUE KEY `invite_code_2` (`invite_code`),
|
|
KEY `owner_id` (`owner_id`),
|
|
CONSTRAINT `servers_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `thread_tags`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `thread_tags`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `thread_tags` (
|
|
`thread_id` int(11) NOT NULL,
|
|
`tag_id` int(11) NOT NULL,
|
|
PRIMARY KEY (`thread_id`,`tag_id`),
|
|
KEY `tag_id` (`tag_id`),
|
|
CONSTRAINT `thread_tags_ibfk_1` FOREIGN KEY (`thread_id`) REFERENCES `forum_threads` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `thread_tags_ibfk_2` FOREIGN KEY (`tag_id`) REFERENCES `forum_tags` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `user_roles`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `user_roles`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `user_roles` (
|
|
`user_id` int(11) NOT NULL,
|
|
`role_id` int(11) NOT NULL,
|
|
PRIMARY KEY (`user_id`,`role_id`),
|
|
KEY `role_id` (`role_id`),
|
|
CONSTRAINT `user_roles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `user_roles_ibfk_2` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `users`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `users`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `users` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`username` varchar(50) NOT NULL,
|
|
`display_name` varchar(50) DEFAULT NULL,
|
|
`email` varchar(100) NOT NULL,
|
|
`password_hash` varchar(255) NOT NULL,
|
|
`avatar_url` varchar(255) DEFAULT NULL,
|
|
`status` varchar(20) DEFAULT 'offline',
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`is_bot` tinyint(1) DEFAULT 0,
|
|
`bot_token` varchar(64) DEFAULT NULL,
|
|
`dnd_mode` tinyint(1) DEFAULT 0,
|
|
`theme` varchar(20) DEFAULT 'dark',
|
|
`sound_notifications` tinyint(1) DEFAULT 0,
|
|
`is_admin` tinyint(1) DEFAULT 0,
|
|
`voice_mode` enum('vox','ptt') DEFAULT 'vox',
|
|
`voice_ptt_key` varchar(20) DEFAULT 'v',
|
|
`voice_vox_threshold` float DEFAULT 0.1,
|
|
`voice_echo_cancellation` tinyint(1) DEFAULT 1,
|
|
`voice_noise_suppression` tinyint(1) DEFAULT 1,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `username` (`username`),
|
|
UNIQUE KEY `email` (`email`),
|
|
UNIQUE KEY `bot_token` (`bot_token`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `voice_sessions`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `voice_sessions`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `voice_sessions` (
|
|
`user_id` int(11) NOT NULL,
|
|
`channel_id` int(11) NOT NULL,
|
|
`joined_at` timestamp NULL DEFAULT current_timestamp(),
|
|
`last_seen` bigint(20) DEFAULT 0,
|
|
`peer_id` varchar(16) NOT NULL,
|
|
`name` varchar(50) DEFAULT NULL,
|
|
`is_muted` tinyint(1) DEFAULT 0,
|
|
`is_deafened` tinyint(1) DEFAULT 0,
|
|
PRIMARY KEY (`user_id`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `voice_sessions_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT `voice_sessions_ibfk_2` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `voice_signals`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `voice_signals`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `voice_signals` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`room_id` varchar(50) NOT NULL,
|
|
`from_peer_id` varchar(16) NOT NULL,
|
|
`to_peer_id` varchar(16) NOT NULL,
|
|
`data` text NOT NULL,
|
|
`created_at_ms` bigint(20) NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `to_peer_id` (`to_peer_id`),
|
|
KEY `room_id` (`room_id`),
|
|
KEY `created_at` (`created_at_ms`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `voice_whispers`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `voice_whispers`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `voice_whispers` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`user_id` int(11) NOT NULL,
|
|
`target_type` enum('user','channel') NOT NULL,
|
|
`target_id` int(11) NOT NULL,
|
|
`whisper_key` varchar(50) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `user_id` (`user_id`,`whisper_key`),
|
|
CONSTRAINT `voice_whispers_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
--
|
|
-- Table structure for table `webhooks`
|
|
--
|
|
|
|
DROP TABLE IF EXISTS `webhooks`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8mb4 */;
|
|
CREATE TABLE `webhooks` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(100) NOT NULL,
|
|
`token` varchar(64) NOT NULL,
|
|
`channel_id` int(11) NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT current_timestamp(),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `token` (`token`),
|
|
KEY `channel_id` (`channel_id`),
|
|
CONSTRAINT `webhooks_ibfk_1` FOREIGN KEY (`channel_id`) REFERENCES `channels` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
|
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
|
|
-- Seed initial data
|
|
INSERT INTO `users` (id, username, display_name, email, password_hash, status, is_admin) VALUES
|
|
(1, 'System', 'System Bot', 'system@local', '$2y$10$4DDos6MKhMCbsvw1Yquuj.o0NwWCRlbgy85QCmGIJV6GlL8QC4cWW', 'online', 1);
|
|
|
|
INSERT INTO `servers` (id, name, owner_id, invite_code) VALUES
|
|
(1, 'General Community', 1, 'GEN-123'),
|
|
(2, 'Flatlogic Devs', 1, 'DEV-456');
|
|
|
|
INSERT INTO `server_members` (server_id, user_id) VALUES (1, 1), (2, 1);
|
|
|
|
INSERT INTO `channels` (id, server_id, name, type) VALUES
|
|
(1, 1, 'general', 'chat'),
|
|
(2, 1, 'random', 'chat'),
|
|
(3, 1, 'Voice General', 'voice'),
|
|
(4, 2, 'announcements', 'chat'),
|
|
(5, 2, 'coding-help', 'chat');
|
|
|
|
-- Dump completed on 2026-02-19 16:49:04
|