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 = 'TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `logpro`
  DEFAULT CHARACTER SET utf8
  COLLATE utf8_unicode_ci;
USE `logpro`;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_marcas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_marcas`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_activos_marcas_usuarios` (`creador_id` ASC),
  CONSTRAINT `fk_control_activos_marcas_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_tipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_tipos`
(
  `id`                       INT(2) UNSIGNED                                               NOT NULL AUTO_INCREMENT, -- nave, camion, centro, planta
  `creacion`                 TIMESTAMP                                                     NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`               INT(3) UNSIGNED                                               NOT NULL,
  `nombre`                   VARCHAR(200)                                                  NOT NULL,
  `transporte`               ENUM ('TERRESTRE', 'MARITIMO', 'NO')                          NOT NULL DEFAULT 'NO',
  `despacha_carga`           ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `entrega_carga`            ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `emision_no_conformidades` ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `consumo_suministros`      ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `cuadro_distancias`        ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `contabilizar_visitas`     ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `seguir_stock`             ENUM ('SI', 'NO')                                             NOT NULL DEFAULT 'NO',
  `unidad_distancia`         ENUM ('KM', 'MN')                                             NULL,
  `ficha`                    ENUM ('NAVE', 'CENTRO_CULTIVO', 'PLANTA_PROCESO', 'VEHICULO') NOT NULL,
  `tipo_detalle`             TEXT                                                          NOT NULL,
  `icono`                    VARCHAR(30)                                                   NOT NULL DEFAULT 'icon-home7',
  PRIMARY KEY (`id`),
  INDEX `fk_control_unidades_tipos_usuarios` (`creador_id` ASC),
  CONSTRAINT `fk_control_unidades_tipos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_tipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_tipos`
(
  `id`         INT(4) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `padre_id`   INT(4) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(200)    NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_activos_tipos_usuarios` (`creador_id` ASC),
  INDEX `fk_control_activos_tipos_padres` (`padre_id` ASC),
  CONSTRAINT `fk_control_activos_tipos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
      ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_tipos_padres`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_activos_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_servicios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_servicios`
(
  `id`      INT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nombre`  VARCHAR(50)     NOT NULL,
  `mostrar` INT(1) UNSIGNED NOT NULL,
  PRIMARY KEY (`id`)
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_planes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_planes`
(
  `id`            INT(4) UNSIGNED                      NOT NULL AUTO_INCREMENT,
  `creacion`      TIMESTAMP                            NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`    INT(3) UNSIGNED                      NOT NULL,
  `tipo_id`       INT(3) UNSIGNED                      NOT NULL,
  `nombre`        VARCHAR(50)                          NOT NULL,
  `observaciones` TEXT                                 NULL,
  `estado`        ENUM ('HABILITADO', 'DESHABILITADO') NOT NULL DEFAULT 'HABILITADO',
  PRIMARY KEY (`id`),
  INDEX `fk_control_planes_usuarios` (`creador_id` ASC),
  INDEX `fk_control_planes_activos_tipos` (`tipo_id` ASC),
  CONSTRAINT `fk_control_planes_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_planes_activos_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_activos_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_planes_items`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_planes_items`
(
  `id`                       INT(5) UNSIGNED              NOT NULL AUTO_INCREMENT,
  `creacion`                 TIMESTAMP                    NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`               INT(3) UNSIGNED              NOT NULL,
  `plan_id`                  INT(4) UNSIGNED              NOT NULL,
  `servicio_id`              INT(3) UNSIGNED              NOT NULL,
  `descripcion`              VARCHAR(50)                  NULL,
  `primero_cantidad_horas`   INT UNSIGNED                 NULL     DEFAULT NULL,
  `primero_cantidad_dias`    INT UNSIGNED                 NULL     DEFAULT NULL,
  `intervalo_cantidad_horas` INT UNSIGNED                 NULL     DEFAULT NULL,
  `intervalo_cantidad_dias`  INT UNSIGNED                 NULL     DEFAULT NULL,
  `dias_aviso`               INT UNSIGNED                 NULL,
  `asignar_a`                ENUM ('UNIDAD', 'EXTERNO')   NOT NULL DEFAULT 'UNIDAD',
  `asociar_proyecto`         ENUM ('SI', 'NO')            NOT NULL DEFAULT 'NO',
  `tipo`                     ENUM ('GRUPO', 'INDIVIDUAL') NOT NULL DEFAULT 'INDIVIDUAL',
  PRIMARY KEY (`id`),
  INDEX `fk_planes_items_usuarios` (`creador_id` ASC),
  INDEX `fk_planes_items_planes` (`plan_id` ASC),
  INDEX `fk_planes_items_servicios` (`servicio_id` ASC),
  CONSTRAINT `fk_planes_items_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_planes_items_planes`
  FOREIGN KEY (`plan_id`)
  REFERENCES `logpro`.`control_planes` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_planes_items_servicios`
  FOREIGN KEY (`servicio_id`)
  REFERENCES `logpro`.`control_servicios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_grupos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_grupos`
(
  `id`         INT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(100)    NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_grupos_creadores` (`creador_id` ASC),
  CONSTRAINT `fk_control_grupos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades`
(
  `id`                      VARCHAR(40)                 NOT NULL,
  `creacion`                TIMESTAMP                   NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`              INT(3) UNSIGNED             NOT NULL,
  `empresa_id`              INT(3) UNSIGNED             NOT NULL,
  `tipo_id`                 INT(2) UNSIGNED             NOT NULL,
  `tipo_detalle`            VARCHAR(20)                 NOT NULL, -- Tipo de nave, tipo de centro, etc
  `grupo_id`                INT(2) UNSIGNED             NULL     DEFAULT NULL,
  `zona_id`                 INT(3) UNSIGNED             NULL,
  `barrio_id`               INT(3) UNSIGNED             NULL,
  `comuna_id`               INT(3) UNSIGNED             NULL,
  `concesion`               VARCHAR(50)                 NOT NULL,
  `nombre`                  VARCHAR(100)                NOT NULL,
  `telefono`                VARCHAR(20)                 NULL,
  `gestion_activos`         ENUM ('SI', 'NO')           NOT NULL DEFAULT 'NO',
  `operacion_grupo_id`      INT(2) UNSIGNED             NULL,
  `operacion_min_diario`    INT(2) UNSIGNED             NOT NULL DEFAULT 0,
  `operaciones_automaticas` ENUM ('SI', 'NO')           NOT NULL DEFAULT 'NO',
  `informacion_basica`      TEXT                        NULL,
  `informacion_tecnica`     TEXT                        NULL,
  `informacion_dimensiones` TEXT                        NULL,
  `velocidad_media`         DECIMAL(4, 2) UNSIGNED      NOT NULL,
  `dias_retiro`             INT(2) UNSIGNED             NULL,
  `dias_zarpe`              INT(2) UNSIGNED             NULL,
  `unidad_embarque_id`      VARCHAR(40)                 NULL,
  `asset_id`                VARCHAR(40)                 NULL,
  `notificaciones_correos`  TEXT                        NULL,
  `estado`                  ENUM ('ACTIVA', 'INACTIVA') NOT NULL DEFAULT 'ACTIVA',
  PRIMARY KEY (`id`),
  INDEX `fk_control_unidades_creadores` (`creador_id` ASC),
  INDEX `fk_control_unidades_tipos` (`tipo_id` ASC),
  INDEX `fk_control_unidades_empresas` (`empresa_id` ASC),
  INDEX `fk_control_unidades_grupos` (`grupo_id` ASC),
  INDEX `fk_control_unidades_operaciones_grupos` (`operacion_grupo_id` ASC),
  INDEX `fk_control_unidades_zonas` (`zona_id` ASC),
  INDEX `fk_control_unidades_barrios` (`barrio_id` ASC),
  INDEX `fk_control_unidades_comunas` (`comuna_id` ASC),
  INDEX `fk_control_unidades_puertos_embarque` (`unidad_embarque_id` ASC),
  CONSTRAINT `fk_control_unidades_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_unidades_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_empresas`
  FOREIGN KEY (`empresa_id`)
  REFERENCES `logpro`.`empresas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_grupos`
  FOREIGN KEY (`grupo_id`)
  REFERENCES `logpro`.`control_grupos` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_operaciones_grupos`
  FOREIGN KEY (`operacion_grupo_id`)
  REFERENCES `logpro`.`operaciones_grupos` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_zonas`
  FOREIGN KEY (`zona_id`)
  REFERENCES `logpro`.`zonas_comerciales` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_barrios`
  FOREIGN KEY (`barrio_id`)
  REFERENCES `logpro`.`barrios` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_comunas`
  FOREIGN KEY (`comuna_id`)
  REFERENCES `logpro_base`.`comunas` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_puertos_embarque`
  FOREIGN KEY (`unidad_embarque_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_explotadores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_explotadores`
(
  `unidad_id`  VARCHAR(40)                 NOT NULL,
  `empresa_id` INT(3) UNSIGNED             NOT NULL,
  `estado`     ENUM ('ACTIVA', 'INACTIVA') NOT NULL DEFAULT 'ACTIVA',
  PRIMARY KEY (`unidad_id`, `empresa_id`),
  INDEX `fk_control_unidades_explotadores_unidades` (`unidad_id` ASC),
  INDEX `fk_control_unidades_explotadores_empresas` (`empresa_id` ASC),
  CONSTRAINT `fk_control_unidades_explotadores_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_explotadores_empresas`
  FOREIGN KEY (`empresa_id`)
  REFERENCES `logpro`.`empresas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_posicionamiento`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_posicionamiento`
(
  `id`        BIGINT UNSIGNED       NOT NULL AUTO_INCREMENT,
  `creacion`  TIMESTAMP             NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `unidad_id` VARCHAR(40)           NOT NULL,
  `latitud`   DECIMAL(10,8)         NOT NULL,
  `longitud`  DECIMAL(10,8)         NOT NULL,
  `tipo`      ENUM ('GPS', 'MOVIL') NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_unidades_posicionamiento` (`unidad_id` ASC),
  CONSTRAINT `fk_control_unidades_posicionamiento`
    FOREIGN KEY (`unidad_id`)
      REFERENCES `logpro`.`control_unidades` (`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_capacidades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_capacidades`
(
  `id`                      INT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`                TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`              INT(3) UNSIGNED NOT NULL,
  `unidad_id`               VARCHAR(40)     NOT NULL,
  `area_id`                 INT(2) UNSIGNED NOT NULL,
  `valor_unidad_primaria`   INT UNSIGNED    NOT NULL,
  `valor_unidad_secundaria` INT UNSIGNED    NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_unidades_capacidades_creadores` (`creador_id` ASC),
  INDEX `fk_control_unidades_capacidades_unidades` (`unidad_id` ASC),
  INDEX `fk_control_unidades_capacidades_areas` (`area_id` ASC),
  CONSTRAINT `fk_control_unidades_capacidades_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_capacidades_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_capacidades_areas`
  FOREIGN KEY (`area_id`)
  REFERENCES `logpro`.`cargas_areas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_fotografias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_fotografias`
(
  `id`         INT(5) UNSIGNED   NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED   NOT NULL,
  `unidad_id`  VARCHAR(40)       NOT NULL,
  `principal`  ENUM ('SI', 'NO') NOT NULL DEFAULT 'NO',
  `archivo`    VARCHAR(200)      NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_unidades_fotografias_creadores` (`creador_id` ASC),
  INDEX `fk_control_unidades_fotografias_unidades` (`unidad_id` ASC),
  CONSTRAINT `fk_control_unidades_fotografias_creadores`
    FOREIGN KEY (`creador_id`)
      REFERENCES `logpro`.`sistema_usuarios` (`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidades_fotografias_unidades`
    FOREIGN KEY (`unidad_id`)
      REFERENCES `logpro`.`control_unidades` (`id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_archivos`
(
  `archivo_id` VARCHAR(40) NOT NULL,
  `unidad_id`  VARCHAR(40) NOT NULL,
  PRIMARY KEY (`archivo_id`),
  INDEX `fk_control_unidades_archivos_archivos` (`archivo_id` ASC),
  INDEX `fk_control_unidad_archivos_unidades` (`unidad_id` ASC),
  CONSTRAINT `fk_control_unidades_archivos_archivos`
  FOREIGN KEY (`archivo_id`)
  REFERENCES `logpro`.`archivos` (`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,
  CONSTRAINT `fk_control_unidad_archivos_unidades`
    FOREIGN KEY (`unidad_id`)
      REFERENCES `logpro`.`control_unidades` (`id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_unidades_distancias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_unidades_distancias`
(
  `id`                INT(3) UNSIGNED        NOT NULL AUTO_INCREMENT,
  `unidad_origen_id`  VARCHAR(40)            NOT NULL,
  `unidad_destino_id` VARCHAR(40)            NOT NULL,
  `distancia`         DECIMAL(5, 2) UNSIGNED NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_unidades_distancias_origenes` (`unidad_origen_id` ASC),
  INDEX `fk_unidades_distancias_destinos` (`unidad_destino_id` ASC),
  CONSTRAINT `fk_unidades_distancias_origenes`
  FOREIGN KEY (`unidad_origen_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_unidades_distancias_destinos`
  FOREIGN KEY (`unidad_destino_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_sistemas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_sistemas`
(
  `id`         VARCHAR(40)     NOT NULL,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `unidad_id`  VARCHAR(40)     NOT NULL,
  `padre_id`   VARCHAR(40)     NULL,
  `detalle`    VARCHAR(100)    NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_sistemas_creadores` (`creador_id` ASC),
  INDEX `fk_control_sistemas_unidades` (`unidad_id` ASC),
  INDEX `fk_control_sistemas_padres` (`padre_id` ASC),
  CONSTRAINT `fk_control_sistemas_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_sistemas_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_sistemas_padres`
  FOREIGN KEY (`padre_id`)
  REFERENCES `logpro`.`control_sistemas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos`
(
  `id`                       VARCHAR(40)                                            NOT NULL,
  `creacion`                 TIMESTAMP                                              NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`               INT(3) UNSIGNED                                        NOT NULL,
  `codigo`                   VARCHAR(20)                                            NULL     DEFAULT NULL,
  `tipo_id`                  INT(2) UNSIGNED                                        NOT NULL,
  `marca_id`                 INT(2) UNSIGNED                                        NOT NULL,
  `modelo`                   VARCHAR(100)                                           NULL     DEFAULT NULL,
  `nombre`                   VARCHAR(200)                                           NOT NULL,
  `serie`                    VARCHAR(100)                                           NULL     DEFAULT NULL,
  `datos_tecnicos`           TEXT                                                   NULL     DEFAULT NULL,
  `plan_id`                  INT(4) UNSIGNED                                        NULL     DEFAULT NULL,
  `horometro_id`             INT(3) UNSIGNED                                        NULL     DEFAULT NULL,
  `ubicacion_unidad_id`      VARCHAR(40)                                            NOT NULL,
  `ubicacion_sistema_id`     VARCHAR(40)                                            NULL,
  `condicion`                ENUM ('NUEVO', 'OPERATIVO', 'NO OPERATIVO', 'DE BAJA') NOT NULL,
  `adquisicion_fecha`        DATE                                                   NOT NULL,
  `adquisicion_costo_neto`   INT UNSIGNED                                           NULL     DEFAULT NULL,
  `adquisicion_orden_compra` VARCHAR(20)                                            NULL     DEFAULT NULL,
  `operaciones_inicio`       DATE                                                   NULL     DEFAULT NULL,
  `operaciones_termino`      DATE                                                   NULL     DEFAULT NULL,
  `critico`                  INT(1) UNSIGNED                                        NOT NULL DEFAULT '0',
  `orden`                    INT(3) UNSIGNED                                        NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_activos_creadores` (`creador_id` ASC),
  INDEX `fk_control_activos_tipos` (`tipo_id` ASC),
  INDEX `fk_control_activos_marcas` (`marca_id` ASC),
  INDEX `fk_control_activos_planes` (`plan_id` ASC),
  INDEX `fk_control_activos_horometros` (`horometro_id` ASC),
  INDEX `fk_control_activos_unidades` (`ubicacion_unidad_id` ASC),
  INDEX `fk_control_activos_sistemas` (`ubicacion_unidad_id` ASC),
  CONSTRAINT `fk_control_activos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_activos_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_marcas`
  FOREIGN KEY (`marca_id`)
  REFERENCES `logpro`.`control_activos_marcas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_planes`
  FOREIGN KEY (`plan_id`)
  REFERENCES `logpro`.`control_planes` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_horometros`
  FOREIGN KEY (`horometro_id`)
  REFERENCES `logpro`.`operaciones_horometros` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_unidades`
  FOREIGN KEY (`ubicacion_unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_sistemas`
  FOREIGN KEY (`ubicacion_sistema_id`)
  REFERENCES `logpro`.`control_sistemas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_fotografias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_fotografias`
(
  `id`         INT(5) UNSIGNED   NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED   NOT NULL,
  `activo_id`  VARCHAR(40)       NOT NULL,
  `principal`  ENUM ('SI', 'NO') NOT NULL DEFAULT 'NO',
  `archivo`    VARCHAR(200)      NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_activos_fotografias_creadores` (`creador_id` ASC),
  INDEX `fk_control_activos_fotografias_activos` (`activo_id` ASC),
  CONSTRAINT `fk_control_activos_fotografias_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_fotografias_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_archivos`
(
  `archivo_id` VARCHAR(40) NOT NULL,
  `activo_id`  VARCHAR(40) NOT NULL,
  PRIMARY KEY (`archivo_id`),
  INDEX `fk_control_activos_archivos_archivos` (`archivo_id` ASC),
  INDEX `fk_control_activos_archivos_activos` (`activo_id` ASC),
  CONSTRAINT `fk_control_activos_archivos_archivos`
  FOREIGN KEY (`archivo_id`)
  REFERENCES `logpro`.`archivos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_activos_archivos_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_movimientos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_movimientos`
(
  `id`                 INT UNSIGNED    NOT NULL AUTO_INCREMENT,
  `creacion`           TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`         INT(3) UNSIGNED NOT NULL,
  `activo_id`          VARCHAR(40)     NULL,
  `origen_unidad_id`   VARCHAR(40)     NOT NULL,
  `origen_sistema_id`  VARCHAR(40)     NULL,
  `destino_unidad_id`  VARCHAR(40)     NOT NULL,
  `destino_sistema_id` VARCHAR(40)     NULL,
  `fecha`              DATE            NOT NULL,
  `comentarios`        TEXT            NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_activos_movimientos_creadores` (`creador_id` ASC),
  INDEX `fk_activos_movimientos_activos` (`activo_id` ASC),
  INDEX `fk_activos_movimientos_unidades_origen` (`origen_unidad_id` ASC),
  INDEX `fk_activos_movimientos_sistemas_origen` (`origen_sistema_id` ASC),
  INDEX `fk_activos_movimientos_unidades_destino` (`destino_unidad_id` ASC),
  INDEX `fk_activos_movimientos_sistemas_destino` (`destino_sistema_id` ASC),

  CONSTRAINT `fk_activos_movimientos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_movimientos_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_movimientos_unidades_origen`
  FOREIGN KEY (`origen_unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_movimientos_sistemas_origen`
  FOREIGN KEY (`origen_sistema_id`)
  REFERENCES `logpro`.`control_sistemas` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_movimientos_unidades_destino`
  FOREIGN KEY (`destino_unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_movimientos_sistemas_destino`
  FOREIGN KEY (`destino_sistema_id`)
  REFERENCES `logpro`.`control_sistemas` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inventario_categorias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inventario_categorias`
(
  `id`           INT UNSIGNED    NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`   INT(3) UNSIGNED NOT NULL,
  `categoria_id` INT UNSIGNED    NULL,
  `nombre`       VARCHAR(100)    NOT NULL,
  `notificar_a`  INT(2) UNSIGNED NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inventario_categorias_creadores` (`creador_id` ASC),
  INDEX `fk_control_inventario_categorias_categorias` (`categoria_id` ASC),
  INDEX `fk_control_inventario_categorias_notificaciones` (`notificar_a` ASC),
  CONSTRAINT `fk_control_inventario_categorias_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inventario_categorias_categorias`
  FOREIGN KEY (`categoria_id`)
  REFERENCES `logpro`.`control_inventario_categorias` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inventario_categorias_notificaciones`
  FOREIGN KEY (`notificar_a`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inventario_bodegas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inventario_bodegas`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inventario_bodegas_creadores` (`creador_id` ASC),
  CONSTRAINT `fk_control_inventario_bodegas_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_inventario_articulos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inventario_articulos`
(
  `id`            INT(4) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`      TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`    INT(3) UNSIGNED NOT NULL,
  `categoria_id`  INT(3) UNSIGNED NOT NULL,
  `marca_id`      INT(2) UNSIGNED NULL,
  `nombre`        VARCHAR(100)    NOT NULL,
  `codigo`        VARCHAR(30)     NULL,
  `observaciones` VARCHAR(100)    NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_articulos_creadores` (`creador_id` ASC),
  INDEX `fk_articulos_categorias` (`categoria_id` ASC),
  INDEX `fk_articulos_marcas` (`marca_id` ASC),
  CONSTRAINT `fk_articulos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_articulos_categorias`
  FOREIGN KEY (`categoria_id`)
  REFERENCES `logpro`.`control_inventario_categorias` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_articulos_marcas`
  FOREIGN KEY (`marca_id`)
  REFERENCES `logpro`.`control_activos_marcas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inventario_stocks`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inventario_stocks`
(
  `id`            INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`      TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`    INT(3) UNSIGNED NOT NULL,
  `articulo_id`   INT(4) UNSIGNED NOT NULL,
  `bodega_id`     INT(2) UNSIGNED NOT NULL,
  `stock_bajo`    INT UNSIGNED    NOT NULL,
  `stock_critico` INT UNSIGNED    NOT NULL,
  `stock_actual`  INT             NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_stocks_creadores` (`creador_id` ASC),
  INDEX `fk_stocks_articulos` (`articulo_id` ASC),
  INDEX `fk_stocks_bodegas` (`bodega_id` ASC),
  CONSTRAINT `fk_stocks_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_stocks_articulos`
  FOREIGN KEY (`articulo_id`)
  REFERENCES `logpro`.`control_inventario_articulos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_stocks_bodegas`
  FOREIGN KEY (`bodega_id`)
  REFERENCES `logpro`.`control_inventario_bodegas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inventario_movimientos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inventario_movimientos`
(
  `id`                  INT(5) UNSIGNED                        NOT NULL AUTO_INCREMENT,
  `creacion`            TIMESTAMP                              NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`          INT(3) UNSIGNED                        NOT NULL,
  `tipo`                ENUM ('INGRESO', 'SALIDA')             NOT NULL,
  `tipo_detalle`        ENUM ('COMPRA', 'TRASPASO', 'CONSUMO') NOT NULL,
  `articulo_id`         INT(4) UNSIGNED                        NOT NULL,
  `cantidad`            INT UNSIGNED                           NOT NULL,
  `entregado_por`       INT(3) UNSIGNED                        NOT NULL,
  `entregado_fecha`     DATE                                   NOT NULL,
  `entregado_bodega_id` INT(2) UNSIGNED                        NOT NULL,
  `recibido_por`        INT(3) UNSIGNED                        NOT NULL,
  `recibido_fecha`      DATE                                   NOT NULL,
  `recibido_bodega_id`  INT(2) UNSIGNED                        NOT NULL,
  `comentarios`         VARCHAR(200)                           NULL,
  `estado`              INT(1) UNSIGNED                        NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  INDEX `fk_inventario_movimientos_creadores` (`creador_id` ASC),
  INDEX `fk_inventario_movimientos_articulos` (`articulo_id` ASC),
  INDEX `fk_inventario_movimientos_entregas_usuarios` (`entregado_por` ASC),
  INDEX `fk_inventario_movimientos_entregas_bodegas` (`entregado_bodega_id` ASC),
  INDEX `fk_inventario_movimientos_recepciones_usuarios` (`recibido_por` ASC),
  INDEX `fk_inventario_movimientos_reepciones_bodegas` (`recibido_bodega_id` ASC),
  CONSTRAINT `fk_inventario_movimientos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_inventario_movimientos_articulos`
  FOREIGN KEY (`articulo_id`)
  REFERENCES `logpro`.`control_inventario_articulos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_inventario_movimientos_entregas_usuarios`
  FOREIGN KEY (`entregado_por`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_inventario_movimientos_entregas_bodegas`
  FOREIGN KEY (`entregado_bodega_id`)
  REFERENCES `logpro`.`control_inventario_bodegas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_inventario_movimientos_recepciones_usuarios`
  FOREIGN KEY (`recibido_por`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_inventario_movimientos_recepciones_bodegas`
  FOREIGN KEY (`recibido_bodega_id`)
  REFERENCES `logpro`.`control_inventario_bodegas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_trabajos_tipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_trabajos_tipos`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `padre_id`   INT(2) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL, -- Preventivo, correctivo, predictivo,
  PRIMARY KEY (`id`),
  INDEX `fk_trabajos_tipos_usuarios` (`creador_id` ASC),
  INDEX `fk_trabajos_tipos_padres` (`padre_id` ASC),
  CONSTRAINT `fk_trabajos_tipos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_tipos_padres`
  FOREIGN KEY (`padre_id`)
  REFERENCES `logpro`.`control_trabajos_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_trabajos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_trabajos`
(
  `id`                   INT(6) UNSIGNED   NOT NULL AUTO_INCREMENT,
  `creacion`             TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`           INT(3) UNSIGNED   NOT NULL,
  `trabajo_id`           INT(6) UNSIGNED   NOT NULL,
  `activo_id`            VARCHAR(40)       NOT NULL,
  `tipo_id`              INT(2) UNSIGNED   NOT NULL,
  `servicio_id`          INT(5) UNSIGNED   NOT NULL,
  `fecha`                DATE              NOT NULL,
  `detalles`             TEXT              NOT NULL,
  `observaciones`        TEXT              NULL,
  `horometro_lectura_id` INT UNSIGNED      NULL,
  `informado_por`        INT(2) UNSIGNED   NOT NULL,
  `informado_fecha`      DATE              NOT NULL,
  `aprobado_por`         INT(2) UNSIGNED   NOT NULL,
  `aprobado_fecha`       INT(2) UNSIGNED   NOT NULL,
  `proyecto_requerido`   ENUM ('SI', 'NO') NOT NULL DEFAULT 'NO',
  `proyecto_id`          INT(4) UNSIGNED   NULL,
  `estado`               INT(1) UNSIGNED   NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  INDEX `fk_trabajos_creadores` (`creador_id` ASC),
  INDEX `fk_trabajos_trabajos` (`trabajo_id` ASC),
  INDEX `fk_trabajos_activos` (`activo_id` ASC),
  INDEX `fk_trabajos_tipos` (`tipo_id` ASC),
  INDEX `fk_trabajos_servicios` (`servicio_id` ASC),
  INDEX `fk_trabajos_horometros_lecturas` (`horometro_lectura_id` ASC),
  INDEX `fk_trabajos_proyectos` (`proyecto_id` ASC),
  CONSTRAINT `fk_trabajos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_trabajos`
  FOREIGN KEY (`trabajo_id`)
  REFERENCES `logpro`.`control_activos_trabajos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_trabajos_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_servicios`
  FOREIGN KEY (`servicio_id`)
  REFERENCES `logpro`.`control_servicios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_horometros_lecturas`
  FOREIGN KEY (`horometro_lectura_id`)
  REFERENCES `logpro`.`operaciones_horometros_lecturas` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_proyectos`
  FOREIGN KEY (`proyecto_id`)
  REFERENCES `logpro`.`proyectos` (`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_trabajos_programados`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_trabajos_programados`
(
  `id`              INT(6) UNSIGNED               NOT NULL AUTO_INCREMENT,
  `creacion`        TIMESTAMP                     NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`      INT(3) UNSIGNED               NOT NULL,
  `unidad_id`       VARCHAR(40)                   NULL,
  `activo_id`       VARCHAR(40)                   NULL,
  `plan_item_id`    INT(5) UNSIGNED               NULL,
  `servicio_id`     INT(5) UNSIGNED               NOT NULL,
  `fecha_original`  DATE                          NULL,
  `fecha_editada`   DATE                          NULL,
  `fecha_final`     DATE                          NULL,
  `horas`           INT UNSIGNED                  NULL,
  `codigo`          INT(4) UNSIGNED               NOT NULL,
  `programacion_id` INT UNSIGNED                  NULL,
  `trabajo_id`      INT UNSIGNED                  NULL,
  `programacion`    ENUM ('MANUAL', 'AUTOMATICA') NOT NULL DEFAULT 'AUTOMATICA',
  `aviso`           DATE                          NULL,
  `estado`          INT(1) UNSIGNED               NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  INDEX `fk_trabajos_programados_usuarios` (`creador_id` ASC),
  INDEX `fk_trabajos_programados_unidades` (`unidad_id` ASC),
  INDEX `fk_trabajos_programados_activos` (`activo_id` ASC),
  INDEX `fk_trabajos_programados_planes_items` (`plan_item_id` ASC),
  INDEX `fk_trabajos_programados_servicios` (`servicio_id` ASC),
  INDEX `fk_trabajos_programados_programaciones` (`programacion_id` ASC),
  INDEX `fk_trabajos_programados_trabajos` (`trabajo_id` ASC),
  INDEX `index_estado_programacion` (`estado` ASC),
  CONSTRAINT `fk_trabajos_programados_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_planes_items`
  FOREIGN KEY (`plan_item_id`)
  REFERENCES `logpro`.`control_planes_items` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_servicios`
  FOREIGN KEY (`servicio_id`)
  REFERENCES `logpro`.`control_servicios` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_programaciones`
  FOREIGN KEY (`programacion_id`)
  REFERENCES `logpro`.`control_trabajos_programados` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_trabajos_programados_trabajos`
  FOREIGN KEY (`trabajo_id`)
  REFERENCES `logpro`.`control_activos_trabajos` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_activos_trabajos_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_activos_trabajos_archivos`
(
  `id`         INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `trabajo_id` INT(6) UNSIGNED NOT NULL,
  `archivo`    VARCHAR(100)    NOT NULL,
  `nombre`     VARCHAR(100)    NOT NULL,
  `peso`       VARCHAR(20)     NOT NULL,
  `mime`       VARCHAR(20)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_activos_trabajos_archivos_creadores` (`creador_id` ASC),
  INDEX `fk_activos_trabajos_archivos_trabajos` (`trabajo_id` ASC),
  CONSTRAINT `fk_activos_trabajos_archivos_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_activos_trabajos_archivos_trabajos`
  FOREIGN KEY (`trabajo_id`)
  REFERENCES `logpro`.`control_activos_trabajos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_programaciones_mensuales`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_programaciones_mensuales`
(
  `id`             INT(5) UNSIGNED          NOT NULL AUTO_INCREMENT,
  `creacion`       TIMESTAMP                NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`     INT(3) UNSIGNED          NOT NULL,
  `unidad_id`      VARCHAR(40)              NOT NULL,
  `mes`            INT(2) UNSIGNED ZEROFILL NOT NULL,
  `year`           YEAR(4)                  NOT NULL,
  `fecha_apertura` DATE                     NOT NULL,
  `fecha_envio`    DATE                     NULL,
  `fecha_cierre`   DATE                     NULL,
  `estado`         INT(1) UNSIGNED          NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE `unique_programacion_mensual` (`unidad_id`, `mes`, `year`),
  INDEX `fk_programaciones_mensuales_usuarios` (`creador_id` ASC),
  INDEX `fk_programaciones_mensuales_unidades` (`unidad_id` ASC),
  CONSTRAINT `fk_programaciones_mensuales_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_programaciones_mensuales_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_programaciones_mensuales_trabajos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_programaciones_mensuales_trabajos`
(
  `id`                       INT(6) UNSIGNED                                            NOT NULL AUTO_INCREMENT,
  `programacion_mensual_id`  INT(5) UNSIGNED                                            NOT NULL,
  `trabajo_programado_id`    INT(10) UNSIGNED                                           NOT NULL,
  `asignado_a`               ENUM ('UNIDAD', 'EXTERNO')                                 NOT NULL DEFAULT 'UNIDAD',
  `fecha_actividad`          DATE                                                       NOT NULL,
  `fecha_servicio`           DATE                                                       NOT NULL,
  `fecha_configurada`        DATE                                                       NULL,
  `fecha_realizacion`        DATE                                                       NULL,
  `fecha_informe`            DATE                                                       NULL,
  `horas_realizacion`        INT UNSIGNED                                               NULL,
  `comentarios`              TEXT                                                       NULL,
  `estado`                   ENUM ('PENDIENTE', 'TERMINADO', 'RECHAZADO', 'POSTERGADO') NOT NULL DEFAULT 'PENDIENTE',
  `postergacion_motivo`      INT(1) UNSIGNED                                            NULL,
  `postergacion_comentarios` TEXT                                                       NULL,
  `rechazo_comentarios`      TEXT                                                       NULL,
  `sel`                      INT(1) UNSIGNED                                            NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_programaciones_mensuales_trabajos_programaciones_mensuales` (`programacion_mensual_id` ASC),
  INDEX `fk_programaciones_mensuales_trabajos_trabajos_programados` (`trabajo_programado_id` ASC),
  CONSTRAINT `fk_programaciones_mensuales_trabajos_programaciones_mensuales`
    FOREIGN KEY (`programacion_mensual_id`)
  REFERENCES `logpro`.`control_programaciones_mensuales` (`id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE,
  CONSTRAINT `fk_programaciones_mensuales_trabajos_trabajos_programados`
    FOREIGN KEY (`trabajo_programado_id`)
  REFERENCES `logpro`.`control_trabajos_programados` (`id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_proyecciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_proyecciones`
(
  `id`             INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`       TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`     INT(3) UNSIGNED NOT NULL,
  `nombre`         VARCHAR(100)    NOT NULL,
  `unidad_id`      VARCHAR(40)     NOT NULL,
  `desde`          DATE            NOT NULL,
  `hasta`          DATE            NOT NULL,
  `data_config`    LONGTEXT        NOT NULL,
  `data_servicios` LONGTEXT        NULL,
  `data_eventos`   LONGTEXT        NULL,
  `data_gastos`    LONGTEXT        NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_proyecciones_usuarios` (`creador_id` ASC),
  INDEX `fk_proyecciones_unidades` (`unidad_id` ASC),
  CONSTRAINT `fk_proyecciones_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_proyecciones_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones_tipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones_tipos`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_tipos_usuarios` (`creador_id` ASC),
  CONSTRAINT `fk_control_inspecciones_tipos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones_secciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones_secciones`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_secciones_usuarios` (`creador_id` ASC),
  CONSTRAINT `fk_control_inspecciones_secciones_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones_items`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones_items`
(
  `id`            INT(5) UNSIGNED                    NOT NULL AUTO_INCREMENT,
  `creacion`      TIMESTAMP                          NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`    INT(3) UNSIGNED                    NOT NULL,
  `tipo_id`       INT(2) UNSIGNED                    NOT NULL,
  `seccion_id`    INT(2) UNSIGNED                    NOT NULL,
  `enunciado`     VARCHAR(200)                       NOT NULL,
  `nivel`         ENUM ('BAJO', 'NORMAL', 'CRITICO') NOT NULL DEFAULT 'NORMAL',
  `observaciones` VARCHAR(100)                       NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_items_creadores` (`creador_id` ASC),
  INDEX `fk_control_inspecciones_items_secciones` (`seccion_id` ASC),
  INDEX `fk_control_inspecciones_items_tipos` (`tipo_id` ASC),
  CONSTRAINT `fk_control_inspecciones_items_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inspecciones_items_secciones`
  FOREIGN KEY (`seccion_id`)
  REFERENCES `logpro`.`control_inspecciones_secciones` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inspecciones_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_inspecciones_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones`
(
  `id`           INT UNSIGNED                   NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP                      NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`   INT(3) UNSIGNED                NOT NULL,
  `unidad_id`    VARCHAR(40)                    NULL,
  `ref_unidad`   VARCHAR(200)                   NULL,
  `responsable`  VARCHAR(100)                   NULL,
  `inspector_id` INT(2) UNSIGNED                NOT NULL,
  `fecha`        DATE                           NOT NULL,
  `referencia`   VARCHAR(100)                   NOT NULL,
  `estado`       ENUM ('BORRADOR', 'TERMINADA') NOT NULL DEFAULT 'BORRADOR',
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_creadores` (`creador_id` ASC),
  INDEX `fk_control_inspecciones_unidades` (`unidad_id` ASC),
  INDEX `fk_control_inspecciones_inspectores` (`inspector_id` ASC),
  CONSTRAINT `fk_control_inspecciones_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inspecciones_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_control_inspecciones_inspectores`
  FOREIGN KEY (`inspector_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones_respuestas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones_respuestas`
(
  `id`            INT UNSIGNED                              NOT NULL AUTO_INCREMENT,
  `inspeccion_id` INT UNSIGNED                              NOT NULL,
  `enunciado`     VARCHAR(200)                              NOT NULL,
  `respuesta`     ENUM ('CUMPLE', 'NO CUMPLE', 'NO APLICA') NOT NULL,
  `cumplimiento`  DATE                                      NULL,
  `oservaciones`  TEXT                                      NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_respuestas_inspecciones` (`inspeccion_id` ASC),
  CONSTRAINT `fk_control_inspecciones_respuestas_inspecciones`
  FOREIGN KEY (`inspeccion_id`)
  REFERENCES `logpro`.`control_inspecciones` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_inspecciones_respuestas_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_inspecciones_respuestas_archivos`
(
  `id`           INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `respuesta_id` INT UNSIGNED NOT NULL,
  `archivo`      VARCHAR(200) NOT NULL,
  `nombre`       VARCHAR(100) NOT NULL,
  `peso`         VARCHAR(20)  NOT NULL,
  `mime`         VARCHAR(20)  NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_control_inspecciones_respuestas_fotografias_archivos` (`respuesta_id` ASC),
  CONSTRAINT `k_control_inspecciones_respuestas_fotografias_archivos`
  FOREIGN KEY (`respuesta_id`)
  REFERENCES `logpro`.`control_inspecciones_respuestas` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_solicitudes_tipos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_solicitudes_tipos`
(
  `id`              INT(2) UNSIGNED   NOT NULL AUTO_INCREMENT,
  `creacion`        TIMESTAMP         NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`      INT(3) UNSIGNED   NOT NULL,
  `supervisor_id`   INT(3) UNSIGNED   NOT NULL,
  `nombre`          VARCHAR(50)       NOT NULL,
  `requiere_unidad` ENUM ('SI', 'NO') NOT NULL DEFAULT 'SI',
  `requiere_activo` ENUM ('SI', 'NO') NOT NULL DEFAULT 'NO',
  PRIMARY KEY (`id`),
  INDEX `fk_solicitudes_tipos_usuarios` (`creador_id` ASC),
  INDEX `fk_solicitudes_tipos_supervisores` (`supervisor_id` ASC),
  CONSTRAINT `fk_solicitudes_tipos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_tipos_supervisores`
  FOREIGN KEY (`supervisor_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`control_solicitudes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_solicitudes`
(
  `id`                     INT(6) UNSIGNED                                                     NOT NULL AUTO_INCREMENT,
  `creacion`               TIMESTAMP                                                           NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`             INT(3) UNSIGNED                                                     NOT NULL,
  `tipo_id`                INT(2) UNSIGNED                                                     NOT NULL,
  `unidad_id`              VARCHAR(40)                                                         NULL,
  `activo_id`              VARCHAR(40)                                                         NULL,
  `respuesta_id`           INT UNSIGNED                                                        NULL,
  `fecha_envio`            DATE                                                                NOT NULL,
  `fecha_recepcion`        DATE                                                                NULL,
  `fecha_termino`          DATE                                                                NULL,
  `fecha_cierre`           DATE                                                                NULL,
  `fecha_rechazo`          DATE                                                                NULL,
  `usuario_solicitud_id`   INT(3) UNSIGNED                                                     NULL,
  `usuario_responsable_id` INT(3) UNSIGNED                                                     NULL,
  `usuario_termino_id`     INT(3) UNSIGNED                                                     NULL,
  `usuario_cierre_id`      INT(3) UNSIGNED                                                     NULL,
  `usuario_rechazo_id`     INT(3) UNSIGNED                                                     NULL,
  `detalles`               TEXT                                                                NOT NULL,
  `medidas_correctivas`    TEXT                                                                NULL,
  `prioridad`              ENUM ('NORMAL', 'URGENTE')                                          NOT NULL DEFAULT 'NORMAL',
  `solucionado`            ENUM ('SI', 'NO')                                                   NULL,
  `estado`                 ENUM ('PENDIENTE', 'EN CURSO', 'TERMINADA', 'RECHAZADA', 'CERRADA') NOT NULL DEFAULT 'PENDIENTE',
  PRIMARY KEY (`id`),
  INDEX `fk_solicitudes_usuarios_creadores` (`creador_id` ASC),
  INDEX `fk_solicitudes_tipos` (`tipo_id` ASC),
  INDEX `fk_solicitudes_unidades` (`unidad_id` ASC),
  INDEX `fk_solicitudes_activos` (`activo_id` ASC),
  INDEX `fk_solicitudes_inspecciones_respuestas` (`respuesta_id` ASC),
  INDEX `fk_solicitudes_usuarios_solicitudes` (`usuario_solicitud_id` ASC),
  INDEX `fk_solicitudes_usuarios_responsables` (`usuario_responsable_id` ASC),
  INDEX `fk_solicitudes_usuarios_terminos` (`usuario_termino_id` ASC),
  INDEX `fk_solicitudes_usuarios_cierres` (`usuario_cierre_id` ASC),
  INDEX `fk_solicitudes_usuarios_rechazos` (`usuario_rechazo_id` ASC),
  CONSTRAINT `fk_solicitudes_usuarios_creadores`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_tipos`
  FOREIGN KEY (`tipo_id`)
  REFERENCES `logpro`.`control_solicitudes_tipos` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_activos`
  FOREIGN KEY (`activo_id`)
  REFERENCES `logpro`.`control_activos` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_inspecciones_respuestas`
  FOREIGN KEY (`respuesta_id`)
  REFERENCES `logpro`.`control_inspecciones_respuestas` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_solicitudes`
  FOREIGN KEY (`usuario_solicitud_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_responsables`
  FOREIGN KEY (`usuario_responsable_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_terminos`
  FOREIGN KEY (`usuario_termino_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_cierres`
  FOREIGN KEY (`usuario_cierre_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_rechazos`
  FOREIGN KEY (`usuario_rechazo_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_solicitudes_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_solicitudes_archivos`
(
  `id`           INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP
  ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`   INT(2) UNSIGNED NOT NULL,
  `solicitud_id` INT(5) UNSIGNED NOT NULL,
  `archivo`      VARCHAR(200)    NOT NULL,
  `nombre`       VARCHAR(50)     NOT NULL,
  `peso`         VARCHAR(20)     NOT NULL,
  `mime`         VARCHAR(20)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_solicitudes_archivos_usuarios` (`creador_id` ASC),
  INDEX `fk_solicitudes_archivos_solicitudes` (`solicitud_id` ASC),
  CONSTRAINT `fk_solicitudes_archivos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_archivos_solicitudes`
  FOREIGN KEY (`solicitud_id`)
  REFERENCES `logpro`.`control_solicitudes` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_solicitudes_comentarios`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_solicitudes_comentarios`
(
  `id`           INT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`   INT(2) UNSIGNED NOT NULL,
  `solicitud_id` INT(6) UNSIGNED NOT NULL,
  `comentarios`  TEXT            NOT NULL,
  `tipo`         VARCHAR(12)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_solicitudes_comentarios_usuarios` (`creador_id` ASC),
  INDEX `fk_solicitudes_comentarios_solicitudes` (`solicitud_id` ASC),
  CONSTRAINT `fk_solicitudes_comentarios_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_solicitudes_comentarios_solicitudes`
  FOREIGN KEY (`solicitud_id`)
  REFERENCES `logpro`.`control_solicitudes` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_siniestros_categorias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_siniestros_categorias`
(
  `id`         INT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`   TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id` INT(3) UNSIGNED NOT NULL,
  `nombre`     VARCHAR(50)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_siniestros_categorias_usuarios` (`creador_id` ASC),
  CONSTRAINT `fk_siniestros_categorias_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8
  PACK_KEYS = 0
  ROW_FORMAT = DEFAULT;
-- -----------------------------------------------------
-- Table `logpro`.`siniestros`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_siniestros`
(
  `id`              INT(5) UNSIGNED                             NOT NULL AUTO_INCREMENT,
  `creacion`        TIMESTAMP                                   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`      INT(3) UNSIGNED                             NOT NULL,
  `categoria_id`    INT(3) UNSIGNED                             NOT NULL,
  `unidad_id`       VARCHAR(40)                                 NOT NULL,
  `numero`          VARCHAR(50)                                 NOT NULL,
  `fecha`           DATE                                        NOT NULL,
  `detalle`         TEXT                                        NOT NULL,
  `valor_reclamado` INT UNSIGNED                                NOT NULL,
  `valor_cobrado`   INT UNSIGNED                                NOT NULL,
  `estado`          ENUM ('PENDIENTE', 'APROBADO', 'RECHAZADO') NOT NULL DEFAULT 'PENDIENTE',
  PRIMARY KEY (`id`),
  INDEX `fk_siniestros_usuarios` (`creador_id` ASC),
  INDEX `fk_siniestros_categorias` (`categoria_id` ASC),
  INDEX `fk_siniestros_unidades` (`unidad_id` ASC),
  CONSTRAINT `fk_siniestros_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_siniestros_categorias`
  FOREIGN KEY (`categoria_id`)
  REFERENCES `logpro`.`control_siniestros_categorias` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_siniestros_unidades`
  FOREIGN KEY (`unidad_id`)
  REFERENCES `logpro`.`control_unidades` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------
-- Table `logpro`.`control_siniestros_archivos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `logpro`.`control_siniestros_archivos`
(
  `id`           INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  `creacion`     TIMESTAMP       NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `creador_id`   INT(2) UNSIGNED NOT NULL,
  `siniestro_id` INT(5) UNSIGNED NOT NULL,
  `archivo`      VARCHAR(200)    NOT NULL,
  `nombre`       VARCHAR(50)     NOT NULL,
  `peso`         VARCHAR(20)     NOT NULL,
  `mime`         VARCHAR(20)     NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_siniestros_archivos_usuarios` (`creador_id` ASC),
  INDEX `fk_siniestros_archivos_siniestros` (`siniestro_id` ASC),
  CONSTRAINT `fk_siniestros_archivos_usuarios`
  FOREIGN KEY (`creador_id`)
  REFERENCES `logpro`.`sistema_usuarios` (`id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE,
  CONSTRAINT `fk_siniestros_archivos_siniestros`
  FOREIGN KEY (`siniestro_id`)
  REFERENCES `logpro`.`control_siniestros` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
)
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
-- -----------------------------------------------------v