-- https://www.phpmyadmin.net/
--
-- Tempo de geração: 12/05/2026 às 22:21
-- Versão do servidor: 10.4.32-MariaDB
-- Versão do PHP: 8.2.12

START TRANSACTION;



--
-- Banco de dados: `provagobbato`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `verificaativogobbato` (IN `$idmac` VARCHAR(17), OUT `$ativo` BOOLEAN)   BEGIN
select ativo into $ativo
from macgobbato
WHERE idmacgobbato=$idmac;
END$$

DELIMITER ;

-- --------------------------------------------------------

--
-- Estrutura para tabela `leituragobbato`
--

CREATE TABLE `leituragobbato` (
  `idleituragobbato` int(10) UNSIGNED NOT NULL,
  `sensorgobbato_idsensorgobbato` int(10) UNSIGNED NOT NULL,
  `macgobbato_idmacgobbato` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `valor` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `leituragobbato`
--

INSERT INTO `leituragobbato` (`idleituragobbato`, `sensorgobbato_idsensorgobbato`, `macgobbato_idmacgobbato`, `dataleitura`, `horaleitura`, `valor`) VALUES
(1, 1, '01', '2026-05-12', '15:19:03', 0);

--
-- Acionadores `leituragobbato`
--
DELIMITER $$
CREATE TRIGGER `tgdeletegobbato` AFTER DELETE ON `leituragobbato` FOR EACH ROW BEGIN
update macgobbato
set contador=contador-1
where idmacgobbato=OLD.macgobbato_idmacgobbato;
update sensorgobbato
set contador=contador-1
where idsensorgobbato=OLD.sensorgobbato_idsensorgobbato;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertgobbato` AFTER INSERT ON `leituragobbato` FOR EACH ROW BEGIN
UPDATE macgobbato
SET contador = contador+1
WHERE idmacgobbato = new.macgobbato_idmacgobbato;
UPDATE sensorgobbato
SET contador = contador+1
WHERE idsensorgobbato = new.sensorgobbato_idsensorgobbato;

END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativogobbato` BEFORE INSERT ON `leituragobbato` FOR EACH ROW begin
CALL verificaativogobbato(new.macgobbato_idmacgobbato,@ativo);

if @$ativo=0 
then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Placa inativa';
end if;

end
$$
DELIMITER ;

-- --------------------------------------------------------

--
-- Estrutura para tabela `macgobbato`
--

CREATE TABLE `macgobbato` (
  `idmacgobbato` varchar(17) NOT NULL,
  `nome` varchar(45) DEFAULT NULL,
  `ativo` tinyint(1) DEFAULT 1,
  `contador` int(10) UNSIGNED DEFAULT 0,
  `limite` int(10) UNSIGNED DEFAULT 100
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `macgobbato`
--

INSERT INTO `macgobbato` (`idmacgobbato`, `nome`, `ativo`, `contador`, `limite`) VALUES
('01', 'placateste', 1, 1, 100);

-- --------------------------------------------------------

--
-- Estrutura para tabela `sensorgobbato`
--

CREATE TABLE `sensorgobbato` (
  `idsensorgobbato` int(10) UNSIGNED NOT NULL,
  `nome` varchar(45) DEFAULT NULL,
  `contador` int(10) UNSIGNED DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `sensorgobbato`
--

INSERT INTO `sensorgobbato` (`idsensorgobbato`, `nome`, `contador`) VALUES
(1, 'sensorteste', 1);

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `leituragobbato`
--
ALTER TABLE `leituragobbato`
  ADD PRIMARY KEY (`idleituragobbato`),
  ADD KEY `leituragobbato_FKIndex1` (`macgobbato_idmacgobbato`),
  ADD KEY `leituragobbato_FKIndex2` (`sensorgobbato_idsensorgobbato`);

--
-- Índices de tabela `macgobbato`
--
ALTER TABLE `macgobbato`
  ADD PRIMARY KEY (`idmacgobbato`);

--
-- Índices de tabela `sensorgobbato`
--
ALTER TABLE `sensorgobbato`
  ADD PRIMARY KEY (`idsensorgobbato`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `leituragobbato`
--
ALTER TABLE `leituragobbato`
  MODIFY `idleituragobbato` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT de tabela `sensorgobbato`
--
ALTER TABLE `sensorgobbato`
  MODIFY `idsensorgobbato` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- Restrições para tabelas despejadas
--

--
-- Restrições para tabelas `leituragobbato`
--
ALTER TABLE `leituragobbato`
  ADD CONSTRAINT `leituragobbato_ibfk_1` FOREIGN KEY (`macgobbato_idmacgobbato`) REFERENCES `macgobbato` (`idmacgobbato`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leituragobbato_ibfk_2` FOREIGN KEY (`sensorgobbato_idsensorgobbato`) REFERENCES `sensorgobbato` (`idsensorgobbato`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

