Files
Aurora.3/SQL/migrate-2017/V001__Initial_schema.sql
Werner a69a7316ab Condense Database Migrations (#17103)
* 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>
2023-08-19 22:32:13 +02:00

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;