initial commit of plugin just filling the tables with data for the playtime display

This commit is contained in:
jenz
2026-08-20 17:12:46 +02:00
parent e731a1f3fc
commit e1a93bd0dd
2 changed files with 383 additions and 0 deletions
@@ -0,0 +1,83 @@
CREATE TABLE `playtime_display_map_history` (
`map_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`map_name` varchar(64) NOT NULL,
`map_start_dt` datetime NOT NULL DEFAULT current_timestamp(),
`map_end_dt` datetime DEFAULT NULL,
PRIMARY KEY (`map_id`),
KEY `idx_map_name` (`map_name`,`map_start_dt`),
KEY `idx_start` (`map_start_dt`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `playtime_display_map_vote_events` (
`vote_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`map_id` bigint(20) unsigned DEFAULT NULL,
`vote_time` datetime NOT NULL DEFAULT current_timestamp(),
`current_map` varchar(64) DEFAULT NULL,
`result` varchar(64) DEFAULT NULL,
PRIMARY KEY (`vote_id`),
KEY `idx_map_id` (`map_id`),
CONSTRAINT `fk_voteevent_map` FOREIGN KEY (`map_id`) REFERENCES `playtime_display_map_history` (`map_id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `playtime_display_players` (
`steamid` varchar(64) NOT NULL,
`current_name` varchar(128) NOT NULL,
`current_country` char(2) DEFAULT NULL,
`first_seen` datetime NOT NULL DEFAULT current_timestamp(),
`last_seen` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`steamid`),
KEY `idx_country` (`current_country`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `playtime_display_name_history` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`steamid` varchar(64) NOT NULL,
`player_name` varchar(128) NOT NULL,
`first_seen` datetime NOT NULL DEFAULT current_timestamp(),
`last_seen` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `uq_steamid_name` (`steamid`,`player_name`),
KEY `idx_player_name` (`player_name`),
CONSTRAINT `fk_namehist_steamid` FOREIGN KEY (`steamid`) REFERENCES `playtime_display_players` (`steamid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=197 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `playtime_display_map_vote_choices` (
`vote_id` int(10) unsigned NOT NULL,
`steamid` varchar(64) NOT NULL,
`vote_choice` varchar(64) NOT NULL,
`vote_weight` int(11) NOT NULL DEFAULT 1,
PRIMARY KEY (`vote_id`,`steamid`),
KEY `idx_vote_choice` (`vote_choice`),
KEY `fk_votechoice_steamid` (`steamid`),
CONSTRAINT `fk_votechoice_event` FOREIGN KEY (`vote_id`) REFERENCES `playtime_display_map_vote_events` (`vote_id`) ON DELETE CASCADE,
CONSTRAINT `fk_votechoice_steamid` FOREIGN KEY (`steamid`) REFERENCES `playtime_display_players` (`steamid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- unloze_playtimestats.playtime_display_sessions definition
CREATE TABLE `playtime_display_sessions` (
`session_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`steamid` varchar(64) NOT NULL,
`country_code` char(2) DEFAULT NULL,
`player_name` varchar(128) NOT NULL,
`session_start_playtime_minutes` bigint(20) NOT NULL,
`session_end_playtime_minutes` bigint(20) DEFAULT NULL,
`session_start_dt` datetime NOT NULL DEFAULT current_timestamp(),
`session_end_dt` datetime DEFAULT NULL,
`session_active_minutes` bigint(20) GENERATED ALWAYS AS (`session_end_playtime_minutes` - `session_start_playtime_minutes`) STORED,
`session_start_dow` tinyint(4) GENERATED ALWAYS AS (dayofweek(`session_start_dt`)) STORED,
`session_start_tod` time GENERATED ALWAYS AS (cast(`session_start_dt` as time)) STORED,
PRIMARY KEY (`session_id`),
KEY `idx_steamid_start` (`steamid`,`session_start_dt`),
KEY `idx_interval` (`session_start_dt`,`session_end_dt`),
KEY `idx_dow_tod` (`session_start_dow`,`session_start_tod`),
KEY `idx_country` (`country_code`),
CONSTRAINT `fk_session_steamid` FOREIGN KEY (`steamid`) REFERENCES `playtime_display_players` (`steamid`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=215 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;