-- ============================================================
-- ERP - ActSafe | Migration: Inspeções Mobile via Link Público
-- Desenvolvido por Antônio da Luz
-- Execute este SQL no phpMyAdmin após o banco actsafe_db já existir
-- ============================================================

USE `actsafe_db`;

-- ============================================================
-- TABELA: REQUISIÇÕES DE INSPEÇÃO
-- ============================================================
CREATE TABLE IF NOT EXISTS `inspecoes` (
  `id`              INT AUTO_INCREMENT PRIMARY KEY,
  `token`           VARCHAR(64) NOT NULL UNIQUE COMMENT 'Token único para acesso público sem login',
  `titulo`          VARCHAR(200) NOT NULL,
  `descricao`       TEXT NULL,
  `norma`           ENUM('NR10','NR12','SPDA') NOT NULL,
  `unidade_id`      INT NOT NULL,
  `equipamento_id`  INT NULL,
  `tecnico_nome`    VARCHAR(150) NULL COMMENT 'Nome do técnico responsável',
  `tecnico_email`   VARCHAR(320) NULL,
  `criado_por`      INT NULL,
  `status`          ENUM('aguardando','em_andamento','concluida','cancelada') NOT NULL DEFAULT 'aguardando',
  `data_limite`     DATE NULL,
  `iniciada_em`     DATETIME NULL,
  `concluida_em`    DATETIME NULL,
  `observacoes_finais` TEXT NULL,
  `criado_em`       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `atualizado_em`   DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY (`unidade_id`)     REFERENCES `unidades`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`equipamento_id`) REFERENCES `equipamentos`(`id`) ON DELETE SET NULL,
  FOREIGN KEY (`criado_por`)     REFERENCES `usuarios`(`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ============================================================
-- TABELA: FOTOS DA INSPEÇÃO MOBILE
-- ============================================================
CREATE TABLE IF NOT EXISTS `inspecao_fotos` (
  `id`              INT AUTO_INCREMENT PRIMARY KEY,
  `inspecao_id`     INT NOT NULL,
  `arquivo`         VARCHAR(500) NOT NULL,
  `legenda`         VARCHAR(300) NULL,
  `nao_conformidade` TEXT NULL,
  `plano_acao`      TEXT NULL,
  `ordem`           INT NOT NULL DEFAULT 1,
  `criado_em`       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`inspecao_id`) REFERENCES `inspecoes`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ============================================================
-- TABELA: ITENS DO CHECKLIST DA INSPEÇÃO
-- ============================================================
CREATE TABLE IF NOT EXISTS `inspecao_checklist` (
  `id`              INT AUTO_INCREMENT PRIMARY KEY,
  `inspecao_id`     INT NOT NULL,
  `item`            VARCHAR(300) NOT NULL,
  `conforme`        TINYINT(1) NULL COMMENT 'NULL=não avaliado, 1=conforme, 0=não conforme',
  `observacao`      TEXT NULL,
  `ordem`           INT NOT NULL DEFAULT 1,
  `criado_em`       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (`inspecao_id`) REFERENCES `inspecoes`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
