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

START TRANSACTION;



--
-- Banco de dados: `bancomilena`
--

DELIMITER $$
--
-- Procedimentos
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `validamacmilena` (IN `$idmac` VARCHAR(17), IN `$idsensor` INT, IN `$idcoletor` INT, OUT `$ativomac` BOOLEAN, OUT `$ativosensor` BOOLEAN, OUT `$ativocoletor` BOOLEAN)   BEGIN
Select ativo into $ativomac from macmilena 
WHERE idmacmilena=$idmac;
Select ativo into $ativosensor from sensormilena 
WHERE idsensormilena=$idsensor;
Select ativo into $ativocoletor from coletormilena
WHERE idcoletormilena=$idcoletor;
END$$

DELIMITER ;

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

--
-- Estrutura para tabela `coletormilena`
--

CREATE TABLE `coletormilena` (
  `idcoletormilena` 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 `coletormilena`
--

INSERT INTO `coletormilena` (`idcoletormilena`, `nome`, `contador`, `ativo`, `limite`) VALUES
(1, 'labf53', 0, 1, 100);

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

--
-- Estrutura para tabela `leituramilena`
--

CREATE TABLE `leituramilena` (
  `idleituramilena` int(10) UNSIGNED NOT NULL,
  `sensormilena_idsensormilena` int(10) UNSIGNED NOT NULL,
  `coletormilena_idcoletormilena` int(10) UNSIGNED NOT NULL,
  `macmilena_idmacmilena` varchar(17) NOT NULL,
  `dataleitura` date DEFAULT NULL,
  `horaleitura` time DEFAULT NULL,
  `valor` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Despejando dados para a tabela `leituramilena`
--

INSERT INTO `leituramilena` (`idleituramilena`, `sensormilena_idsensormilena`, `coletormilena_idcoletormilena`, `macmilena_idmacmilena`, `dataleitura`, `horaleitura`, `valor`) VALUES
(1, 1, 1, 'macmilena', '2026-06-11', '14:00:08', 3);

--
-- Acionadores `leituramilena`
--
DELIMITER $$
CREATE TRIGGER `tgdeleteleituramilena` AFTER DELETE ON `leituramilena` FOR EACH ROW BEGIN
    UPDATE macmilena 
    SET contador = contador - 1 
    WHERE idmacmilena = OLD.macmilena_idmacmilena;

    UPDATE coletormilena 
    SET contador = contador - 1 
    WHERE idcoletormilena = OLD.coletormilena_idcoletormilena;

    UPDATE sensormilena 
    SET contador = contador - 1 
    WHERE idsensormilena = OLD.sensormilena_idsensormilena;
END
$$
DELIMITER ;
DELIMITER $$
CREATE TRIGGER `tgverificamacmilena` BEFORE INSERT ON `leituramilena` FOR EACH ROW BEGIN
CALL validamacmilena(
    new.macmilena_idmacmilena, 
    new.sensormilena_idsensormilena, 
    new.coletormilena_idcoletormilena, 
    @ativomac,
    @ativosensor,
    @ativocoletor
);

if @ativocoletor=0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'COLETOR INATIVO';
end if ; 

if @ativosensor=0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'SENSOR INATIVO';
end if ; 

if @ativomac=0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'MAC INATIVO';
end if ; 
END
$$
DELIMITER ;

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

--
-- Estrutura para tabela `macmilena`
--

CREATE TABLE `macmilena` (
  `idmacmilena` 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 `macmilena`
--

INSERT INTO `macmilena` (`idmacmilena`, `nome`, `contador`, `ativo`, `limite`) VALUES
('macmilena', 'macmilena', 0, 1, 100);

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

--
-- Estrutura para tabela `sensormilena`
--

CREATE TABLE `sensormilena` (
  `idsensormilena` 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 `sensormilena`
--

INSERT INTO `sensormilena` (`idsensormilena`, `nome`, `ativo`, `limite`, `contador`, `unidade`, `sigla`) VALUES
(1, 'milena', 1, 100, 0, NULL, NULL);

--
-- Índices para tabelas despejadas
--

--
-- Índices de tabela `coletormilena`
--
ALTER TABLE `coletormilena`
  ADD PRIMARY KEY (`idcoletormilena`);

--
-- Índices de tabela `leituramilena`
--
ALTER TABLE `leituramilena`
  ADD PRIMARY KEY (`idleituramilena`),
  ADD KEY `leitura_FKIndex1` (`macmilena_idmacmilena`),
  ADD KEY `leitura_FKIndex2` (`sensormilena_idsensormilena`),
  ADD KEY `leitura_FKIndex3` (`coletormilena_idcoletormilena`);

--
-- Índices de tabela `macmilena`
--
ALTER TABLE `macmilena`
  ADD PRIMARY KEY (`idmacmilena`);

--
-- Índices de tabela `sensormilena`
--
ALTER TABLE `sensormilena`
  ADD PRIMARY KEY (`idsensormilena`);

--
-- AUTO_INCREMENT para tabelas despejadas
--

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

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

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

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

--
-- Restrições para tabelas `leituramilena`
--
ALTER TABLE `leituramilena`
  ADD CONSTRAINT `leituramilena_ibfk_1` FOREIGN KEY (`macmilena_idmacmilena`) REFERENCES `macmilena` (`idmacmilena`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leituramilena_ibfk_2` FOREIGN KEY (`sensormilena_idsensormilena`) REFERENCES `sensormilena` (`idsensormilena`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `leituramilena_ibfk_3` FOREIGN KEY (`coletormilena_idcoletormilena`) REFERENCES `coletormilena` (`idcoletormilena`) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;

