feat(SQL): Adding alert groups and privacy groups

This commit is contained in:
Josepablo Cruz
2026-04-01 14:59:24 -06:00
parent bd3fddbbc2
commit b73cdaa5ce
5 changed files with 446 additions and 52 deletions

Binary file not shown.

View File

@@ -2,20 +2,46 @@
--
USE `u947463964_etaviaporte` ;
INSERT INTO `roles` (`name`, `description`) VALUES ('owner', 'Owner of the company');
INSERT INTO `roles` (`name`, `description`) VALUES ('manager', 'Manager of the company');
INSERT INTO `roles` (`name`, `description`) VALUES ('driver', 'Driver user type');
INSERT INTO `roles` (`name`, `description`) VALUES ('staff', 'Member of the staff');
INSERT INTO `roles` (`name`, `description`) VALUES ('warehouse', 'Observer type of member');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAConsole','console','ETA logistics console for Carriers and Shippers');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETADriver','driver','ETA driver application');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAObserverClient','client','ETA observer console for clients');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAObserverWarehouse','warehouse','ETA observer console for warehouse');
INSERT INTO `permissions` (`name`, `description`) VALUES ('owner', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('manager', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('driver', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('staff', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('warehouse', 'Compatibility with Legacy while refactor in progress');
-- Roles for ETAConsole application (1)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'owner', '(ETAConsole): Owner of the company');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'manager', '(ETAConsole): Manager of the company');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'driver', '(ETAConsole): Driver user type');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'staff', '(ETAConsole): Member of the staff');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'warehouse', '(ETAConsole): Observer type of member');
-- Roles for ETADriver application (2)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (2,'driver', '(ETADriver): Driver user type');
-- Roles for ETAObserverClient application (3)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (3,'client', '(ETAObserverClient): Client user type');
-- Roles for ETAObserverWarehouse application (4)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (4,'warehouse', '(ETAObserverWarehouse):Warehouse user type');
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (1,1);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (2,2);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (3,3);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (4,4);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (5,5);
-- Permissions for ETAConsole application (1)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'owner', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'manager', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'driver', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'staff', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'warehouse', '(ETAConsole): Compatibility with Legacy while refactor in progress');
-- Permissions for ETADriver application (2)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (2,'driver', '(ETADriver): Compatibility with Legacy while refactor in progress');
-- Permissions for ETAObserverClient application (3)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (3,'client', '(ETAObserverClient): Compatibility with Legacy while refactor in progress');
-- Permissions for ETAObserverWarehouse application (4)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (4,'warehouse', '(ETAObserverWarehouse): Compatibility with Legacy while refactor in progress');
-- Role-Permissions link for ETAConsole application (1)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,1,1);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,2,2);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,3,3);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,4,4);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,5,5);
-- Role-Permissions link for ETADriver application (2)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (2,6,6);
-- Role-Permissions link for ETAObserverClient application (3)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (3,7,7);
-- Role-Permissions link for ETAObserverWarehouse application (4)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (4,8,8);

View File

