-- MySQL Script generated by MySQL Workbench -- Thu Apr 17 17:43:11 2025 -- Model: New Model Version: 1.0 -- MySQL Workbench Forward Engineering SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; -- ----------------------------------------------------- -- Schema mydb -- ----------------------------------------------------- -- ----------------------------------------------------- -- Schema dbmaster -- ----------------------------------------------------- -- ----------------------------------------------------- -- Schema dbmaster -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `dbmaster` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ; USE `dbmaster` ; -- ----------------------------------------------------- -- Table `dbmaster`.`endpoints` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`endpoints` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `route` VARCHAR(255) NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE) ENGINE = InnoDB AUTO_INCREMENT = 23 DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`permissions` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`permissions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `action` ENUM('GET', 'POST', 'PUT', 'DELETE') NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, `fk_endpoint` BIGINT NOT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, INDEX `fk_permissions_endpoints1_idx` (`fk_endpoint` ASC) VISIBLE, CONSTRAINT `fk_permissions_endpoints1` FOREIGN KEY (`fk_endpoint`) REFERENCES `dbmaster`.`endpoints` (`id`)) ENGINE = InnoDB AUTO_INCREMENT = 49 DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`places` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`places` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `name` VARCHAR(45) NOT NULL, `description` VARCHAR(45) NULL DEFAULT NULL, `address` VARCHAR(255) NULL DEFAULT NULL, `latitude` DECIMAL(10,7) NOT NULL, `longitude` DECIMAL(11,7) NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`report_types` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`report_types` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `name` VARCHAR(255) NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`roles` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`roles` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `name` VARCHAR(255) NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, `name_active` VARCHAR(255) GENERATED ALWAYS AS ((case when (`deleted` is null) then `name` else NULL end)) STORED, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, UNIQUE INDEX `name_active_UNIQUE` (`name_active` ASC) VISIBLE) ENGINE = InnoDB AUTO_INCREMENT = 3 DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`roles_has_permissions` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`roles_has_permissions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `fk_role` BIGINT NOT NULL, `fk_permission` BIGINT NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id`, `fk_role`, `fk_permission`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, INDEX `fk_roles_has_permissions_permissions1_idx` (`fk_permission` ASC) VISIBLE, INDEX `fk_roles_has_permissions_roles1_idx` (`fk_role` ASC) VISIBLE, CONSTRAINT `fk_roles_has_permissions_permissions1` FOREIGN KEY (`fk_permission`) REFERENCES `dbmaster`.`permissions` (`id`), CONSTRAINT `fk_roles_has_permissions_roles1` FOREIGN KEY (`fk_role`) REFERENCES `dbmaster`.`roles` (`id`)) ENGINE = InnoDB AUTO_INCREMENT = 49 DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`users` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`users` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NULL DEFAULT NULL, `password` VARCHAR(255) NOT NULL, `uuid` VARCHAR(255) NOT NULL, `fk_role` BIGINT NOT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, `username_active` VARCHAR(255) GENERATED ALWAYS AS ((case when (`deleted` is null) then `username` else NULL end)) STORED, PRIMARY KEY (`id`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, UNIQUE INDEX `username_active_UNIQUE` (`username_active` ASC) VISIBLE, INDEX `fk_user_roles1_idx` (`fk_role` ASC) VISIBLE, CONSTRAINT `fk_role` FOREIGN KEY (`fk_role`) REFERENCES `dbmaster`.`roles` (`id`)) ENGINE = InnoDB AUTO_INCREMENT = 22 DEFAULT CHARACTER SET = utf8mb3; -- ----------------------------------------------------- -- Table `dbmaster`.`users_has_places` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `dbmaster`.`users_has_places` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `uuid` VARCHAR(255) NOT NULL, `fk_user` BIGINT NOT NULL, `fk_place` BIGINT NOT NULL, `fk_report_type` BIGINT NOT NULL, `rating` INT NOT NULL, `description` VARCHAR(255) NULL DEFAULT NULL, `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `createdBy` VARCHAR(255) NULL DEFAULT NULL, `deleted` DATETIME NULL DEFAULT NULL, `deletedBy` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`id`, `fk_user`, `fk_place`), UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE, INDEX `fk_users_has_places_places1_idx` (`fk_place` ASC) VISIBLE, INDEX `fk_users_has_places_users1_idx` (`fk_user` ASC) VISIBLE, INDEX `fk_users_has_places_report_types1_idx` (`fk_report_type` ASC) VISIBLE, CONSTRAINT `fk_users_has_places_places1` FOREIGN KEY (`fk_place`) REFERENCES `dbmaster`.`places` (`id`), CONSTRAINT `fk_users_has_places_report_types1` FOREIGN KEY (`fk_report_type`) REFERENCES `dbmaster`.`report_types` (`id`), CONSTRAINT `fk_users_has_places_users1` FOREIGN KEY (`fk_user`) REFERENCES `dbmaster`.`users` (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8mb3; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;