dj_mix_hosting_software/sql/database.sql

405 lines
22 KiB
SQL

-- --------------------------------------------------------
-- Server version: 10.11.6-MariaDB-0+deb12u1 - Debian 12
-- Server OS: debian-linux-gnu
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-- Dumping database structure for djmixhostingsoftware
DROP DATABASE IF EXISTS `djmixhostingsoftware`;
CREATE DATABASE IF NOT EXISTS `djmixhostingsoftware` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci */;
USE `djmixhostingsoftware`;
-- Dumping structure for table djmixhostingsoftware.djs
DROP TABLE IF EXISTS `djs`;
CREATE TABLE IF NOT EXISTS `djs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` longtext NOT NULL,
`bio` longtext DEFAULT NULL,
`slug` longtext NOT NULL,
`img` longtext DEFAULT NULL,
`active` tinyint(1) unsigned DEFAULT NULL,
`deceased` tinyint(1) unsigned DEFAULT NULL,
`email` varchar(300) DEFAULT NULL,
`enabled` tinyint(4) NOT NULL DEFAULT 0,
`status` tinyint(4) DEFAULT NULL,
`facebook_url` varchar(50) DEFAULT NULL,
`instagram_url` varchar(50) DEFAULT NULL,
`myspace_url` varchar(50) DEFAULT NULL,
`custom1_url` varchar(200) DEFAULT NULL,
`homepage_url` varchar(200) DEFAULT NULL,
`twitter_url` varchar(50) DEFAULT NULL,
`linktree_url` varchar(50) DEFAULT NULL,
`soundcloud_url` varchar(50) DEFAULT NULL,
`mixcloud_url` varchar(50) DEFAULT NULL,
`socials` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`socials`)),
`claimed_by` varchar(50) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`lastupdated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=903 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='The DJ database.';
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.emails
DROP TABLE IF EXISTS `emails`;
CREATE TABLE IF NOT EXISTS `emails` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`messageId` varchar(75) DEFAULT NULL,
`sender` varchar(128) DEFAULT NULL,
`recipients` text DEFAULT NULL,
`subject` text DEFAULT NULL,
`bodyText` text DEFAULT NULL,
`bodyHTML` text DEFAULT NULL,
`error` text DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `messageId` (`messageId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.errors
DROP TABLE IF EXISTS `errors`;
CREATE TABLE IF NOT EXISTS `errors` (
`id` int(6) unsigned NOT NULL AUTO_INCREMENT,
`error` varchar(255) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL,
`useragent` varchar(255) DEFAULT NULL,
`server` varchar(255) DEFAULT NULL,
`ip` varchar(255) DEFAULT NULL,
`time` varchar(255) DEFAULT NULL,
`querystring` varchar(255) DEFAULT NULL,
`requesturi` varchar(255) DEFAULT NULL,
`scriptname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9143 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.genres
DROP TABLE IF EXISTS `genres`;
CREATE TABLE IF NOT EXISTS `genres` (
`item` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id` int(11) unsigned NOT NULL,
`enabled` int(11) unsigned NOT NULL DEFAULT 1,
`count` int(11) unsigned NOT NULL DEFAULT 0,
`name` varchar(50) NOT NULL,
`slug` varchar(50) NOT NULL,
PRIMARY KEY (`item`),
UNIQUE KEY `slug` (`slug`)
) ENGINE=InnoDB AUTO_INCREMENT=236 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='The Genre Database.';
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.mix
DROP TABLE IF EXISTS `mix`;
CREATE TABLE IF NOT EXISTS `mix` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
`slug` varchar(50) NOT NULL,
`description` varchar(500) DEFAULT NULL,
`cover` varchar(150) DEFAULT NULL,
`url` varchar(200) NOT NULL,
`seconds` int(10) unsigned DEFAULT NULL,
`mediaplayer` int(11) unsigned DEFAULT NULL,
`dj1` int(11) unsigned NOT NULL,
`dj2` int(11) unsigned DEFAULT NULL,
`dj3` int(11) unsigned DEFAULT NULL,
`pending` tinyint(4) unsigned NOT NULL DEFAULT 1,
`recorded` timestamp NULL DEFAULT NULL,
`created` timestamp NULL DEFAULT current_timestamp(),
`lastupdated` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `slug` (`slug`)
) ENGINE=InnoDB AUTO_INCREMENT=1153 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.mix_file
DROP TABLE IF EXISTS `mix_file`;
CREATE TABLE IF NOT EXISTS `mix_file` (
`id` varchar(50) NOT NULL DEFAULT uuid(),
`filename` varchar(100) NOT NULL,
`seconds` int(11) unsigned NOT NULL,
`mime` varchar(50) NOT NULL,
`hash` char(50) NOT NULL,
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`lastupdated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.mix_meta
DROP TABLE IF EXISTS `mix_meta`;
CREATE TABLE IF NOT EXISTS `mix_meta` (
`meta_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`mix_id` int(11) unsigned NOT NULL,
`attribute` longtext NOT NULL,
`value` longtext NOT NULL,
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`updated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`meta_id`),
KEY `mixId` (`mix_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3987 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.plays
DROP TABLE IF EXISTS `plays`;
CREATE TABLE IF NOT EXISTS `plays` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`mix_id` int(11) unsigned NOT NULL,
`ip` varchar(100) NOT NULL,
`created` timestamp NULL DEFAULT current_timestamp(),
`updated` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5344 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci COMMENT='Implemented 2023/04/09 at 12:01 AM';
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.ratings
DROP TABLE IF EXISTS `ratings`;
CREATE TABLE IF NOT EXISTS `ratings` (
`id` char(36) NOT NULL DEFAULT uuid(),
`mixId` int(10) unsigned NOT NULL,
`guid` char(36) NOT NULL DEFAULT '0',
`rating` int(1) unsigned NOT NULL DEFAULT 5,
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`updated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `mixId_guid` (`mixId`,`guid`),
KEY `guid` (`guid`),
CONSTRAINT `guid` FOREIGN KEY (`guid`) REFERENCES `users` (`guid`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Rating` CHECK (`rating` >= 1 and `rating` <= 5)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.release
DROP TABLE IF EXISTS `release`;
CREATE TABLE IF NOT EXISTS `release` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` longtext NOT NULL,
`description` longtext DEFAULT NULL,
`cover` int(11) NOT NULL,
`lastupdated` datetime DEFAULT NULL,
`created` datetime DEFAULT NULL,
`slug` longtext DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.release_meta
DROP TABLE IF EXISTS `release_meta`;
CREATE TABLE IF NOT EXISTS `release_meta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`release_id` int(11) NOT NULL,
`mix_id` int(11) NOT NULL,
`sortorder` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.shows
DROP TABLE IF EXISTS `shows`;
CREATE TABLE IF NOT EXISTS `shows` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` longtext NOT NULL,
`description` longtext DEFAULT NULL,
`cover` longtext DEFAULT NULL,
`slug` longtext DEFAULT NULL,
`count` int(11) DEFAULT NULL,
`created` datetime DEFAULT current_timestamp(),
`lastupdated` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.stats
DROP TABLE IF EXISTS `stats`;
CREATE TABLE IF NOT EXISTS `stats` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uuid` varchar(50) NOT NULL DEFAULT uuid(),
`timestamp` timestamp NOT NULL DEFAULT current_timestamp(),
`djs` int(11) NOT NULL,
`mixes` int(11) NOT NULL,
`genres` int(11) NOT NULL,
`mixshows` int(11) NOT NULL,
`downloads` int(11) NOT NULL,
`plays` int(11) NOT NULL,
`seconds` bigint(20) NOT NULL,
PRIMARY KEY (`uuid`) USING BTREE,
KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=420 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for table djmixhostingsoftware.users
DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`guid` char(36) NOT NULL DEFAULT uuid(),
`username` varchar(25) NOT NULL,
`firstName` varchar(50) DEFAULT NULL,
`lastName` varchar(50) DEFAULT NULL,
`email` varchar(200) NOT NULL,
`emailVerified` tinyint(1) NOT NULL DEFAULT 0,
`password` varchar(255) NOT NULL,
`img` varchar(500) DEFAULT NULL,
`apiKey` varchar(64) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT current_timestamp(),
`lastupdated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`isAdmin` tinyint(1) unsigned DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `guid` (`guid`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `apiKey` (`apiKey`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
-- Data exporting was unselected.
-- Dumping structure for trigger djmixhostingsoftware.dj_insert_trigger
DROP TRIGGER IF EXISTS `dj_insert_trigger`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `dj_insert_trigger` BEFORE INSERT ON `djs` FOR EACH ROW BEGIN
SET NEW.email = IFNULL(NULLIF(NEW.email, ''), NULL);
SET NEW.facebook_url = IFNULL(NULLIF(NEW.facebook_url, ''), NULL);
SET NEW.instagram_url = IFNULL(NULLIF(NEW.instagram_url, ''), NULL);
SET NEW.myspace_url = IFNULL(NULLIF(NEW.myspace_url, ''), NULL);
SET NEW.custom1_url = IFNULL(NULLIF(NEW.custom1_url, ''), NULL);
SET NEW.homepage_url = IFNULL(NULLIF(NEW.homepage_url, ''), NULL);
SET NEW.twitter_url = IFNULL(NULLIF(NEW.twitter_url, ''), NULL);
SET NEW.bio = IFNULL(NULLIF(NEW.bio, ''), NULL);
SET NEW.img = IFNULL(NULLIF(NEW.img, ''), NULL);
SET NEW.linktree_url = IFNULL(NULLIF(NEW.linktree_url, ''), NULL);
SET NEW.soundcloud_url = IFNULL(NULLIF(NEW.soundcloud_url, ''), NULL);
SET NEW.mixcloud_url = IFNULL(NULLIF(NEW.mixcloud_url, ''), NULL);
SET NEW.claimed_by = IFNULL(NULLIF(NEW.claimed_by, ''), NULL);
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.dj_update_trigger
DROP TRIGGER IF EXISTS `dj_update_trigger`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `dj_update_trigger` BEFORE UPDATE ON `djs` FOR EACH ROW BEGIN
SET NEW.email = IFNULL(NULLIF(NEW.email, ''), NULL);
SET NEW.facebook_url = IFNULL(NULLIF(NEW.facebook_url, ''), NULL);
SET NEW.instagram_url = IFNULL(NULLIF(NEW.instagram_url, ''), NULL);
SET NEW.myspace_url = IFNULL(NULLIF(NEW.myspace_url, ''), NULL);
SET NEW.custom1_url = IFNULL(NULLIF(NEW.custom1_url, ''), NULL);
SET NEW.homepage_url = IFNULL(NULLIF(NEW.homepage_url, ''), NULL);
SET NEW.twitter_url = IFNULL(NULLIF(NEW.twitter_url, ''), NULL);
SET NEW.linktree_url = IFNULL(NULLIF(NEW.linktree_url, ''), NULL);
SET NEW.soundcloud_url = IFNULL(NULLIF(NEW.soundcloud_url, ''), NULL);
SET NEW.mixcloud_url = IFNULL(NULLIF(NEW.mixcloud_url, ''), NULL);
SET NEW.claimed_by = IFNULL(NULLIF(NEW.claimed_by, ''), NULL);
SET NEW.bio = IFNULL(NULLIF(NEW.bio, ''), NULL);
SET NEW.img = IFNULL(NULLIF(NEW.img, ''), NULL);
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.email_change
DROP TRIGGER IF EXISTS `email_change`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER email_change
BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
IF NEW.email <> OLD.email THEN
SET NEW.emailVerified = 0;
END IF;
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.mix_before_update
DROP TRIGGER IF EXISTS `mix_before_update`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER mix_before_update
BEFORE UPDATE ON mix
FOR EACH ROW
BEGIN
IF NEW.description = '' THEN
SET NEW.description = NULL;
END IF;
IF NEW.cover = '' THEN
SET NEW.cover = NULL;
END IF;
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.mix_recorded_before_update
DROP TRIGGER IF EXISTS `mix_recorded_before_update`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER mix_recorded_before_update
BEFORE UPDATE ON mix
FOR EACH ROW
BEGIN
IF NEW.recorded = '0000-00-00 00:00:00' THEN
SET NEW.recorded = NULL;
END IF;
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.tracklist_trim_insert
DROP TRIGGER IF EXISTS `tracklist_trim_insert`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER tracklist_trim_insert
BEFORE INSERT ON mix_meta
FOR EACH ROW
BEGIN
IF NEW.attribute = 'tracklist' THEN
SET NEW.value = REGEXP_REPLACE(NEW.value, '^(\\s*(\\r\\n|\\r|\\n))+|(\\s*(\\r\\n|\\r|\\n))+$', '');
SET NEW.value = REGEXP_REPLACE(NEW.value, '(\\r\\n\\s*){2,}|(\\n\\s*){2,}', '\r\n\r\n');
END IF;
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
-- Dumping structure for trigger djmixhostingsoftware.tracklist_trim_update
DROP TRIGGER IF EXISTS `tracklist_trim_update`;
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER tracklist_trim_update
BEFORE UPDATE ON mix_meta
FOR EACH ROW
BEGIN
IF NEW.attribute = 'tracklist' THEN
SET NEW.value = REGEXP_REPLACE(NEW.value, '^(\\s*(\\r\\n|\\r|\\n))+|(\\s*(\\r\\n|\\r|\\n))+$', '');
SET NEW.value = REGEXP_REPLACE(NEW.value, '(\\r\\n\\s*){2,}|(\\n\\s*){2,}', '\r\n\r\n');
END IF;
END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;