-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Tempo de geração: 20/03/2026 às 17:31
-- Versão do servidor: 10.4.32-MariaDB
-- Versão do PHP: 8.0.30

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- 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,
  `unidade` double DEFAULT NULL,
  `temperatura` double DEFAULT NULL,
  `luz` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `leituracecimi`
--

INSERT INTO `leituracecimi` (`idleituracecimi`, `maccecimi_idmaccecimi`, `dataleitura`, `horaleitura`, `unidade`, `temperatura`, `luz`) VALUES
(3, 'aa', '2026-02-13', '15:07:00', 28, 29.7, 110);

--
-- 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
('aa', 'Placa teste', 1, 50, 0);

--
-- Í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;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
