-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `gestao_docs`
--

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

--
-- Table structure for table `configuracoes_frequencia_status`
--

CREATE TABLE `configuracoes_frequencia_status` (
  `id` int NOT NULL,
  `status_documento` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `frequencia_envio` enum('unico','diario','cada_x_dias') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'unico',
  `intervalo_dias` int DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `contadores`
--

CREATE TABLE `contadores` (
  `id` int NOT NULL,
  `nome` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `telefone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `data_cadastro` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ativo` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `documentos`
--

CREATE TABLE `documentos` (
  `id` int NOT NULL,
  `id_empresa` int NOT NULL,
  `id_tipo_documento` int NOT NULL,
  `nome_documento` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `data_emissao` date NOT NULL,
  `data_vencimento` date NOT NULL,
  `prazo_aviso_dias` int NOT NULL,
  `caminho_arquivo` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `link_documento` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `emitido_por_contador` tinyint(1) NOT NULL DEFAULT '0',
  `observacoes` text COLLATE utf8mb4_unicode_ci,
  `data_upload` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `status_documento` enum('Válido','Próximo do Vencimento','Vencido','Não Aplicável') COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `documento_destinatarios_notificacao`
--

CREATE TABLE `documento_destinatarios_notificacao` (
  `id` int NOT NULL,
  `id_documento` int NOT NULL,
  `nome_destinatario` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email_destinatario` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `telefone_destinatario` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `empresas`
--

CREATE TABLE `empresas` (
  `id` int NOT NULL,
  `nome_fantasia` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `razao_social` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `cnpj` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL,
  `id_contador_principal` int DEFAULT NULL,
  `data_cadastro` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ativo` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `links_compartilhamento`
--

CREATE TABLE `links_compartilhamento` (
  `id` int NOT NULL,
  `uuid` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL,
  `id_empresa` int NOT NULL,
  `id_tipo_documento` int DEFAULT NULL,
  `data_criacao` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `data_expiracao` datetime DEFAULT NULL,
  `ativo` tinyint(1) NOT NULL DEFAULT '1',
  CONSTRAINT `fk_tipo_documento` FOREIGN KEY (`id_tipo_documento`) REFERENCES `tipos_documentos`(`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `log_envio_notificacoes`
--

CREATE TABLE `log_envio_notificacoes` (
  `id` int NOT NULL,
  `id_documento` int NOT NULL,
  `status_documento` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `data_envio` datetime NOT NULL,
  `destinatario` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `templates_email`
--

CREATE TABLE `templates_email` (
  `id` int NOT NULL,
  `nome_template` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `assunto` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `corpo_html` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `data_criacao` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ativo` tinyint(1) NOT NULL DEFAULT '1',
  `status_destino` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Válido'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Table structure for table `tipos_documentos`
--

CREATE TABLE `tipos_documentos` (
  `id` int NOT NULL,
  `nome_tipo` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `configuracoes_frequencia_status`
--
ALTER TABLE `configuracoes_frequencia_status`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `contadores`
--
ALTER TABLE `contadores`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);

--
-- Indexes for table `documentos`
--
ALTER TABLE `documentos`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id_empresa` (`id_empresa`),
  ADD KEY `id_tipo_documento` (`id_tipo_documento`);

--
-- Indexes for table `documento_destinatarios_notificacao`
--
ALTER TABLE `documento_destinatarios_notificacao`
  ADD PRIMARY KEY (`id`),
  ADD KEY `id_documento` (`id_documento`);

--
-- Indexes for table `empresas`
--
ALTER TABLE `empresas`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `cnpj` (`cnpj`),
  ADD KEY `id_contador_principal` (`id_contador_principal`);

--
-- Indexes for table `links_compartilhamento`
--
ALTER TABLE `links_compartilhamento`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uuid` (`uuid`),
  ADD KEY `id_empresa` (`id_empresa`);

--
-- Indexes for table `log_envio_notificacoes`
--
ALTER TABLE `log_envio_notificacoes`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `templates_email`
--
ALTER TABLE `templates_email`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `nome_template` (`nome_template`);

--
-- Indexes for table `tipos_documentos`
--
ALTER TABLE `tipos_documentos`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `nome_tipo` (`nome_tipo`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `configuracoes_frequencia_status`
--
ALTER TABLE `configuracoes_frequencia_status`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `contadores`
--
ALTER TABLE `contadores`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `documentos`
--
ALTER TABLE `documentos`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `documento_destinatarios_notificacao`
--
ALTER TABLE `documento_destinatarios_notificacao`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `empresas`
--
ALTER TABLE `empresas`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `links_compartilhamento`
--
ALTER TABLE `links_compartilhamento`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `log_envio_notificacoes`
--
ALTER TABLE `log_envio_notificacoes`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `templates_email`
--
ALTER TABLE `templates_email`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `tipos_documentos`
--
ALTER TABLE `tipos_documentos`
  MODIFY `id` int NOT NULL AUTO_INCREMENT;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `documentos`
--
ALTER TABLE `documentos`
  ADD CONSTRAINT `documentos_ibfk_1` FOREIGN KEY (`id_empresa`) REFERENCES `empresas` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `documentos_ibfk_2` FOREIGN KEY (`id_tipo_documento`) REFERENCES `tipos_documentos` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `documento_destinatarios_notificacao`
--
ALTER TABLE `documento_destinatarios_notificacao`
  ADD CONSTRAINT `documento_destinatarios_notificacao_ibfk_1` FOREIGN KEY (`id_documento`) REFERENCES `documentos` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `empresas`
--
ALTER TABLE `empresas`
  ADD CONSTRAINT `empresas_ibfk_1` FOREIGN KEY (`id_contador_principal`) REFERENCES `contadores` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `links_compartilhamento`
--
ALTER TABLE `links_compartilhamento`
  ADD CONSTRAINT `links_compartilhamento_ibfk_1` FOREIGN KEY (`id_empresa`) REFERENCES `empresas` (`id`) ON DELETE CASCADE;
COMMIT;

