-- Jonathan Fernando
-- 2018-08-10
-- Scripts das tabelas de localização

CREATE TABLE IF NOT EXISTS `localizacao_ultimo_registro` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `viatura_id` int(11) NOT NULL,
  `user` varchar(30) DEFAULT NULL,
  `imei` varchar(255) DEFAULT NULL,
  `latitude` varchar(255) NOT NULL,
  `longitude` varchar(255) NOT NULL,
  `altitude` varchar(255) DEFAULT NULL,
  `data_envio` datetime NOT NULL,
  `data_recebimento` datetime NOT NULL,
  `humidade_ar` varchar(15) NOT NULL DEFAULT 'Indisponivel',
  `temperatura` varchar(15) NOT NULL DEFAULT 'Indisponivel',
  `logradouro` varchar(100) DEFAULT NULL,
  `bairro` varchar(100) DEFAULT NULL,
  `cidade` varchar(100) DEFAULT NULL,
  `panico` enum('S','N') NOT NULL DEFAULT 'N' COMMENT 'Flag para controle de panico alerta da viatura',
  `velocidade` varchar(15) NOT NULL DEFAULT '0.0',
  PRIMARY KEY (`id`),
  KEY `fk_localizacao_viatura_idx` (`viatura_id`),
  KEY `ix_data_recebimento` (`data_recebimento`),
  KEY `ix_viatura` (`viatura_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE IF NOT EXISTS `localizacao` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `viatura_id` int(11) NOT NULL,
  `user` varchar(30) DEFAULT NULL,
  `imei` varchar(255) DEFAULT NULL,
  `latitude` varchar(255) NOT NULL,
  `longitude` varchar(255) NOT NULL,
  `altitude` varchar(255) DEFAULT NULL,
  `data_envio` datetime NOT NULL,
  `data_recebimento` datetime NOT NULL,
  `humidade_ar` varchar(15) NOT NULL DEFAULT 'Indisponivel',
  `temperatura` varchar(15) NOT NULL DEFAULT 'Indisponivel',
  `logradouro` varchar(100) DEFAULT NULL,
  `bairro` varchar(100) DEFAULT NULL,
  `cidade` varchar(100) DEFAULT NULL,
  `panico` enum('S','N') NOT NULL DEFAULT 'N' COMMENT 'Flag para controle de panico alerta da viatura',
  `velocidade` varchar(15) NOT NULL DEFAULT '0.0',
  PRIMARY KEY (`id`),
  KEY `fk_localizacao_viatura_idx` (`viatura_id`),
  KEY `ix_data_recebimento` (`data_recebimento`),
  KEY `ix_viatura` (`viatura_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DELIMITER $$
USE `rastreamento_homologacao`$$
CREATE DEFINER = CURRENT_USER TRIGGER `localizacao_BEFORE_INSERT` BEFORE INSERT ON `localizacao` FOR EACH ROW
BEGIN
	-- Deleta todos os registros antigos da localizacao
	DELETE FROM localizacao_ultimo_registro WHERE viatura_id = new.viatura_id;
    -- Insere nova localização
    INSERT INTO `localizacao_ultimo_registro`
(`viatura_id`, `user`, `imei`, `latitude`, `longitude`, `altitude`, `data_envio`, `data_recebimento`, `humidade_ar`, `temperatura`, `logradouro`, `bairro`, `cidade`, `panico`, `velocidade`)
VALUES (new.viatura_id, new.user, new.imei, new.latitude, new.longitude, new.altitude, new.data_envio, new.data_recebimento, new.humidade_ar, new.temperatura, new.logradouro, new.bairro, new.cidade, new.panico, new.velocidade); 
END$$
DELIMITER ;


-- Atualiza a versão
INSERT INTO `_versao` (`versao`,`atualizado_em`) VALUES ('0008', NOW());
