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

START TRANSACTION;



--
-- Banco de dados: `julia`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `validaativojulia` (IN `$idmac` VARCHAR(17), IN `$idsensor` INT, IN `$idcoletor` INT, IN `$ativomac` INT, IN `$ativosensor` INT, IN `$ativocoletor` INT)   BEGIN

    SELECT ativo
    INTO $ativomac
    FROM macjulia
    WHERE idmacjulia = $idmac;

    SELECT ativo
    INTO $ativosensor
    FROM sensorjulia
    WHERE idsensorjulia = $idsensor;

    SELECT ativo
    INTO $ativocoletor
    FROM coletorjulia
    WHERE idcoletorjulia = $idcoletor;


END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitecoletorjulia` (IN `$idcoletor` INT, OUT `$contador` INT, OUT `$limite` INT)   BEGIN

SELECT contador, limite
INTO $contador, $limite
FROM coletorjulia
WHERE idcoletorjulia = $idcoletora;

END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitemacjulia` (IN `$idmacjulia` INT, OUT `$contador` INT, OUT `$limite` INT)   BEGIN

    SELECT contador, limite
    INTO $contador, $limite
    FROM macjulia
    WHERE idmacjulia = $idmacjulia;

END$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `verificalimitesensorjulia` (IN `$idsensorjulia` INT, OUT `$contador` INT, OUT `$limite` INT)   BEGIN

    SELECT contador, limite
    INTO $contador, $limite
    FROM sensorjulia
    WHERE idsensorjulia = $idsensorjulia;

END$$

DELIMITER ;

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

--
-- Estrutura para tabela `coletorjulia`
--

CREATE TABLE `coletorjulia` (
  `idcoletorjulia` 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 `coletorjulia`
--

INSERT INTO `coletorjulia` (`idcoletorjulia`, `nome`, `contador`, `ativo`, `limite`) VALUES
(1, 'coleotr', 2, 1, 100);

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

--
-- Estrutura para tabela `leiturajulia`
--

CREATE TABLE `leiturajulia` (
  `idleiturajulia` int(10) UNSIGNED NOT NULL,
  `sensorjulia_idsensorjulia` int(10) UNSIGNED NOT NULL,
  `coletorjulia_idcoletorjulia` int(10) UNSIGNED NOT NULL,
  `macjulia_idmacjulia` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `valor` int(10) UNSIGNED ZEROFILL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `leiturajulia`
--

INSERT INTO `leiturajulia` (`idleiturajulia`, `sensorjulia_idsensorjulia`, `coletorjulia_idcoletorjulia`, `macjulia_idmacjulia`, `dataleitura`, `horaleitura`, `valor`) VALUES
(4, 1, 1, '', '2026-06-17', '59:45:13', 0000000002),
(5, 1, 1, '', '2026-06-17', '59:45:13', 0000000002);

--
-- Acionadores `leiturajulia`
--
DELIMITER $$
CREATE TRIGGER `tgdeletejulia` AFTER DELETE ON `leiturajulia` FOR EACH ROW BEGIN
UPDATE macjulia
SET contador=contador-1
WHERE 
idmacjulia=old.macjulia_idmacjulia;


  UPDATE coletorjulia
  SET contador=contador-1
  WHERE idcoletorjulia=OLD.coletorjulia_idcoletorjulia;

  UPDATE sensorjulia
  SET contador=contador-1
  WHERE idsensorjulia=OLD.sensorjulia_idsensorjulia;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tginsertleiturajulia` AFTER INSERT ON `leiturajulia` FOR EACH ROW BEGIN
UPDATE macjulia
SET contador=contador+1
WHERE idmacjulia=new.macjulia_idmacjulia;


  UPDATE coletorjulia
  SET contador=contador+1
  WHERE idcoletorjulia=NEW.coletorjulia_idcoletorjulia;

  UPDATE sensorjulia
  SET contador=contador+1
  WHERE idsensorjulia=NEW.sensorjulia_idsensorjulia;
  
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificaativojulia` BEFORE INSERT ON `leiturajulia` FOR EACH ROW BEGIN

    CALL validaativojulia(
        NEW.macjulia_idmacjulia,
        NEW.sensorjulia_idsensorjulia,
        NEW.coletorjulia_idcoletorjulia,
        @ativomac,
        @ativosensor,
        @ativocoletor
    );

    IF @ativomac = 0 THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'Mac inativa';
    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 ;

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

--
-- Estrutura para tabela `macjulia`
--

CREATE TABLE `macjulia` (
  `idmacjulia` 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 `macjulia`
--

INSERT INTO `macjulia` (`idmacjulia`, `nome`, `contador`, `ativo`, `limite`) VALUES
('', 'julia', 4, 1, 100);

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

--
-- Estrutura para tabela `sensorjulia`
--

CREATE TABLE `sensorjulia` (
  `idsensorjulia` int(10) UNSIGNED NOT NULL,
  `nome` varchar(45) DEFAULT NULL,
  `ativo` tinyint(1) DEFAULT 1,
  `limite` int(10) UNSIGNED DEFAULT 100,
  `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 `sensorjulia`
--

INSERT INTO `sensorjulia` (`idsensorjulia`, `nome`, `ativo`, `limite`, `contador`, `unidade`, `sigla`) VALUES
(1, 'jheh', 1, 100, 3, 'dois', 'a');

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `coletorjulia`
--
ALTER TABLE `coletorjulia`
  ADD PRIMARY KEY (`idcoletorjulia`);

--
-- Índices de tabela `leiturajulia`
--
ALTER TABLE `leiturajulia`
  ADD PRIMARY KEY (`idleiturajulia`),
  ADD KEY `leitura_FKIndex1` (`macjulia_idmacjulia`),
  ADD KEY `leitura_FKIndex2` (`sensorjulia_idsensorjulia`),
  ADD KEY `leitura_FKIndex3` (`coletorjulia_idcoletorjulia`);

--
-- Índices de tabela `macjulia`
--
ALTER TABLE `macjulia`
  ADD PRIMARY KEY (`idmacjulia`);

--
-- Índices de tabela `sensorjulia`
--
ALTER TABLE `sensorjulia`
  ADD PRIMARY KEY (`idsensorjulia`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `coletorjulia`
--
ALTER TABLE `coletorjulia`
  MODIFY `idcoletorjulia` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

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

--
-- AUTO_INCREMENT de tabela `sensorjulia`
--
ALTER TABLE `sensorjulia`
  MODIFY `idsensorjulia` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

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

--
-- Restrições para tabelas `leiturajulia`
--
ALTER TABLE `leiturajulia`
  ADD CONSTRAINT `leiturajulia_ibfk_1` FOREIGN KEY (`macjulia_idmacjulia`) REFERENCES `macjulia` (`idmacjulia`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leiturajulia_ibfk_2` FOREIGN KEY (`sensorjulia_idsensorjulia`) REFERENCES `sensorjulia` (`idsensorjulia`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leiturajulia_ibfk_3` FOREIGN KEY (`coletorjulia_idcoletorjulia`) REFERENCES `coletorjulia` (`idcoletorjulia`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

