mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-20 23:21:10 +00:00
* Condense Database Migrations Condenses the Database Migrations into a new initial schema. Also adds some instructions to the Database Readme for existing setups. * Update readme/delete changed migrations since pr creation * Reworks a bit how the previous migrations are handled and updates the instructions accordingly * Expand the readme with baseline/migrate --------- Co-authored-by: Werner <Arrow768@users.noreply.github.com>
859 lines
28 KiB
SQL
859 lines
28 KiB
SQL
-- ------------------------------------------------------------
|
|
-- These are BOREALIS' tables. Some are actively used ingame,
|
|
-- hence why they're bundled in here.
|
|
-- ------------------------------------------------------------
|
|
|
|
--
|
|
-- BOREALIS' table for bans
|
|
--
|
|
|
|
CREATE TABLE `discord_bans` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`user_id` varchar(45) NOT NULL,
|
|
`user_name` varchar(45) NOT NULL,
|
|
`server_id` varchar(45) NOT NULL,
|
|
`ban_type` varchar(45) NOT NULL,
|
|
`ban_duration` int(11) NOT NULL DEFAULT '-1',
|
|
`ban_reason` longtext,
|
|
`ban_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`expiration_time` datetime NOT NULL,
|
|
`admin_id` varchar(45) DEFAULT NULL,
|
|
`admin_name` varchar(45) DEFAULT 'BOREALIS',
|
|
`ban_lifted` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- BOREALIS' table for channels
|
|
--
|
|
|
|
CREATE TABLE `discord_channels` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`channel_group` varchar(32) NOT NULL,
|
|
`channel_id` text NOT NULL,
|
|
`pin_flag` int(11) NOT NULL DEFAULT '0',
|
|
`server_id` varchar(45) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- BOREALIS' table for logs
|
|
--
|
|
|
|
CREATE TABLE `discord_log` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`action_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`action` text NOT NULL,
|
|
`admin_id` varchar(45) DEFAULT NULL,
|
|
`user_id` varchar(45) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- BOREALIS' table for strikes
|
|
--
|
|
|
|
CREATE TABLE `discord_strikes` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`user_id` varchar(45) NOT NULL,
|
|
`user_name` varchar(45) NOT NULL,
|
|
`action_type` varchar(45) NOT NULL DEFAULT 'WARNING',
|
|
`strike_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`admin_id` varchar(45) NOT NULL,
|
|
`admin_name` varchar(45) NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- BOREALIS' table for subscriptions
|
|
--
|
|
|
|
CREATE TABLE `discord_subscribers` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`user_id` varchar(45) NOT NULL,
|
|
`once` tinyint(1) NOT NULL DEFAULT '0',
|
|
`subscribed_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`expired_at` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
-- ------------------------------------------------------------
|
|
-- SS13 tables begin here. All of these are actively used.
|
|
-- Note that some are used by the WebInterface, but if so,
|
|
-- it's done in support of ingame systems.
|
|
-- ------------------------------------------------------------
|
|
|
|
--
|
|
-- Table for admin rank alterations
|
|
--
|
|
|
|
CREATE TABLE `ss13_admin_log` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`datetime` datetime NOT NULL,
|
|
`adminckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`adminip` varchar(18) CHARACTER SET latin1 NOT NULL,
|
|
`log` text CHARACTER SET latin1 NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for the server-supported API/world.Topic commands
|
|
--
|
|
|
|
CREATE TABLE `ss13_api_commands` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`command` varchar(50) COLLATE utf8_bin NOT NULL,
|
|
`description` varchar(255) COLLATE utf8_bin DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `UNIQUE command` (`command`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
|
|
--
|
|
-- Table for auth tokens for world.Topic
|
|
--
|
|
|
|
CREATE TABLE `ss13_api_tokens` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`token` varchar(100) COLLATE utf8_bin NOT NULL,
|
|
`ip` varchar(16) COLLATE utf8_bin DEFAULT NULL,
|
|
`creator` varchar(50) COLLATE utf8_bin NOT NULL,
|
|
`description` varchar(100) COLLATE utf8_bin NOT NULL,
|
|
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
|
|
--
|
|
-- Table to describe which tokens can access what commands for world.Topic
|
|
--
|
|
|
|
CREATE TABLE `ss13_api_token_command` (
|
|
`command_id` int(11) NOT NULL,
|
|
`token_id` int(11) NOT NULL,
|
|
PRIMARY KEY (`command_id`,`token_id`),
|
|
KEY `token_id` (`token_id`),
|
|
CONSTRAINT `function_id` FOREIGN KEY (`command_id`) REFERENCES `ss13_api_commands` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT `token_id` FOREIGN KEY (`token_id`) REFERENCES `ss13_api_tokens` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
|
|
--
|
|
-- Table for bans issued
|
|
--
|
|
|
|
CREATE TABLE `ss13_ban` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`bantime` datetime NOT NULL,
|
|
`serverip` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`bantype` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`reason` text CHARACTER SET latin1 NOT NULL,
|
|
`job` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`duration` int(11) NOT NULL,
|
|
`rounds` int(11) DEFAULT NULL,
|
|
`expiration_time` datetime NOT NULL,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`computerid` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`ip` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`a_ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`a_computerid` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`a_ip` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`who` text CHARACTER SET latin1 NOT NULL,
|
|
`adminwho` text CHARACTER SET latin1 NOT NULL,
|
|
`edits` text CHARACTER SET latin1,
|
|
`unbanned` tinyint(1) DEFAULT NULL,
|
|
`unbanned_datetime` datetime DEFAULT NULL,
|
|
`unbanned_reason` text,
|
|
`unbanned_ckey` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`unbanned_computerid` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`unbanned_ip` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ban-mirroring, used to catch ban dodgers
|
|
--
|
|
|
|
CREATE TABLE `ss13_ban_mirrors` (
|
|
`ban_mirror_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`ban_id` int(10) unsigned NOT NULL,
|
|
`player_ckey` varchar(32) NOT NULL,
|
|
`ban_mirror_ip` varchar(32) NOT NULL,
|
|
`ban_mirror_computerid` varchar(32) NOT NULL,
|
|
`ban_mirror_datetime` datetime NOT NULL,
|
|
PRIMARY KEY (`ban_mirror_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for housing CCIA notices to be sent mid-round
|
|
--
|
|
|
|
CREATE TABLE `ss13_ccia_general_notice_list` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`message` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for player information
|
|
--
|
|
|
|
CREATE TABLE `ss13_player` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`firstseen` datetime NOT NULL,
|
|
`lastseen` datetime NOT NULL,
|
|
`ip` varchar(18) CHARACTER SET latin1 NOT NULL,
|
|
`computerid` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`lastadminrank` varchar(32) CHARACTER SET latin1 NOT NULL DEFAULT 'Player',
|
|
`whitelist_status` int(11) unsigned NOT NULL DEFAULT '0',
|
|
`migration_status` tinyint(1) DEFAULT '0',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `ckey` (`ckey`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for linking requests between the Web-Interface and game server
|
|
--
|
|
|
|
CREATE TABLE `ss13_player_linking` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`forum_id` int(11) NOT NULL,
|
|
`forum_username_short` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`forum_username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`player_ckey` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`status` enum('new','confirmed','rejected','linked') COLLATE utf8_unicode_ci NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for player personal-AI preferences
|
|
--
|
|
|
|
CREATE TABLE `ss13_player_pai` (
|
|
`ckey` varchar(32) NOT NULL,
|
|
`name` varchar(50) DEFAULT NULL,
|
|
`description` text,
|
|
`role` text,
|
|
`comments` text,
|
|
PRIMARY KEY (`ckey`),
|
|
CONSTRAINT `player_pai_fk_ckey` FOREIGN KEY (`ckey`) REFERENCES `ss13_player` (`ckey`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for general player preferences
|
|
--
|
|
|
|
CREATE TABLE `ss13_player_preferences` (
|
|
`ckey` varchar(32) NOT NULL,
|
|
`ooccolor` text,
|
|
`lastchangelog` text,
|
|
`UI_style` text,
|
|
`current_character` int(11) DEFAULT '0',
|
|
`toggles` int(11) DEFAULT '0',
|
|
`UI_style_color` text,
|
|
`UI_style_alpha` int(11) DEFAULT '255',
|
|
`asfx_togs` int(11) DEFAULT '0',
|
|
`lastmotd` text,
|
|
`lastmemo` text,
|
|
`language_prefixes` text,
|
|
PRIMARY KEY (`ckey`),
|
|
CONSTRAINT `player_preferences_fk_ckey` FOREIGN KEY (`ckey`) REFERENCES `ss13_player` (`ckey`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for holding admin ranks
|
|
--
|
|
|
|
CREATE TABLE `ss13_admin` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`rank` varchar(32) CHARACTER SET latin1 NOT NULL DEFAULT 'Administrator',
|
|
`level` int(2) NOT NULL DEFAULT '0',
|
|
`flags` int(16) NOT NULL DEFAULT '0',
|
|
`discord_id` varchar(45) NOT NULL DEFAULT '',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `UNIQUE` (`ckey`),
|
|
CONSTRAINT `ckey` FOREIGN KEY (`ckey`) REFERENCES `ss13_player` (`ckey`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for initial character data
|
|
--
|
|
|
|
CREATE TABLE `ss13_characters` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`ckey` varchar(32) NOT NULL,
|
|
`name` varchar(128) DEFAULT NULL,
|
|
`metadata` varchar(512) DEFAULT NULL,
|
|
`be_special_role` text,
|
|
`gender` varchar(32) DEFAULT NULL,
|
|
`age` int(11) DEFAULT NULL,
|
|
`species` varchar(32) DEFAULT NULL,
|
|
`language` varchar(50) DEFAULT NULL,
|
|
`hair_colour` varchar(7) DEFAULT NULL,
|
|
`facial_colour` varchar(7) DEFAULT NULL,
|
|
`skin_tone` int(11) DEFAULT NULL,
|
|
`skin_colour` varchar(7) DEFAULT NULL,
|
|
`hair_style` varchar(32) DEFAULT NULL,
|
|
`facial_style` varchar(32) DEFAULT NULL,
|
|
`eyes_colour` varchar(7) DEFAULT NULL,
|
|
`underwear` varchar(32) DEFAULT NULL,
|
|
`undershirt` varchar(32) DEFAULT NULL,
|
|
`socks` varchar(32) DEFAULT NULL,
|
|
`backbag` int(11) DEFAULT NULL,
|
|
`b_type` varchar(32) DEFAULT NULL,
|
|
`spawnpoint` varchar(32) DEFAULT NULL,
|
|
`jobs` text,
|
|
`alternate_option` tinyint(1) DEFAULT NULL,
|
|
`alternate_titles` text,
|
|
`disabilities` int(11) DEFAULT '0',
|
|
`skills` text,
|
|
`skill_specialization` text,
|
|
`home_system` text,
|
|
`citizenship` text,
|
|
`faction` text,
|
|
`religion` text,
|
|
`nt_relation` text,
|
|
`uplink_location` text,
|
|
`organs_data` text,
|
|
`organs_robotic` text,
|
|
`gear` text,
|
|
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `ss13_characters_ckey` (`ckey`),
|
|
KEY `ss13_characteres_name` (`name`),
|
|
CONSTRAINT `ss13_characters_fk_ckey` FOREIGN KEY (`ckey`) REFERENCES `ss13_player` (`ckey`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for character flavour text
|
|
--
|
|
|
|
CREATE TABLE `ss13_characters_flavour` (
|
|
`char_id` int(11) NOT NULL,
|
|
`records_employment` text,
|
|
`records_medical` text,
|
|
`records_security` text,
|
|
`records_exploit` text,
|
|
`records_ccia` text,
|
|
`flavour_general` text,
|
|
`flavour_head` text,
|
|
`flavour_face` text,
|
|
`flavour_eyes` text,
|
|
`flavour_torso` text,
|
|
`flavour_arms` text,
|
|
`flavour_hands` text,
|
|
`flavour_legs` text,
|
|
`flavour_feet` text,
|
|
`robot_default` text,
|
|
`robot_standard` text,
|
|
`robot_engineering` text,
|
|
`robot_construction` text,
|
|
`robot_medical` text,
|
|
`robot_rescue` text,
|
|
`robot_miner` text,
|
|
`robot_custodial` text,
|
|
`robot_service` text,
|
|
`robot_clerical` text,
|
|
`robot_security` text,
|
|
`robot_research` text,
|
|
PRIMARY KEY (`char_id`),
|
|
CONSTRAINT `ss13_flavour_fk_char_id` FOREIGN KEY (`char_id`) REFERENCES `ss13_characters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for housing IC criminal records
|
|
--
|
|
|
|
CREATE TABLE `ss13_character_incidents` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`char_id` int(11) NOT NULL,
|
|
`UID` varchar(32) COLLATE utf8_bin NOT NULL,
|
|
`datetime` varchar(50) COLLATE utf8_bin NOT NULL,
|
|
`notes` text COLLATE utf8_bin NOT NULL,
|
|
`charges` text COLLATE utf8_bin NOT NULL,
|
|
`evidence` text COLLATE utf8_bin NOT NULL,
|
|
`arbiters` text COLLATE utf8_bin NOT NULL,
|
|
`brig_sentence` int(11) NOT NULL DEFAULT '0',
|
|
`fine` int(11) NOT NULL DEFAULT '0',
|
|
`felony` int(11) NOT NULL DEFAULT '0',
|
|
`created_by` varchar(50) COLLATE utf8_bin DEFAULT NULL,
|
|
`deleted_by` varchar(50) COLLATE utf8_bin DEFAULT NULL,
|
|
`game_id` varchar(50) COLLATE utf8_bin NOT NULL,
|
|
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `UID_char_id` (`char_id`,`UID`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
|
|
|
--
|
|
-- Table for logging which characters have joined rounds when
|
|
--
|
|
|
|
CREATE TABLE `ss13_characters_log` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`char_id` int(11) NOT NULL,
|
|
`game_id` varchar(50) NOT NULL,
|
|
`datetime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`job_name` varchar(32) DEFAULT NULL,
|
|
`special_role` varchar(32) DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `ss13_charlog_fk_char_id` (`char_id`),
|
|
CONSTRAINT `ss13_charlog_fk_char_id` FOREIGN KEY (`char_id`) REFERENCES `ss13_characters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for CCIA actions taken against characters
|
|
--
|
|
|
|
CREATE TABLE `ss13_ccia_actions` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`title` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`type` enum('injunction','suspension','warning','other') COLLATE utf8_unicode_ci NOT NULL,
|
|
`issuedby` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`details` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`expires_at` date DEFAULT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Bridge table between `ss13_ccia_actions` and `ss13_characters`
|
|
--
|
|
|
|
CREATE TABLE `ss13_ccia_action_char` (
|
|
`action_id` int(10) unsigned NOT NULL,
|
|
`char_id` int(11) NOT NULL,
|
|
PRIMARY KEY (`action_id`,`char_id`),
|
|
KEY `ccia_action_char_char_id_foreign` (`char_id`),
|
|
CONSTRAINT `ccia_action_char_action_id_foreign` FOREIGN KEY (`action_id`) REFERENCES `ss13_ccia_actions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT `ccia_action_char_char_id_foreign` FOREIGN KEY (`char_id`) REFERENCES `ss13_characters` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for logging player connections
|
|
--
|
|
|
|
CREATE TABLE `ss13_connection_log` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`ckey` varchar(32) NOT NULL,
|
|
`datetime` datetime NOT NULL,
|
|
`serverip` varchar(32) NOT NULL,
|
|
`ip` varchar(18) NOT NULL,
|
|
`computerid` varchar(32) NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for antag contest participants
|
|
--
|
|
|
|
CREATE TABLE `ss13_contest_participants` (
|
|
`player_ckey` varchar(32) NOT NULL,
|
|
`character_id` int(10) unsigned NOT NULL,
|
|
`contest_faction` enum('INDEP','SLF','BIS','ASI','PSIS','HSH','TCD') NOT NULL DEFAULT 'INDEP'
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for antag contenst reports
|
|
--
|
|
|
|
CREATE TABLE `ss13_contest_reports` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`player_ckey` varchar(32) NOT NULL,
|
|
`character_id` int(10) unsigned DEFAULT NULL,
|
|
`character_faction` enum('INDEP','SLF','BIS','ASI','PSIS','HSH','TCD') NOT NULL DEFAULT 'INDEP',
|
|
`objective_type` text NOT NULL,
|
|
`objective_side` enum('pro_synth','anti_synth') NOT NULL,
|
|
`objective_outcome` tinyint(1) DEFAULT '0',
|
|
`objective_datetime` datetime NOT NULL,
|
|
`duplicate` int(1) unsigned DEFAULT '0',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for death statistics
|
|
--
|
|
|
|
CREATE TABLE `ss13_death` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`pod` text CHARACTER SET latin1 NOT NULL COMMENT 'Place of death',
|
|
`coord` text CHARACTER SET latin1 NOT NULL COMMENT 'X, Y, Z POD',
|
|
`tod` datetime NOT NULL COMMENT 'Time of death',
|
|
`job` text CHARACTER SET latin1 NOT NULL,
|
|
`special` text CHARACTER SET latin1 NOT NULL,
|
|
`name` text CHARACTER SET latin1 NOT NULL,
|
|
`byondkey` text CHARACTER SET latin1 NOT NULL,
|
|
`laname` text CHARACTER SET latin1 NOT NULL COMMENT 'Last attacker name',
|
|
`lakey` text CHARACTER SET latin1 NOT NULL COMMENT 'Last attacker key',
|
|
`gender` text CHARACTER SET latin1 NOT NULL,
|
|
`bruteloss` int(11) NOT NULL,
|
|
`brainloss` int(11) NOT NULL,
|
|
`fireloss` int(11) NOT NULL,
|
|
`oxyloss` int(11) NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for housing station directives
|
|
--
|
|
|
|
CREATE TABLE `ss13_directives` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`name` varchar(64) CHARACTER SET latin1 NOT NULL,
|
|
`data` text CHARACTER SET latin1 NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for round statistics
|
|
--
|
|
|
|
CREATE TABLE `ss13_feedback` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`time` datetime NOT NULL,
|
|
`game_id` varchar(32) NOT NULL,
|
|
`var_name` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`var_value` int(16) DEFAULT NULL,
|
|
`details` text CHARACTER SET latin1,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame forms
|
|
--
|
|
|
|
CREATE TABLE `ss13_forms` (
|
|
`form_id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`id` varchar(4) CHARACTER SET latin1 NOT NULL,
|
|
`name` varchar(50) CHARACTER SET latin1 NOT NULL,
|
|
`department` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`data` text CHARACTER SET latin1 NOT NULL,
|
|
`info` text CHARACTER SET latin1,
|
|
PRIMARY KEY (`form_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for tracking IPC implants
|
|
--
|
|
|
|
CREATE TABLE `ss13_ipc_tracking` (
|
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
`player_ckey` varchar(32) NOT NULL,
|
|
`character_name` varchar(255) NOT NULL,
|
|
`tag_status` tinyint(1) NOT NULL DEFAULT '0',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for the ingame library
|
|
--
|
|
|
|
CREATE TABLE `ss13_library` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`author` text CHARACTER SET latin1 NOT NULL,
|
|
`title` text CHARACTER SET latin1 NOT NULL,
|
|
`content` text CHARACTER SET latin1 NOT NULL,
|
|
`category` text CHARACTER SET latin1 NOT NULL,
|
|
`uploadtime` datetime NOT NULL,
|
|
`uploader` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for player notes
|
|
--
|
|
|
|
CREATE TABLE `ss13_notes` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`adddate` datetime NOT NULL,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`ip` varchar(18) CHARACTER SET latin1 DEFAULT NULL,
|
|
`computerid` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`a_ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`content` text CHARACTER SET latin1 NOT NULL,
|
|
`visible` tinyint(1) NOT NULL DEFAULT '1',
|
|
`edited` tinyint(1) NOT NULL DEFAULT '0',
|
|
`lasteditor` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`lasteditdate` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame poll options
|
|
--
|
|
|
|
CREATE TABLE `ss13_poll_option` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`pollid` int(11) NOT NULL,
|
|
`text` varchar(255) CHARACTER SET latin1 NOT NULL,
|
|
`percentagecalc` tinyint(1) NOT NULL DEFAULT '1',
|
|
`minval` int(3) DEFAULT NULL,
|
|
`maxval` int(3) DEFAULT NULL,
|
|
`descmin` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`descmid` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`descmax` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame poll questions
|
|
--
|
|
|
|
CREATE TABLE `ss13_poll_question` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`polltype` varchar(16) CHARACTER SET latin1 NOT NULL DEFAULT 'OPTION',
|
|
`starttime` datetime NOT NULL,
|
|
`endtime` datetime NOT NULL,
|
|
`question` varchar(255) CHARACTER SET latin1 NOT NULL,
|
|
`multiplechoiceoptions` int(11) DEFAULT NULL,
|
|
`adminonly` tinyint(1) DEFAULT '0',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame poll text/freeform replies
|
|
--
|
|
|
|
CREATE TABLE `ss13_poll_textreply` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`datetime` datetime NOT NULL,
|
|
`pollid` int(11) NOT NULL,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`ip` varchar(18) CHARACTER SET latin1 NOT NULL,
|
|
`replytext` text CHARACTER SET latin1 NOT NULL,
|
|
`adminrank` varchar(32) CHARACTER SET latin1 NOT NULL DEFAULT 'Player',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame poll votes
|
|
--
|
|
|
|
CREATE TABLE `ss13_poll_vote` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`datetime` datetime NOT NULL,
|
|
`pollid` int(11) NOT NULL,
|
|
`optionid` int(11) NOT NULL,
|
|
`ckey` varchar(255) CHARACTER SET latin1 NOT NULL,
|
|
`ip` varchar(16) CHARACTER SET latin1 NOT NULL,
|
|
`adminrank` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`rating` int(2) DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for tracking ingame population counts
|
|
--
|
|
|
|
CREATE TABLE `ss13_population` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`playercount` int(11) DEFAULT NULL,
|
|
`admincount` int(11) DEFAULT NULL,
|
|
`time` datetime NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for player privacy preferences
|
|
--
|
|
|
|
CREATE TABLE `ss13_privacy` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`datetime` datetime NOT NULL,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`option` varchar(128) CHARACTER SET latin1 NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for ingame santa clause event
|
|
--
|
|
|
|
CREATE TABLE `ss13_santa` (
|
|
`character_name` varchar(32) NOT NULL,
|
|
`participation_status` tinyint(1) NOT NULL DEFAULT '1',
|
|
`is_assigned` tinyint(1) NOT NULL DEFAULT '0',
|
|
`mark_name` varchar(32) DEFAULT NULL,
|
|
`character_gender` varchar(32) NOT NULL,
|
|
`character_species` varchar(32) NOT NULL,
|
|
`character_job` varchar(32) NOT NULL,
|
|
`character_like` mediumtext NOT NULL,
|
|
`gift_assigned` varchar(255) DEFAULT NULL,
|
|
PRIMARY KEY (`character_name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for syndicate contracts
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts` (
|
|
`contract_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`contractee_id` int(11) NOT NULL,
|
|
`contractee_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`status` enum('new','open','mod-nok','completed','closed','reopened','canceled') COLLATE utf8_unicode_ci NOT NULL,
|
|
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`description` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`reward_credits` int(11) DEFAULT NULL,
|
|
`reward_other` text COLLATE utf8_unicode_ci,
|
|
`completer_id` int(11) DEFAULT NULL,
|
|
`completer_name` text COLLATE utf8_unicode_ci,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`contract_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for comments to syndicate contracts
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts_comments` (
|
|
`comment_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`contract_id` int(11) unsigned NOT NULL,
|
|
`commentor_id` int(11) unsigned NOT NULL,
|
|
`commentor_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`comment` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`image_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`type` enum('mod-author','mod-ooc','ic','ic-comprep','ic-failrep','ic-cancel','ooc') COLLATE utf8_unicode_ci NOT NULL,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
`report_status` enum('waiting-approval','accepted','rejected') COLLATE utf8_unicode_ci DEFAULT NULL,
|
|
PRIMARY KEY (`comment_id`),
|
|
KEY `contract_id` (`contract_id`),
|
|
CONSTRAINT `contract_id` FOREIGN KEY (`contract_id`) REFERENCES `ss13_syndie_contracts` (`contract_id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Bridge table between contract comment data and player table
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts_comments_completers` (
|
|
`user_id` int(11) NOT NULL,
|
|
`comment_id` int(10) unsigned NOT NULL,
|
|
PRIMARY KEY (`user_id`,`comment_id`),
|
|
KEY `comment_id` (`comment_id`),
|
|
CONSTRAINT `comment_id` FOREIGN KEY (`comment_id`) REFERENCES `ss13_syndie_contracts_comments` (`comment_id`) ON DELETE CASCADE,
|
|
CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `ss13_player` (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for individual contract objectives
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts_objectives` (
|
|
`objective_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`contract_id` int(11) NOT NULL,
|
|
`status` enum('open','closed','deleted') COLLATE utf8_unicode_ci NOT NULL,
|
|
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`description` text COLLATE utf8_unicode_ci NOT NULL,
|
|
`reward_credits` int(11) DEFAULT NULL,
|
|
`reward_credits_update` int(11) DEFAULT NULL,
|
|
`reward_other` text COLLATE utf8_unicode_ci,
|
|
`reward_other_update` text COLLATE utf8_unicode_ci,
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
`deleted_at` timestamp NULL DEFAULT NULL,
|
|
PRIMARY KEY (`objective_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Bridge table between contract objectives and comments
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts_comments_objectives` (
|
|
`objective_id` int(10) unsigned NOT NULL,
|
|
`comment_id` int(10) unsigned NOT NULL,
|
|
PRIMARY KEY (`objective_id`,`comment_id`),
|
|
KEY `comments_comment_id` (`comment_id`),
|
|
CONSTRAINT `comments_comment_id` FOREIGN KEY (`comment_id`) REFERENCES `ss13_syndie_contracts_comments` (`comment_id`) ON DELETE CASCADE,
|
|
CONSTRAINT `objectives_objective_id` FOREIGN KEY (`objective_id`) REFERENCES `ss13_syndie_contracts_objectives` (`objective_id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for contract subscribers
|
|
--
|
|
|
|
CREATE TABLE `ss13_syndie_contracts_subscribers` (
|
|
`contract_id` int(10) unsigned NOT NULL,
|
|
`user_id` int(10) unsigned NOT NULL,
|
|
PRIMARY KEY (`contract_id`,`user_id`),
|
|
CONSTRAINT `syndie_contracts_subscribers_contract_id_foreign` FOREIGN KEY (`contract_id`) REFERENCES `ss13_syndie_contracts` (`contract_id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for player warnings
|
|
--
|
|
|
|
CREATE TABLE `ss13_warnings` (
|
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
|
`time` datetime NOT NULL,
|
|
`severity` tinyint(1) DEFAULT '0',
|
|
`reason` text CHARACTER SET latin1 NOT NULL,
|
|
`notes` text CHARACTER SET latin1,
|
|
`ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`computerid` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`ip` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`a_ckey` varchar(32) CHARACTER SET latin1 NOT NULL,
|
|
`a_computerid` varchar(32) DEFAULT NULL,
|
|
`a_ip` varchar(32) DEFAULT NULL,
|
|
`acknowledged` tinyint(1) DEFAULT '0',
|
|
`expired` tinyint(1) DEFAULT '0',
|
|
`visible` tinyint(1) DEFAULT '1',
|
|
`edited` tinyint(1) DEFAULT '0',
|
|
`lasteditor` varchar(32) CHARACTER SET latin1 DEFAULT NULL,
|
|
`lasteditdate` datetime DEFAULT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
--
|
|
-- Table for housing tokens for the WebInterface SSO from within the game
|
|
--
|
|
|
|
CREATE TABLE `ss13_web_sso` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`ckey` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`token` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`ip` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
|
`created_at` datetime NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
--
|
|
-- Table for logging whitelist alterations
|
|
--
|
|
|
|
CREATE TABLE `ss13_whitelist_log` (
|
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`datetime` datetime NOT NULL,
|
|
`user` varchar(32) NOT NULL,
|
|
`action_method` varchar(32) NOT NULL DEFAULT 'Game Server',
|
|
`action` mediumtext NOT NULL,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
|
|
--
|
|
-- Table for storing whitelist bitkeys
|
|
--
|
|
|
|
CREATE TABLE `ss13_whitelist_statuses` (
|
|
`flag` int(10) unsigned NOT NULL,
|
|
`status_name` varchar(32) NOT NULL,
|
|
`subspecies` tinyint(4) NOT NULL DEFAULT '1',
|
|
PRIMARY KEY (`status_name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|