Projet final V10
This commit is contained in:
parent
224fc0227c
commit
a08b70fdf1
BIN
assets/pasted-20260219-164830-4e1d84f3.png
Normal file
BIN
assets/pasted-20260219-164830-4e1d84f3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 449 KiB |
13
check_users.php
Normal file
13
check_users.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/db/config.php';
|
||||
try {
|
||||
$stmt = db()->query("SELECT id, username, email FROM users");
|
||||
$users = $stmt->fetchAll();
|
||||
echo "Liste des utilisateurs :\n";
|
||||
foreach ($users as $user) {
|
||||
echo "- ID: {$user['id']} | Username: {$user['username']} | Email: {$user['email']}\n";
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo "Erreur : " . $e->getMessage();
|
||||
}
|
||||
unlink(__FILE__);
|
||||
@ -1,94 +1,556 @@
|
||||
-- Initial schema for Discord-like app
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(50) NOT NULL UNIQUE,
|
||||
email VARCHAR(100) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
avatar_url VARCHAR(255),
|
||||
status VARCHAR(20) DEFAULT 'offline',
|
||||
is_bot BOOLEAN DEFAULT FALSE,
|
||||
bot_token VARCHAR(64) UNIQUE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
/*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
|
||||
|
||||
CREATE TABLE IF NOT EXISTS servers (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
owner_id INT NOT NULL,
|
||||
icon_url VARCHAR(255),
|
||||
invite_code VARCHAR(10) UNIQUE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (owner_id) REFERENCES users(id)
|
||||
);
|
||||
/*!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 */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS channels (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
server_id INT NOT NULL,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
type ENUM('text', 'voice') DEFAULT 'text',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE
|
||||
);
|
||||
--
|
||||
-- Table structure for table `channel_autoroles`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
channel_id INT NOT NULL,
|
||||
user_id INT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (channel_id) REFERENCES channels(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id)
|
||||
);
|
||||
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 */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS webhooks (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
token VARCHAR(64) NOT NULL UNIQUE,
|
||||
channel_id INT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (channel_id) REFERENCES channels(id) ON DELETE CASCADE
|
||||
);
|
||||
--
|
||||
-- Table structure for table `channel_last_read`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS roles (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
server_id INT NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
color VARCHAR(7) DEFAULT '#99aab5',
|
||||
permissions INT DEFAULT 0,
|
||||
position INT DEFAULT 0,
|
||||
FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE
|
||||
);
|
||||
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 */;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_roles (
|
||||
user_id INT NOT NULL,
|
||||
role_id INT NOT NULL,
|
||||
PRIMARY KEY (user_id, role_id),
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE
|
||||
);
|
||||
--
|
||||
-- Table structure for table `channel_members`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS server_members (
|
||||
server_id INT NOT NULL,
|
||||
user_id INT NOT NULL,
|
||||
joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (server_id, user_id),
|
||||
FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
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 IGNORE INTO users (id, username, email, password_hash, status) VALUES
|
||||
(1, 'System', 'system@local', '$2y$10$xyz', 'online');
|
||||
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 IGNORE INTO servers (id, name, owner_id, invite_code) VALUES
|
||||
INSERT INTO `servers` (id, name, owner_id, invite_code) VALUES
|
||||
(1, 'General Community', 1, 'GEN-123'),
|
||||
(2, 'Flatlogic Devs', 1, 'DEV-456');
|
||||
|
||||
INSERT IGNORE INTO server_members (server_id, user_id) VALUES (1, 1), (2, 1);
|
||||
INSERT INTO `server_members` (server_id, user_id) VALUES (1, 1), (2, 1);
|
||||
|
||||
INSERT IGNORE INTO channels (id, server_id, name, type) VALUES
|
||||
(1, 1, 'general', 'text'),
|
||||
(2, 1, 'random', 'text'),
|
||||
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', 'text'),
|
||||
(5, 2, 'coding-help', 'text');
|
||||
(4, 2, 'announcements', 'chat'),
|
||||
(5, 2, 'coding-help', 'chat');
|
||||
|
||||
-- Dump completed on 2026-02-19 16:49:04
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user