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

START TRANSACTION;



--
-- Banco de dados: `provafinal`
--

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

--
-- Estrutura para tabela `leituragabi`
--

CREATE TABLE `leituragabi` (
  `idleituraAluno` int(10) UNSIGNED NOT NULL,
  `coletorgabi_idcoletorgabi` int(10) UNSIGNED NOT NULL,
  `sensorgabi_idsensorgabi` int(10) UNSIGNED NOT NULL,
  `macgabi_idmacgabi` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `valor` int(10) UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Acionadores `leituragabi`
--
DELIMITER $$
CREATE TRIGGER `tgdeleteleituragabi` AFTER DELETE ON `leituragabi` FOR EACH ROW BEGIN
UPDATE macgabi
SET contador = contador - 1
WHERE idmacgabi = OLD.macgabi_idmacgabi;

UPDATE coletorgabi
SET contador = contador - 1
WHERE idcoletorgabi =OLD.coletorgabi_idcoletorgabi;

UPDATE sensorgabi
SET contador = contador - 1
WHERE idsensorgabi = OLD.sensorgabi_idsensorgabi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertleituragabi` AFTER INSERT ON `leituragabi` FOR EACH ROW BEGIN
UPDATE macgabi
SET contador=contador+1
WHERE idmacgabi=new.macgabi_idmacgabi;

UPDATE coletorgabi
SET contador = contador + 1
WHERE idcoletorgabi = NEW.coletorgabi_idcoletorgabi;
    
UPDATE sensorgabi
SET contador = contador + 1
WHERE idsensorgabi = NEW.sensorgabi_idsensorgabi;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativogabi` BEFORE INSERT ON `leituragabi` FOR EACH ROW BEGIN

CALL validaativo(
    NEW.macgabi_idmacgabi,
    NEW.sensorgabi_idsensorgabi,
    NEW.coletorgabi_idcoletorgabi,
    @ativomac,
    @ativosensor,
    @ativocoletor
);

IF @ativomac = 0 THEN
    SIGNAL SQLSTATE '45000'
    SET MESSAGE_TEXT = 'Mac inativo';
END IF;

IF @ativosensor = 0 THEN
    SIGNAL SQLSTATE '45000'
    SET MESSAGE_TEXT = 'Sensor inativo';
END IF;

IF @ativocoletor = 0 THEN
    SIGNAL SQLSTATE '45000'
    SET MESSAGE_TEXT = 'Coletor inativo';
END IF;

END
$$
DELIMITER ;

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `leituragabi`
--
ALTER TABLE `leituragabi`
  ADD PRIMARY KEY (`idleituraAluno`),
  ADD KEY `leitura_FKIndex1` (`macgabi_idmacgabi`),
  ADD KEY `leitura_FKIndex2` (`sensorgabi_idsensorgabi`),
  ADD KEY `leituragabi_FKIndex3` (`coletorgabi_idcoletorgabi`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `leituragabi`
--
ALTER TABLE `leituragabi`
  MODIFY `idleituraAluno` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

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

--
-- Restrições para tabelas `leituragabi`
--
ALTER TABLE `leituragabi`
  ADD CONSTRAINT `leituragabi_ibfk_1` FOREIGN KEY (`macgabi_idmacgabi`) REFERENCES `macgabi` (`idmacgabi`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leituragabi_ibfk_2` FOREIGN KEY (`sensorgabi_idsensorgabi`) REFERENCES `sensorgabi` (`idsensorgabi`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leituragabi_ibfk_3` FOREIGN KEY (`coletorgabi_idcoletorgabi`) REFERENCES `coletorgabi` (`idcoletorgabi`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

