-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Tempo de geração: 12/06/2026 às 20:17
-- Versão do servidor: 10.4.32-MariaDBs
-- Versão do PHP: 8.2.12

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: `zzzz`
--

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

--
-- Estrutura para tabela `coletorfelipe`
--

CREATE TABLE `coletorfelipe` (
  `idcoletorfelipe` int(10) UNSIGNED NOT NULL,
  `nome` varchar(45) DEFAULT NULL,
  `contador` int(10) UNSIGNED DEFAULT 0,
  `ativo` tinyint(1) DEFAULT 1,
  `limite` int(10) UNSIGNED DEFAULT 100
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `coletorfelipe`
--

INSERT INTO `coletorfelipe` (`idcoletorfelipe`, `nome`, `contador`, `ativo`, `limite`) VALUES
(1, 'coletor', 12, 1, 100),
(2, '333', 13, 0, 100);

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

--
-- Estrutura para tabela `leiturafelipe`
--

CREATE TABLE `leiturafelipe` (
  `idleiturafelipe` int(10) UNSIGNED NOT NULL,
  `sensorfelipe_idsensorfelipe` int(10) UNSIGNED NOT NULL,
  `coletorfelipe_idcoletorfelipe` int(10) UNSIGNED NOT NULL,
  `macfelipe_idmacfelipe` 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;

--
-- Despejando dados para a tabela `leiturafelipe`
--

INSERT INTO `leiturafelipe` (`idleiturafelipe`, `sensorfelipe_idsensorfelipe`, `coletorfelipe_idcoletorfelipe`, `macfelipe_idmacfelipe`, `dataleitura`, `horaleitura`, `valor`) VALUES
(1, 1, 1, '12345678901234567', '2026-06-12', '15:26:33', 666),
(2, 1, 2, '12345678901234567', '2026-06-12', '19:17:20', 4345);

--
-- Acionadores `leiturafelipe`
--
DELIMITER $$
CREATE TRIGGER `tgchecagem_limite_insert_felipe` AFTER INSERT ON `leiturafelipe` FOR EACH ROW BEGIN
 
    UPDATE macfelipe
    SET ativo = 0
    WHERE idmacfelipe = NEW.macfelipe_idmacfelipe
    AND contador > limite;
 

    UPDATE sensorfelipe
    SET ativo = 0
    WHERE idsensorfelipe = NEW.sensorfelipe_idsensorfelipe
    AND contador > limite;
 
    -- Verifica coletorfelipe
    UPDATE coletorfelipe
    SET ativo = 0
    WHERE idcoletorfelipe = NEW.coletorfelipe_idcoletorfelipe
    AND contador > limite;
 
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgdelete_leitura_coletorfelipe` AFTER DELETE ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  coletorfelipe
    SET     contador = contador - 1
    WHERE   idcoletorfelipe = OLD.coletorfelipe_idcoletorfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgdelete_leitura_macfelipe` AFTER DELETE ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  macfelipe
    SET     contador = contador - 1
    WHERE   idmacfelipe = OLD.macfelipe_idmacfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgdelete_leitura_sensorfelipe` AFTER DELETE ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  sensorfelipe
    SET     contador = contador - 1
    WHERE   idsensorfelipe = OLD.sensorfelipe_idsensorfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsert_leitura_coletorfelipe` AFTER INSERT ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  coletorfelipe
    SET     contador = contador + 1
    WHERE   idcoletorfelipe = NEW.coletorfelipe_idcoletorfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsert_leitura_macfelipe` AFTER INSERT ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  macfelipe
    SET     contador = contador + 1
    WHERE   idmacfelipe = NEW.macfelipe_idmacfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsert_leitura_sensorfelipe` AFTER INSERT ON `leiturafelipe` FOR EACH ROW BEGIN
    UPDATE  sensorfelipe
    SET     contador = contador + 1
    WHERE   idsensorfelipe = NEW.sensorfelipe_idsensorfelipe;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgvalidate_insert_leitura_felipe` BEFORE INSERT ON `leiturafelipe` FOR EACH ROW BEGIN
 
    DECLARE macativo      BOOL DEFAULT 0;
    DECLARE sensorativo   BOOL DEFAULT 0;
    DECLARE coletorativo  BOOL DEFAULT 0;
 
    SELECT ativo INTO macativo
    FROM macfelipe
    WHERE idmacfelipe = NEW.macfelipe_idmacfelipe;
 
    SELECT ativo INTO sensorativo
    FROM sensorfelipe
    WHERE idsensorfelipe = NEW.sensorfelipe_idsensorfelipe;
 
    SELECT ativo INTO coletorativo
    FROM coletorfelipe
    WHERE idcoletorfelipe = NEW.coletorfelipe_idcoletorfelipe;
 
    IF macativo = 0 THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'Inserção bloqueada: MAC inativo.';
    END IF;
 
    IF sensorativo = 0 THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'Inserção bloqueada: Sensor inativo.';
    END IF;
 
    IF coletorativo = 0 THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'Inserção bloqueada: Coletor inativo.';
    END IF;
 
END
$$
DELIMITER ;

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

--
-- Estrutura para tabela `macfelipe`
--

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

--
-- Despejando dados para a tabela `macfelipe`
--

INSERT INTO `macfelipe` (`idmacfelipe`, `nome`, `contador`, `ativo`, `limite`) VALUES
('12345678901234567', '123', 2, 1, 100);

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

--
-- Estrutura para tabela `sensorfelipe`
--

CREATE TABLE `sensorfelipe` (
  `idsensorfelipe` int(10) UNSIGNED NOT NULL,
  `nome` varchar(45) DEFAULT NULL,
  `ativo` tinyint(1) DEFAULT 1,
  `limite` int(10) UNSIGNED DEFAULT 0,
  `contador` int(10) UNSIGNED DEFAULT 0,
  `unidade` varchar(10) DEFAULT NULL,
  `sigla` varchar(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `sensorfelipe`
--

INSERT INTO `sensorfelipe` (`idsensorfelipe`, `nome`, `ativo`, `limite`, `contador`, `unidade`, `sigla`) VALUES
(1, 'sensor123', 1, 10, 2, '1', 'cob');

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `coletorfelipe`
--
ALTER TABLE `coletorfelipe`
  ADD PRIMARY KEY (`idcoletorfelipe`);

--
-- Índices de tabela `leiturafelipe`
--
ALTER TABLE `leiturafelipe`
  ADD PRIMARY KEY (`idleiturafelipe`),
  ADD KEY `leitura_FKIndex1` (`macfelipe_idmacfelipe`),
  ADD KEY `leitura_FKIndex2` (`sensorfelipe_idsensorfelipe`),
  ADD KEY `leitura_FKIndex3` (`coletorfelipe_idcoletorfelipe`);

--
-- Índices de tabela `macfelipe`
--
ALTER TABLE `macfelipe`
  ADD PRIMARY KEY (`idmacfelipe`);

--
-- Índices de tabela `sensorfelipe`
--
ALTER TABLE `sensorfelipe`
  ADD PRIMARY KEY (`idsensorfelipe`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `coletorfelipe`
--
ALTER TABLE `coletorfelipe`
  MODIFY `idcoletorfelipe` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT de tabela `leiturafelipe`
--
ALTER TABLE `leiturafelipe`
  MODIFY `idleiturafelipe` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT de tabela `sensorfelipe`
--
ALTER TABLE `sensorfelipe`
  MODIFY `idsensorfelipe` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

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

--
-- Restrições para tabelas `leiturafelipe`
--
ALTER TABLE `leiturafelipe`
  ADD CONSTRAINT `leiturafelipe_ibfk_1` FOREIGN KEY (`macfelipe_idmacfelipe`) REFERENCES `macfelipe` (`idmacfelipe`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leiturafelipe_ibfk_2` FOREIGN KEY (`sensorfelipe_idsensorfelipe`) REFERENCES `sensorfelipe` (`idsensorfelipe`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leiturafelipe_ibfk_3` FOREIGN KEY (`coletorfelipe_idcoletorfelipe`) REFERENCES `coletorfelipe` (`idcoletorfelipe`) 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 */;
