-- CreateTable CREATE TABLE `apikeys` ( `ApiID` INTEGER NOT NULL AUTO_INCREMENT, `Name` TEXT NULL, `ApiKey` TEXT NULL, `UserID` INTEGER NULL, UNIQUE INDEX `ApiKey`(`ApiKey`(255)), PRIMARY KEY (`ApiID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `beatmap_creators` ( `BeatmapID` INTEGER NOT NULL, `CreatorID` INTEGER NOT NULL, INDEX `idx_BeatmapID`(`BeatmapID`), PRIMARY KEY (`BeatmapID`, `CreatorID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `beatmap_edit_requests` ( `EditID` INTEGER NOT NULL AUTO_INCREMENT, `BeatmapID` INTEGER NULL, `SetID` INTEGER NULL, `UserID` INTEGER NOT NULL, `EditData` JSON NOT NULL, `Timestamp` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `Status` ENUM('Pending', 'Denied', 'Approved') NULL DEFAULT 'Pending', `EditorID` INTEGER NULL, PRIMARY KEY (`EditID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `beatmaps` ( `BeatmapID` MEDIUMINT UNSIGNED NOT NULL, `SetID` MEDIUMINT UNSIGNED NULL, `SetCreatorID` INTEGER NULL, `DifficultyName` VARCHAR(255) NULL, `Mode` TINYINT UNSIGNED NOT NULL DEFAULT 0, `Status` TINYINT NOT NULL DEFAULT 0, `SR` FLOAT NOT NULL DEFAULT 0, `Rating` VARCHAR(45) NULL, `ChartRank` INTEGER NULL, `ChartYearRank` INTEGER NULL, `Timestamp` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), `RatingCount` INTEGER NULL, `WeightedAvg` FLOAT NULL, `Genre` INTEGER NULL, `Lang` INTEGER NULL, `Artist` VARCHAR(255) NULL, `Title` VARCHAR(255) NULL, `DateRanked` TIMESTAMP(0) NULL, `Blacklisted` BOOLEAN NOT NULL DEFAULT false, `BlacklistReason` TEXT NULL, `controversy` DECIMAL(10, 8) NULL, INDEX `Artist`(`DifficultyName`, `Artist`, `Title`), INDEX `beatmapset_id`(`SetID`), PRIMARY KEY (`BeatmapID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `beatmapset_nominators` ( `SetID` INTEGER NULL, `NominatorID` INTEGER NULL, `Mode` INTEGER NULL, INDEX `beatmapset_nominators_SetID_index`(`SetID`), UNIQUE INDEX `beatmapset_nominators_pk`(`SetID`, `NominatorID`, `Mode`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `blacklist` ( `UserID` INTEGER NOT NULL, PRIMARY KEY (`UserID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `comments` ( `CommentID` INTEGER NOT NULL AUTO_INCREMENT, `UserID` INTEGER NOT NULL, `SetID` INTEGER NOT NULL, `Comment` TEXT NULL, `date` TIMESTAMP(0) NULL DEFAULT CURRENT_TIMESTAMP(0), PRIMARY KEY (`CommentID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `descriptor_votes` ( `VoteID` INTEGER NOT NULL AUTO_INCREMENT, `BeatmapID` INTEGER NOT NULL, `UserID` INTEGER NOT NULL, `Vote` BOOLEAN NOT NULL, `DescriptorID` INTEGER NOT NULL, INDEX `descriptor_votes_BeatmapID_index`(`BeatmapID`), UNIQUE INDEX `descriptor_votes_pk2`(`BeatmapID`, `UserID`, `DescriptorID`), PRIMARY KEY (`VoteID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `descriptors` ( `DescriptorID` INTEGER NOT NULL AUTO_INCREMENT, `Name` VARCHAR(40) NOT NULL, `ShortDescription` TEXT NULL, `ParentID` INTEGER NULL, `Usable` BOOLEAN NOT NULL DEFAULT true, UNIQUE INDEX `descriptors_pk2`(`Name`), PRIMARY KEY (`DescriptorID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `logs` ( `LogID` INTEGER NOT NULL AUTO_INCREMENT, `UserID` INTEGER NOT NULL, `LogData` JSON NULL, PRIMARY KEY (`LogID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `mappernames` ( `UserID` INTEGER NOT NULL, `Username` VARCHAR(255) NULL, PRIMARY KEY (`UserID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `rating_tags` ( `UserID` INTEGER NULL, `BeatmapID` INTEGER NULL, `Tag` VARCHAR(150) NULL, `TagID` INTEGER NOT NULL AUTO_INCREMENT, UNIQUE INDEX `rating_tags_pk`(`BeatmapID`, `UserID`, `Tag`), PRIMARY KEY (`TagID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `ratings` ( `RatingID` INTEGER NOT NULL AUTO_INCREMENT, `BeatmapID` INTEGER NOT NULL, `UserID` INTEGER NOT NULL, `Score` DECIMAL(2, 1) NULL, `date` DATETIME(0) NOT NULL, INDEX `idx_beatmapID`(`BeatmapID`), PRIMARY KEY (`RatingID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `setretrieveinfo` ( `LastRetrieval` DATETIME(0) NULL, `LastDate` DATE NULL ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `user_correlations` ( `user1_id` INTEGER NULL, `user2_id` INTEGER NULL, `correlation` FLOAT NULL, UNIQUE INDEX `user_correlations_pk`(`user1_id`, `user2_id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `user_relations` ( `UserIDFrom` INTEGER NULL, `UserIDTo` INTEGER NULL, `type` INTEGER NULL, UNIQUE INDEX `user_relations_pk`(`UserIDTo`, `UserIDFrom`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `users` ( `UserID` INTEGER NOT NULL, `Username` VARCHAR(255) NULL, `AccessToken` VARCHAR(2000) NULL, `RefreshToken` VARCHAR(2000) NULL, `banned` BOOLEAN NULL DEFAULT false, `Weight` DECIMAL(6, 4) NULL, `DoTrueRandom` BOOLEAN NOT NULL DEFAULT false, `Custom00Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom05Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom10Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom15Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom20Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom25Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom30Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom35Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom40Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom45Rating` VARCHAR(60) NOT NULL DEFAULT '', `Custom50Rating` VARCHAR(60) NOT NULL DEFAULT '', `LastAccessedSite` TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0), `HideRatings` BOOLEAN NULL DEFAULT false, PRIMARY KEY (`UserID`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;