@@ -1,5 +1,5 @@
-- MySQL Script generated by MySQL Workbench
-- Wed 01 Apr 2026 01:34:28 PM CST
-- Wed 01 Apr 2026 02:54:57 PM CST
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
@@ -54,17 +54,40 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`auth_identities` (
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`applications`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`applications` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(512) NOT NULL,
`slug` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `slug_UNIQUE` (`slug` ASC) VISIBLE,
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`roles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`application_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
UNIQUE INDEX `name_UNIQUE` (`application_id` ASC, `name` ASC) VISIBLE,
INDEX `fk_roles_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_roles_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -73,10 +96,17 @@ ENGINE = InnoDB;
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`permissions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`application_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
UNIQUE INDEX `name_UNIQUE` (`application_id` ASC, `name` ASC) VISIBLE,
INDEX `fk_permissions_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_permissions_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -87,10 +117,12 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`role_permissions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`role_id` INT UNSIGNED NOT NULL,
`permission_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_role_permissions_roles1_idx` (`role_id` ASC) VISIBLE,
INDEX `fk_role_permissions_permissions1_idx` (`permission_id` ASC) VISIBLE,
UNIQUE INDEX `role_id_UNIQUE` (`role_id` ASC, `permission_id` ASC) VISIBLE,
INDEX `fk_role_permissions_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_role_permissions_roles1`
FOREIGN KEY (`role_id`)
REFERENCES `u947463964_etaviaporte`.`roles` (`id`)
@@ -100,6 +132,11 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`role_permissions` (
FOREIGN KEY (`permission_id`)
REFERENCES `u947463964_etaviaporte`.`permissions` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_role_permissions_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -111,12 +148,14 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`role_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`expires_at` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `fk_user_roles_users1_idx` (`user_id` ASC) VISIBLE,
INDEX `fk_user_roles_roles1_idx` (`role_id` ASC) VISIBLE,
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC, `role_id` ASC) VISIBLE,
INDEX `fk_user_roles_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_user_roles_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
@@ -126,6 +165,11 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_roles` (
FOREIGN KEY (`role_id`)
REFERENCES `u947463964_etaviaporte`.`roles` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_roles_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -179,7 +223,6 @@ ENGINE = InnoDB;
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`companies` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`owner_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`privacy_enabled` TINYINT NOT NULL DEFAULT 0,
@@ -187,13 +230,7 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`companies` (
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`disabled` TINYINT NOT NULL DEFAULT 0 COMMENT 'This field allows blocking publications based on business rules',
`disabled_at` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `owner_id_UNIQUE` (`owner_id` ASC) VISIBLE,
CONSTRAINT `fk_companies_users1`
FOREIGN KEY (`owner_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
PRIMARY KEY (`id`))
ENGINE = InnoDB;
@@ -616,6 +653,140 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`load_templates` (
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`user_applications`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_applications` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC, `application_id` ASC) VISIBLE,
INDEX `fk_user_applications_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_user_applications_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_applications_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`company_users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`company_users` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`company_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC) VISIBLE,
INDEX `fk_company_users_companies1_idx` (`company_id` ASC) VISIBLE,
CONSTRAINT `fk_company_users_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_company_users_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`privacy_groups`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`privacy_groups` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`company_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(128) NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `company_id_UNIQUE` (`company_id` ASC, `name` ASC) VISIBLE,
CONSTRAINT `fk_privacy_groups_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`privacy_group_companies`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`privacy_group_companies` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`company_id` INT UNSIGNED NOT NULL,
`group_id` INT UNSIGNED NOT NULL,
`allowed_company_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `group_id_UNIQUE` (`group_id` ASC, `allowed_company_id` ASC) VISIBLE,
INDEX `fk_privacy_companies_companies1_idx` (`company_id` ASC) VISIBLE,
INDEX `fk_privacy_companies_companies2_idx` (`allowed_company_id` ASC) VISIBLE,
CONSTRAINT `fk_privacy_companies_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_privacy_companies_companies2`
FOREIGN KEY (`allowed_company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_privacy_companies_privacy_groups1`
FOREIGN KEY (`group_id`)
REFERENCES `u947463964_etaviaporte`.`privacy_groups` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`loads_alert_emails`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`loads_alert_emails` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`load_id` INT UNSIGNED NOT NULL,
`email` VARCHAR(512) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_loads_alert_emails_loads1_idx` (`load_id` ASC) VISIBLE,
UNIQUE INDEX `load_id_UNIQUE` (`load_id` ASC, `email` ASC) VISIBLE,
CONSTRAINT `fk_loads_alert_emails_loads1`
FOREIGN KEY (`load_id`)
REFERENCES `u947463964_etaviaporte`.`loads` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`warehouse_alert_emails`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`warehouse_alert_emails` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`warehouse_id` INT UNSIGNED NOT NULL,
`email` VARCHAR(512) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `warehouse_id_UNIQUE` (`warehouse_id` ASC, `email` ASC) VISIBLE,
INDEX `fk_warehouse_alert_emails_locations1_idx` (`warehouse_id` ASC) VISIBLE,
CONSTRAINT `fk_warehouse_alert_emails_locations1`
FOREIGN KEY (`warehouse_id`)
REFERENCES `u947463964_etaviaporte`.`locations` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

View File

@@ -1,5 +1,5 @@
-- MySQL Script generated by MySQL Workbench
-- Wed 01 Apr 2026 01:34:28 PM CST
-- Wed 01 Apr 2026 02:54:57 PM CST
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
@@ -54,17 +54,40 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`auth_identities` (
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`applications`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`applications` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(512) NOT NULL,
`slug` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `slug_UNIQUE` (`slug` ASC) VISIBLE,
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`roles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`application_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
UNIQUE INDEX `name_UNIQUE` (`application_id` ASC, `name` ASC) VISIBLE,
INDEX `fk_roles_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_roles_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -73,10 +96,17 @@ ENGINE = InnoDB;
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`permissions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`application_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
UNIQUE INDEX `name_UNIQUE` (`application_id` ASC, `name` ASC) VISIBLE,
INDEX `fk_permissions_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_permissions_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -87,10 +117,12 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`role_permissions` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`role_id` INT UNSIGNED NOT NULL,
`permission_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_role_permissions_roles1_idx` (`role_id` ASC) VISIBLE,
INDEX `fk_role_permissions_permissions1_idx` (`permission_id` ASC) VISIBLE,
UNIQUE INDEX `role_id_UNIQUE` (`role_id` ASC, `permission_id` ASC) VISIBLE,
INDEX `fk_role_permissions_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_role_permissions_roles1`
FOREIGN KEY (`role_id`)
REFERENCES `u947463964_etaviaporte`.`roles` (`id`)
@@ -100,6 +132,11 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`role_permissions` (
FOREIGN KEY (`permission_id`)
REFERENCES `u947463964_etaviaporte`.`permissions` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_role_permissions_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -111,12 +148,14 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_roles` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`role_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`expires_at` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `fk_user_roles_users1_idx` (`user_id` ASC) VISIBLE,
INDEX `fk_user_roles_roles1_idx` (`role_id` ASC) VISIBLE,
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC, `role_id` ASC) VISIBLE,
INDEX `fk_user_roles_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_user_roles_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
@@ -126,6 +165,11 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_roles` (
FOREIGN KEY (`role_id`)
REFERENCES `u947463964_etaviaporte`.`roles` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_roles_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
@@ -179,7 +223,6 @@ ENGINE = InnoDB;
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`companies` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`owner_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(512) NOT NULL,
`description` TEXT NULL,
`privacy_enabled` TINYINT NOT NULL DEFAULT 0,
@@ -187,13 +230,7 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`companies` (
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`disabled` TINYINT NOT NULL DEFAULT 0 COMMENT 'This field allows blocking publications based on business rules',
`disabled_at` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `owner_id_UNIQUE` (`owner_id` ASC) VISIBLE,
CONSTRAINT `fk_companies_users1`
FOREIGN KEY (`owner_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
PRIMARY KEY (`id`))
ENGINE = InnoDB;
@@ -616,6 +653,140 @@ CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`load_templates` (
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`user_applications`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`user_applications` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`application_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC, `application_id` ASC) VISIBLE,
INDEX `fk_user_applications_applications1_idx` (`application_id` ASC) VISIBLE,
CONSTRAINT `fk_user_applications_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_user_applications_applications1`
FOREIGN KEY (`application_id`)
REFERENCES `u947463964_etaviaporte`.`applications` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`company_users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`company_users` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`company_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `user_id_UNIQUE` (`user_id` ASC) VISIBLE,
INDEX `fk_company_users_companies1_idx` (`company_id` ASC) VISIBLE,
CONSTRAINT `fk_company_users_users1`
FOREIGN KEY (`user_id`)
REFERENCES `u947463964_etaviaporte`.`users` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_company_users_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`privacy_groups`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`privacy_groups` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`company_id` INT UNSIGNED NOT NULL,
`name` VARCHAR(128) NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `company_id_UNIQUE` (`company_id` ASC, `name` ASC) VISIBLE,
CONSTRAINT `fk_privacy_groups_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`privacy_group_companies`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`privacy_group_companies` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`company_id` INT UNSIGNED NOT NULL,
`group_id` INT UNSIGNED NOT NULL,
`allowed_company_id` INT UNSIGNED NOT NULL,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE INDEX `group_id_UNIQUE` (`group_id` ASC, `allowed_company_id` ASC) VISIBLE,
INDEX `fk_privacy_companies_companies1_idx` (`company_id` ASC) VISIBLE,
INDEX `fk_privacy_companies_companies2_idx` (`allowed_company_id` ASC) VISIBLE,
CONSTRAINT `fk_privacy_companies_companies1`
FOREIGN KEY (`company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_privacy_companies_companies2`
FOREIGN KEY (`allowed_company_id`)
REFERENCES `u947463964_etaviaporte`.`companies` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `fk_privacy_companies_privacy_groups1`
FOREIGN KEY (`group_id`)
REFERENCES `u947463964_etaviaporte`.`privacy_groups` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`loads_alert_emails`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`loads_alert_emails` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`load_id` INT UNSIGNED NOT NULL,
`email` VARCHAR(512) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_loads_alert_emails_loads1_idx` (`load_id` ASC) VISIBLE,
UNIQUE INDEX `load_id_UNIQUE` (`load_id` ASC, `email` ASC) VISIBLE,
CONSTRAINT `fk_loads_alert_emails_loads1`
FOREIGN KEY (`load_id`)
REFERENCES `u947463964_etaviaporte`.`loads` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `u947463964_etaviaporte`.`warehouse_alert_emails`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `u947463964_etaviaporte`.`warehouse_alert_emails` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`warehouse_id` INT UNSIGNED NOT NULL,
`email` VARCHAR(512) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `warehouse_id_UNIQUE` (`warehouse_id` ASC, `email` ASC) VISIBLE,
INDEX `fk_warehouse_alert_emails_locations1_idx` (`warehouse_id` ASC) VISIBLE,
CONSTRAINT `fk_warehouse_alert_emails_locations1`
FOREIGN KEY (`warehouse_id`)
REFERENCES `u947463964_etaviaporte`.`locations` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

View File

@@ -2,20 +2,46 @@
--
USE `u947463964_etaviaporte` ;
INSERT INTO `roles` (`name`, `description`) VALUES ('owner', 'Owner of the company');
INSERT INTO `roles` (`name`, `description`) VALUES ('manager', 'Manager of the company');
INSERT INTO `roles` (`name`, `description`) VALUES ('driver', 'Driver user type');
INSERT INTO `roles` (`name`, `description`) VALUES ('staff', 'Member of the staff');
INSERT INTO `roles` (`name`, `description`) VALUES ('warehouse', 'Observer type of member');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAConsole','console','ETA logistics console for Carriers and Shippers');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETADriver','driver','ETA driver application');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAObserverClient','client','ETA observer console for clients');
INSERT INTO `applications` (`name`, `slug`, `description`) VALUES ('ETAObserverWarehouse','warehouse','ETA observer console for warehouse');
INSERT INTO `permissions` (`name`, `description`) VALUES ('owner', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('manager', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('driver', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('staff', 'Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`name`, `description`) VALUES ('warehouse', 'Compatibility with Legacy while refactor in progress');
-- Roles for ETAConsole application (1)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'owner', '(ETAConsole): Owner of the company');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'manager', '(ETAConsole): Manager of the company');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'driver', '(ETAConsole): Driver user type');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'staff', '(ETAConsole): Member of the staff');
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (1,'warehouse', '(ETAConsole): Observer type of member');
-- Roles for ETADriver application (2)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (2,'driver', '(ETADriver): Driver user type');
-- Roles for ETAObserverClient application (3)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (3,'client', '(ETAObserverClient): Client user type');
-- Roles for ETAObserverWarehouse application (4)
INSERT INTO `roles` (`application_id`,`name`, `description`) VALUES (4,'warehouse', '(ETAObserverWarehouse):Warehouse user type');
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (1,1);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (2,2);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (3,3);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (4,4);
INSERT INTO `role_permissions` (`role_id`, `permission_id`) VALUES (5,5);
-- Permissions for ETAConsole application (1)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'owner', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'manager', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'driver', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'staff', '(ETAConsole): Compatibility with Legacy while refactor in progress');
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (1,'warehouse', '(ETAConsole): Compatibility with Legacy while refactor in progress');
-- Permissions for ETADriver application (2)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (2,'driver', '(ETADriver): Compatibility with Legacy while refactor in progress');
-- Permissions for ETAObserverClient application (3)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (3,'client', '(ETAObserverClient): Compatibility with Legacy while refactor in progress');
-- Permissions for ETAObserverWarehouse application (4)
INSERT INTO `permissions` (`application_id`,`name`, `description`) VALUES (4,'warehouse', '(ETAObserverWarehouse): Compatibility with Legacy while refactor in progress');
-- Role-Permissions link for ETAConsole application (1)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,1,1);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,2,2);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,3,3);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,4,4);
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (1,5,5);
-- Role-Permissions link for ETADriver application (2)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (2,6,6);
-- Role-Permissions link for ETAObserverClient application (3)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (3,7,7);
-- Role-Permissions link for ETAObserverWarehouse application (4)
INSERT INTO `role_permissions` (`application_id`,`role_id`, `permission_id`) VALUES (4,8,8);