-- https://www.phpmyadmin.net/
--
-- Tempo de geração: 15/04/2026 às 23:02
-- Versão do servidor: 10.4.32-MariaDB
-- Versão do PHP: 8.0.30

START TRANSACTION;



--
-- Banco de dados: `projeto1`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `verificaativocecimi` (IN `$idmaccecimi` VARCHAR(17), OUT `$ativo` BOOLEAN)   BEGIN
SELECT ativo into $ativo from maccecimi
WHERE idmaccecimi = $idmaccecimi; 


END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitececimi` (IN `$idmaccecimi` VARCHAR(17), OUT `$limite` INT, OUT `$contador` INT)   BEGIN
SELECT  limite into  $limite
from maccecimi 
where idmaccecimi =  $idmaccecimi; 

select  contador into $contador
from maccecimi 
where idmaccecimi =  $idmaccecimi; 
END$$

DELIMITER ;

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

--
-- Estrutura para tabela `leituracecimi`
--

CREATE TABLE `leituracecimi` (
  `idleituracecimi` int(10) UNSIGNED NOT NULL,
  `maccecimi_idmaccecimi` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `umidade` double DEFAULT NULL,
  `temperatura` double DEFAULT NULL,
  `luz` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Acionadores `leituracecimi`
--
DELIMITER $$
CREATE TRIGGER `tgdeleteleituracecimi` AFTER DELETE ON `leituracecimi` FOR EACH ROW BEGIN
UPDATE maccecimi
SET contador=contador-1 
WHERE idmaccecimi= old.maccecimi_idmaccecimi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgsalvaleituracecimi` AFTER INSERT ON `leituracecimi` FOR EACH ROW BEGIN 
UPDATE maccecimi
SET contador=contador +1 
WHERE idmaccecimi = new.maccecimi_idmaccecimi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativocecimi` BEFORE INSERT ON `leituracecimi` FOR EACH ROW BEGIN 
CALL verificaativocecimi(new.maccecimi_idmaccecimi, @$ativo);
if @$ativo=0 
then SIGNAL SQLSTATE '45000' SET
MESSAGE_TEXT = 'Placa inativa';
end if;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificalimitececimi` BEFORE INSERT ON `leituracecimi` FOR EACH ROW BEGIN 
CALL
verificalimitececimi(new.maccecimi_idmaccecimi,@$limite, @$contador);
IF @$contador>@$limite
THEN SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT='Limite de gravações atingido';
ENd IF;

END
$$
DELIMITER ;

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

--
-- Estrutura para tabela `maccecimi`
--

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

--
-- Despejando dados para a tabela `maccecimi`
--

INSERT INTO `maccecimi` (`idmaccecimi`, `nome`, `contador`, `limite`, `ativo`) VALUES
('cc:50:e3:05:19:ba', 'Esp8266_PROVA', 0, 500, NULL);

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `leituracecimi`
--
ALTER TABLE `leituracecimi`
  ADD PRIMARY KEY (`idleituracecimi`),
  ADD KEY `leituracecimi_FKIndex1` (`maccecimi_idmaccecimi`);

--
-- Índices de tabela `maccecimi`
--
ALTER TABLE `maccecimi`
  ADD PRIMARY KEY (`idmaccecimi`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `leituracecimi`
--
ALTER TABLE `leituracecimi`
  MODIFY `idleituracecimi` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

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

--
-- Restrições para tabelas `leituracecimi`
--
ALTER TABLE `leituracecimi`
  ADD CONSTRAINT `leituracecimi_ibfk_1` FOREIGN KEY (`maccecimi_idmaccecimi`) REFERENCES `maccecimi` (`idmaccecimi`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

