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

START TRANSACTION;



--
-- Banco de dados: `bancoleiturajubi`
--

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

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitejubi` (IN `$idmac` INT(17), OUT `$limite` INT, OUT `$contador` INT)   BEGIN
SELECT limite INTO $limite
FROM macjubi
WHERE idmacjubi=$idmac;
SELECT contador INTO $contador
FROM macjubi
WHERE idmacjubi=$idmac;
END$$

DELIMITER ;

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

--
-- Estrutura da tabela `leiturajubi`
--

CREATE TABLE `leiturajubi` (
  `idleiturajubi` int(10) UNSIGNED NOT NULL,
  `macjubi_idmacjubi` 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;

--
-- Acionadores `leiturajubi`
--
DELIMITER $$
CREATE TRIGGER `tgdeletejubi` AFTER DELETE ON `leiturajubi` FOR EACH ROW BEGIN
UPDATE macjubi
SET contador=contador-1
WHERE 
idmacjubi=old.macjubi_idmacjubi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertleiturajubi` AFTER INSERT ON `leiturajubi` FOR EACH ROW BEGIN
UPDATE macjubi
SET contador=contador+1
WHERE idmacjubi=new.macjubi_idmacjubi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativojubi` AFTER INSERT ON `leiturajubi` FOR EACH ROW BEGIN
CALL verificaativojubi(new.macjubi_idmacjubi,@$ativo);
IF @$ativo=0 then SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Esta placa está Inativa';
end if;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificalimitejubi` BEFORE INSERT ON `leiturajubi` FOR EACH ROW BEGIN 
CALL verificalimitejubi(new.macjubi_idmacjubi,@$limite,@$contador);
IF @contador>@limite
THEN SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Limite de gravações atingido';
END IF;
END
$$
DELIMITER ;

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

--
-- Estrutura da tabela `macjubi`
--

CREATE TABLE `macjubi` (
  `idmacjubi` 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;

--
-- Índices para tabelas despejadas
--

--
-- Índices para tabela `leiturajubi`
--
ALTER TABLE `leiturajubi`
  ADD PRIMARY KEY (`idleiturajubi`),
  ADD KEY `leiturajubi_FKIndex1` (`macjubi_idmacjubi`);

--
-- Índices para tabela `macjubi`
--
ALTER TABLE `macjubi`
  ADD PRIMARY KEY (`idmacjubi`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `leiturajubi`
--
ALTER TABLE `leiturajubi`
  MODIFY `idleiturajubi` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

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

--
-- Limitadores para a tabela `leiturajubi`
--
ALTER TABLE `leiturajubi`
  ADD CONSTRAINT `leiturajubi_ibfk_1` FOREIGN KEY (`macjubi_idmacjubi`) REFERENCES `macjubi` (`idmacjubi`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

