231 lines
9.6 KiB
MySQL
231 lines
9.6 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_groups` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`name` varchar(255) NOT NULL,
|
||
|
|
`label` varchar(255) DEFAULT NULL,
|
||
|
|
`discord_role_id` varchar(20) DEFAULT NULL,
|
||
|
|
`hierarchy` tinyint(3) unsigned NOT NULL DEFAULT 1,
|
||
|
|
`permissions` longtext NOT NULL,
|
||
|
|
`ace_config` longtext NOT NULL,
|
||
|
|
`clothing` longtext DEFAULT NULL,
|
||
|
|
`sprite` longtext DEFAULT NULL,
|
||
|
|
`gamertag_color` int(10) unsigned NOT NULL DEFAULT 0,
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `name` (`name`),
|
||
|
|
UNIQUE KEY `discord_role_id` (`discord_role_id`)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_group_members` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`nickname` varchar(255) DEFAULT NULL,
|
||
|
|
`group` varchar(255) NOT NULL,
|
||
|
|
`license2` varchar(255) DEFAULT NULL,
|
||
|
|
`fivem` varchar(255) DEFAULT NULL,
|
||
|
|
`discord` varchar(255) DEFAULT NULL,
|
||
|
|
`steam` varchar(255) DEFAULT NULL,
|
||
|
|
`avatar` text DEFAULT NULL,
|
||
|
|
`gender` enum('male','female') NOT NULL DEFAULT 'male',
|
||
|
|
`current_duty_start` datetime DEFAULT NULL,
|
||
|
|
`total_duty_seconds` int(10) unsigned NOT NULL DEFAULT 0,
|
||
|
|
`last_updated` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `license2` (`license2`),
|
||
|
|
UNIQUE KEY `fivem` (`fivem`),
|
||
|
|
UNIQUE KEY `discord` (`discord`),
|
||
|
|
UNIQUE KEY `steam` (`steam`),
|
||
|
|
KEY `group_name` (`group`),
|
||
|
|
CONSTRAINT `group_name` FOREIGN KEY (`group`) REFERENCES `luxu_admin_groups` (`name`) ON DELETE CASCADE ON UPDATE CASCADE
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_blips` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`label` varchar(255) NOT NULL,
|
||
|
|
`coords` longtext NOT NULL,
|
||
|
|
`display` int(10) unsigned NOT NULL,
|
||
|
|
`scale` float NOT NULL,
|
||
|
|
`shortRange` tinyint(1) NOT NULL,
|
||
|
|
`color` int(10) unsigned NOT NULL,
|
||
|
|
`sprite` int(10) unsigned NOT NULL,
|
||
|
|
`category` varchar(100) NOT NULL DEFAULT '',
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`)
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_chats` (
|
||
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`author_id` varchar(255) DEFAULT NULL,
|
||
|
|
`label` varchar(255) DEFAULT NULL,
|
||
|
|
`is_staff` tinyint(1) NOT NULL DEFAULT 0,
|
||
|
|
`is_report` tinyint(1) NOT NULL DEFAULT 0,
|
||
|
|
`is_closed` tinyint(1) NOT NULL DEFAULT 0,
|
||
|
|
`staff_restrictions` longtext DEFAULT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`claimed_by` int(10) unsigned DEFAULT NULL,
|
||
|
|
`claimed_by_name` varchar(50) DEFAULT NULL,
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `FK_luxu_admin_chats_luxu_admin_group_members` (`claimed_by`),
|
||
|
|
CONSTRAINT `FK_luxu_admin_chats_luxu_admin_group_members` FOREIGN KEY (`claimed_by`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_events` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`title` varchar(255) NOT NULL,
|
||
|
|
`description` longtext NOT NULL,
|
||
|
|
`date` datetime NOT NULL,
|
||
|
|
`author_id` varchar(255) DEFAULT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_media` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`type` enum('image','video','audio') NOT NULL,
|
||
|
|
`cdn_id` varchar(255) NOT NULL,
|
||
|
|
`url` varchar(255) NOT NULL,
|
||
|
|
`expiration` datetime DEFAULT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`author_id` varchar(255) DEFAULT NULL,
|
||
|
|
PRIMARY KEY (`id`)
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_player_notes` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`player_id` varchar(255) NOT NULL,
|
||
|
|
`text` text NOT NULL,
|
||
|
|
`staff_name` varchar(255) NOT NULL,
|
||
|
|
`staff_id` int(10) unsigned NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `player_id` (`player_id`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_props` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`name` varchar(255) NOT NULL DEFAULT '',
|
||
|
|
`model` varchar(255) NOT NULL,
|
||
|
|
`x` float NOT NULL DEFAULT 0,
|
||
|
|
`y` float NOT NULL DEFAULT 0,
|
||
|
|
`z` float NOT NULL DEFAULT 0,
|
||
|
|
`rx` float NOT NULL DEFAULT 0,
|
||
|
|
`ry` float NOT NULL DEFAULT 0,
|
||
|
|
`rz` float NOT NULL DEFAULT 0,
|
||
|
|
`plate` varchar(8) NOT NULL DEFAULT '',
|
||
|
|
`metadata` longtext NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`type` enum('vehicle','object','ped') NOT NULL,
|
||
|
|
PRIMARY KEY (`id`)
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_jail` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`char_id` varchar(255) NOT NULL,
|
||
|
|
`char_name` varchar(255) NOT NULL,
|
||
|
|
`staff_id` int(10) unsigned NOT NULL,
|
||
|
|
`staff_name` varchar(255) NOT NULL,
|
||
|
|
`reason` text NOT NULL DEFAULT '',
|
||
|
|
`cell_name` varchar(255) DEFAULT NULL,
|
||
|
|
`last_coords` longtext NOT NULL,
|
||
|
|
`expires_at` datetime NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `char_id` (`char_id`),
|
||
|
|
KEY `staff_id` (`staff_id`)
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_zones` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`name` varchar(255) NOT NULL,
|
||
|
|
`points` longtext NOT NULL,
|
||
|
|
`height` int(10) unsigned NOT NULL DEFAULT 0,
|
||
|
|
`metadata` longtext NOT NULL,
|
||
|
|
`rgba` longtext NOT NULL,
|
||
|
|
`debug` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||
|
|
`customHandler` varchar(255) DEFAULT NULL,
|
||
|
|
PRIMARY KEY (`id`)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_bans` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`player_name` varchar(255) NOT NULL,
|
||
|
|
`player_id` varchar(255) NOT NULL,
|
||
|
|
`identifiers` longtext NOT NULL,
|
||
|
|
`tokens` longtext NOT NULL,
|
||
|
|
`reason` varchar(255) NOT NULL,
|
||
|
|
`expires_at` datetime NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`staff_id` int(10) unsigned DEFAULT NULL,
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `player_id` (`player_id`),
|
||
|
|
KEY `FK_luxu_admin_bans_luxu_admin_group_members` (`staff_id`),
|
||
|
|
CONSTRAINT `FK_luxu_admin_bans_luxu_admin_group_members` FOREIGN KEY (`staff_id`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_chat_messages` (
|
||
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`chat_id` int(11) unsigned NOT NULL,
|
||
|
|
`author_id` varchar(255) NOT NULL,
|
||
|
|
`author_name` varchar(255) NOT NULL,
|
||
|
|
`message` text NOT NULL,
|
||
|
|
`attachments` longtext DEFAULT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `idx_chat_messages_chat_id` (`chat_id`),
|
||
|
|
CONSTRAINT `fk_chat_messages_chat` FOREIGN KEY (`chat_id`) REFERENCES `luxu_admin_chats` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_warnings` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`player_name` varchar(255) NOT NULL,
|
||
|
|
`player_id` varchar(255) NOT NULL,
|
||
|
|
`staff_id` int(10) unsigned DEFAULT NULL,
|
||
|
|
`reason` varchar(255) NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `player_id` (`player_id`),
|
||
|
|
KEY `staff_id` (`staff_id`),
|
||
|
|
CONSTRAINT `FK_luxu_admin_warnings_luxu_admin_group_members` FOREIGN KEY (`staff_id`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_duty_sessions` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`staff_id` int(10) unsigned NOT NULL,
|
||
|
|
`start_time` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`end_time` datetime DEFAULT NULL,
|
||
|
|
`duration_seconds` int(10) unsigned DEFAULT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `idx_staff_active_sessions` (`staff_id`,`end_time`,`start_time` DESC),
|
||
|
|
KEY `idx_staff_start_time` (`staff_id`,`start_time` DESC),
|
||
|
|
KEY `idx_end_time_start_time` (`end_time`,`start_time`),
|
||
|
|
KEY `idx_staff_duration` (`staff_id`,`duration_seconds`),
|
||
|
|
CONSTRAINT `fk_duty_sessions_staff` FOREIGN KEY (`staff_id`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_duty_daily_stats` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`staff_id` int(10) unsigned NOT NULL,
|
||
|
|
`date` date NOT NULL,
|
||
|
|
`total_seconds` int(10) unsigned NOT NULL DEFAULT 0,
|
||
|
|
`session_count` int(10) unsigned NOT NULL DEFAULT 0,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
UNIQUE KEY `uk_staff_date` (`staff_id`,`date`),
|
||
|
|
KEY `idx_date` (`date`),
|
||
|
|
KEY `idx_staff_date_totals` (`staff_id`,`date`,`total_seconds`),
|
||
|
|
KEY `idx_date_staff_totals` (`date`,`staff_id`,`total_seconds` DESC),
|
||
|
|
CONSTRAINT `fk_duty_daily_stats_staff` FOREIGN KEY (`staff_id`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS `luxu_admin_staff_logs` (
|
||
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||
|
|
`staff_id` int(10) unsigned NOT NULL,
|
||
|
|
`staff_name` varchar(255) NOT NULL,
|
||
|
|
`text` text NOT NULL,
|
||
|
|
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||
|
|
PRIMARY KEY (`id`),
|
||
|
|
KEY `idx_staff_created` (`staff_id`, `created_at` DESC),
|
||
|
|
KEY `idx_created` (`created_at` DESC),
|
||
|
|
CONSTRAINT `fk_staff_logs_staff` FOREIGN KEY (`staff_id`) REFERENCES `luxu_admin_group_members` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|