-- https://www.phpmyadmin.net/
--
-- Tempo de geração: 06-Mar-2026 Ã s 19:11
-- Versão do servidor: 10.4.24-MariaDB
-- versão do PHP: 8.1.6

START TRANSACTION;



--
-- Banco de dados: `bancoleitura`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `verificaativomateusquiseira` (IN `$idmac` VARCHAR(17), OUT `$ativo` BOOLEAN)   BEGIN
SELECT ativo INTO $ativo from macmateusquiseira
WHERE idmacmateusquiseira=$idmac;
END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitemateusquiseira` (IN `$idmac` VARCHAR(17), OUT `$limite` INT, OUT `$contador` INT)   BEGIN
SELECT limite INTO $limite
FROM macmateusquiseira
WHERE idmacmateusquiseira=$idmac;
SELECT contador INTO $contador
FROM macmateusquiseira
WHERE idmacmateusquiseira=$idmac;
END$$

DELIMITER ;

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

--
-- Estrutura da tabela `leituramateusquiseira`
--

CREATE TABLE `leituramateusquiseira` (
  `idleituramateusquiseira` int(10) UNSIGNED NOT NULL,
  `macmateusquiseira_idmacmateusquiseira` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `umidade` double DEFAULT NULL,
  `temperatura` double DEFAULT NULL,
  `luz` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Acionadores `leituramateusquiseira`
--
DELIMITER $$
CREATE TRIGGER `tgdeletemateusquiseira` AFTER DELETE ON `leituramateusquiseira` FOR EACH ROW BEGIN
UPDATE macmateusquiseira
SET contador=contador-1
WHERE 
idmacmateusquiseira=old.macmateusquiseira_idmacmateusquiseira;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertleituramateusquiseira` AFTER INSERT ON `leituramateusquiseira` FOR EACH ROW BEGIN
UPDATE macmateusquiseira
SET contador=contador+1
WHERE idmacmateusquiseira=new.macmateusquiseira_idmacmateusquiseira;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativomateusquiseira` BEFORE INSERT ON `leituramateusquiseira` FOR EACH ROW BEGIN
CALL verificaativomateusquiseira(new.macmateusquiseira_idmacmateusquiseira,@$ativo);
IF @$ativo=0 then SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Esta placa está Inativa';
end if;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificalimitemateusquiseira` BEFORE INSERT ON `leituramateusquiseira` FOR EACH ROW BEGIN 
CALL verificalimitemateusquiseira(new.macmateusquiseira_idmacmateusquiseira,@$limite,@$contador);
IF @contador>@limite
THEN SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Limite de gravações atingido';
END IF;
END
$$
DELIMITER ;

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

--
-- Estrutura da tabela `macmateusquiseira`
--

CREATE TABLE `macmateusquiseira` (
  `idmacmateusquiseira` varchar(17) NOT NULL,
  `nome` varchar(35) DEFAULT NULL,
  `contador` int(10) UNSIGNED DEFAULT 0,
  `limite` int(10) UNSIGNED DEFAULT NULL,
  `ativo` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `macmateusquiseira`
--

INSERT INTO `macmateusquiseira` (`idmacmateusquiseira`, `nome`, `contador`, `limite`, `ativo`) VALUES
('DC:4F:22:0D:61:3B', 'Placa teste', 0, 50, 0);

--
-- Ãndices para tabelas despejadas
--

--
-- Ãndices para tabela `leituramateusquiseira`
--
ALTER TABLE `leituramateusquiseira`
  ADD PRIMARY KEY (`idleituramateusquiseira`),
  ADD KEY `leituramateusquiseira_FKIndex1` (`macmateusquiseira_idmacmateusquiseira`);

--
-- Ãndices para tabela `macmateusquiseira`
--
ALTER TABLE `macmateusquiseira`
  ADD PRIMARY KEY (`idmacmateusquiseira`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

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

--
-- Restrições para despejos de tabelas
--

--
-- Limitadores para a tabela `leituramateusquiseira`
--
ALTER TABLE `leituramateusquiseira`
  ADD CONSTRAINT `leituramateusquiseira_ibfk_1` FOREIGN KEY (`macmateusquiseira_idmacmateusquiseira`) REFERENCES `macmateusquiseira` (`idmacmateusquiseira`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

