Files

231 lines
9.6 KiB
MySQL
Raw Permalink Normal View History

2026-03-29 21:41:17 +03:00
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;