-- https://www.phpmyadmin.net/
--
-- Tempo de geração: 13-Jul-2025 às 19:48
-- Versão do servidor: 10.4.32-MariaDB
-- versão do PHP: 8.2.12

START TRANSACTION;



--
-- Banco de dados: `clinica_encaminhamento`
--

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

--
-- Estrutura da tabela `agendamentos`
--

CREATE TABLE `agendamentos` (
  `id` int(11) NOT NULL,
  `paciente_id` int(11) NOT NULL,
  `clinica_id` int(11) NOT NULL,
  `especialidade_id` int(11) NOT NULL,
  `procedimento_id` int(11) DEFAULT NULL,
  `data_consulta` date NOT NULL,
  `hora_consulta` time NOT NULL,
  `status_agendamento` enum('agendado','confirmado','realizado','cancelado') DEFAULT 'agendado',
  `observacoes` text DEFAULT NULL,
  `data_agendamento` timestamp NOT NULL DEFAULT current_timestamp(),
  `ultima_atualizacao` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `agendamentos`
--

-- (sem dados de exemplo — cadastre via sistema)

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

--
-- Estrutura da tabela `clinicas_parceiras`
--

CREATE TABLE `clinicas_parceiras` (
  `id` int(11) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `razao_social` varchar(150) DEFAULT NULL,
  `cnpj` varchar(18) DEFAULT NULL,
  `responsavel` varchar(100) DEFAULT NULL,
  `endereco` varchar(150) NOT NULL,
  `numero` varchar(10) DEFAULT NULL,
  `complemento` varchar(50) DEFAULT NULL,
  `bairro` varchar(50) DEFAULT NULL,
  `cidade` varchar(50) NOT NULL,
  `estado` char(2) NOT NULL,
  `cep` varchar(9) DEFAULT NULL,
  `telefone` varchar(15) NOT NULL,
  `celular` varchar(15) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  `site` varchar(100) DEFAULT NULL,
  `data_cadastro` timestamp NOT NULL DEFAULT current_timestamp(),
  `ultima_atualizacao` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `status` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `clinicas_parceiras`
-- (sem dados de exemplo — cadastre via setup.php)

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

--
-- Estrutura da tabela `configuracoes`
--

CREATE TABLE `configuracoes` (
  `id` int(11) NOT NULL,
  `chave` varchar(50) NOT NULL,
  `valor` text DEFAULT NULL,
  `tipo` varchar(20) NOT NULL DEFAULT 'texto',
  `descricao` text DEFAULT NULL,
  `data_atualizacao` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `configuracoes`
--

INSERT INTO `configuracoes` (`id`, `chave`, `valor`, `tipo`, `descricao`, `data_atualizacao`) VALUES
(1, 'nome_clinica', 'Clínica de Encaminhamento', 'texto', 'Nome da clínica', '2025-05-01 03:12:39'),
(2, 'endereco_clinica', 'Endereço da Clínica', 'texto', 'Endereço completo da clínica', '2025-05-01 03:12:39'),
(3, 'telefone_clinica', '(00) 0000-0000', 'texto', 'Telefone principal da clínica', '2025-05-01 03:12:39'),
(4, 'email_clinica', 'contato@clinica.com', 'texto', 'E-mail de contato da clínica', '2025-05-01 03:12:39'),
(5, 'logo', '', 'arquivo', 'Logo da clínica', '2025-05-01 03:12:39'),
(6, 'qtd_itens_paginacao', '10', 'numero', 'Quantidade de itens por página nas listagens', '2025-05-01 03:12:39'),
(7, 'permitir_agendamento_simultaneo', '0', 'booleano', 'Permitir agendamento de consultas em horários simultâneos', '2025-05-01 03:12:39'),
(8, 'intervalo_consultas', '30', 'numero', 'Intervalo entre consultas em minutos', '2025-05-01 03:12:39'),
(9, 'hora_inicio_atendimento', '08:00', 'hora', 'Hora de início do atendimento', '2025-05-01 03:12:39'),
(10, 'hora_fim_atendimento', '18:00', 'hora', 'Hora de término do atendimento', '2025-05-01 03:12:39'),
(11, 'dias_atendimento', '1,2,3,4,5', 'lista', 'Dias da semana com atendimento (1=Segunda a 7=Domingo)', '2025-05-01 03:12:39');

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

--
-- Estrutura da tabela `especialidades`
--

CREATE TABLE `especialidades` (
  `id` int(11) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `descricao` text DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `especialidades`
--

-- (sem dados de exemplo — cadastre via sistema)

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

--
-- Estrutura da tabela `especialidades_clinicas`
--

CREATE TABLE `especialidades_clinicas` (
  `id` int(11) NOT NULL,
  `clinica_id` int(11) NOT NULL,
  `especialidade_id` int(11) NOT NULL,
  `observacoes` text DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `especialidades_clinicas`
--

-- (sem dados de exemplo — cadastre via sistema)

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

--
-- Estrutura da tabela `guias_encaminhamento`
--

CREATE TABLE `guias_encaminhamento` (
  `id` int(11) NOT NULL,
  `paciente_id` int(11) NOT NULL,
  `procedimento_id` int(11) NOT NULL,
  `data_agendamento` date NOT NULL,
  `horario_agendamento` time DEFAULT NULL,
  `observacoes` text DEFAULT NULL,
  `status` enum('agendado','realizado','cancelado') NOT NULL DEFAULT 'agendado',
  `data_emissao` datetime NOT NULL,
  `codigo` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

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

--
-- Estrutura da tabela `notificacoes`
--

CREATE TABLE `notificacoes` (
  `id` int(11) NOT NULL,
  `tipo` varchar(50) NOT NULL,
  `icone` varchar(50) NOT NULL,
  `cor` varchar(20) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `mensagem` text DEFAULT NULL,
  `link` varchar(255) DEFAULT NULL,
  `lida` tinyint(1) DEFAULT 0,
  `usuario_id` int(11) DEFAULT NULL,
  `data_criacao` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `notificacoes`
--

-- (sem dados de exemplo)

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

--
-- Estrutura da tabela `pacientes`
--

CREATE TABLE `pacientes` (
  `id` int(11) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `data_nascimento` date NOT NULL,
  `cpf` varchar(14) NOT NULL,
  `rg` varchar(20) DEFAULT NULL,
  `sexo` enum('M','F','O') NOT NULL,
  `endereco` varchar(150) DEFAULT NULL,
  `numero` varchar(10) DEFAULT NULL,
  `complemento` varchar(50) DEFAULT NULL,
  `bairro` varchar(50) DEFAULT NULL,
  `cidade` varchar(50) NOT NULL,
  `estado` char(2) NOT NULL,
  `cep` varchar(9) DEFAULT NULL,
  `telefone_fixo` varchar(15) DEFAULT NULL,
  `celular` varchar(15) NOT NULL,
  `email` varchar(100) DEFAULT NULL,
  `convenio` varchar(50) DEFAULT NULL,
  `numero_carteirinha` varchar(30) DEFAULT NULL,
  `observacoes` text DEFAULT NULL,
  `data_cadastro` timestamp NOT NULL DEFAULT current_timestamp(),
  `ultima_atualizacao` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `status` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `pacientes`
--

-- (sem dados de exemplo)

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

--
-- Estrutura da tabela `procedimentos_clinicas`
--

CREATE TABLE `procedimentos_clinicas` (
  `id` int(11) NOT NULL,
  `procedimento_id` int(11) DEFAULT NULL,
  `clinica_id` int(11) DEFAULT NULL,
  `valor` decimal(10,2) DEFAULT NULL,
  `observacoes` text DEFAULT NULL,
  `status` tinyint(4) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Estrutura da tabela `usuarios`
--

CREATE TABLE `usuarios` (
  `id` int(11) NOT NULL,
  `nome` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `senha` varchar(255) NOT NULL,
  `nivel_acesso` enum('admin','recepcionista','medico') NOT NULL,
  `ultimo_acesso` timestamp NULL DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1,
  `data_cadastro` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dados da tabela `usuarios`
-- Comentado: o administrador é criado pelo Setup Wizard (setup.php) na primeira execução
--
-- INSERT INTO `usuarios` (`id`, `nome`, `email`, `senha`, `nivel_acesso`, `ultimo_acesso`, `status`, `data_cadastro`) VALUES
-- (5, 'Administrador', 'hueltonti@gmail.com', '$2y$10$c/nR/6KjVlTk1WBAl16oTOmbGBurOGcUAOHwZT9yG3YfthS/5AAua', 'admin', '2025-07-13 17:33:18', 1, '2025-05-08 23:34:39');

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

--
-- Estrutura da tabela `valores_procedimentos`
--

CREATE TABLE `valores_procedimentos` (
  `id` int(11) NOT NULL,
  `especialidade_id` int(11) NOT NULL,
  `procedimento` varchar(150) NOT NULL,
  `valor` decimal(10,2) NOT NULL,
  `status` tinyint(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Extraindo dados da tabela `valores_procedimentos`
--

-- (sem dados de exemplo)

--
-- Índices para tabelas despejadas
--

--
-- Índices para tabela `agendamentos`
--
ALTER TABLE `agendamentos`
  ADD PRIMARY KEY (`id`),
  ADD KEY `paciente_id` (`paciente_id`),
  ADD KEY `clinica_id` (`clinica_id`),
  ADD KEY `especialidade_id` (`especialidade_id`),
  ADD KEY `fk_agendamento_procedimento` (`procedimento_id`);

--
-- Índices para tabela `clinicas_parceiras`
--
ALTER TABLE `clinicas_parceiras`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `cnpj` (`cnpj`);

--
-- Índices para tabela `configuracoes`
--
ALTER TABLE `configuracoes`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `chave` (`chave`);

--
-- Índices para tabela `especialidades`
--
ALTER TABLE `especialidades`
  ADD PRIMARY KEY (`id`);

--
-- Índices para tabela `especialidades_clinicas`
--
ALTER TABLE `especialidades_clinicas`
  ADD PRIMARY KEY (`id`),
  ADD KEY `clinica_id` (`clinica_id`),
  ADD KEY `especialidade_id` (`especialidade_id`);

--
-- Índices para tabela `guias_encaminhamento`
--
ALTER TABLE `guias_encaminhamento`
  ADD PRIMARY KEY (`id`),
  ADD KEY `fk_guia_paciente` (`paciente_id`),
  ADD KEY `fk_guia_procedimento` (`procedimento_id`);

--
-- Índices para tabela `notificacoes`
--
ALTER TABLE `notificacoes`
  ADD PRIMARY KEY (`id`),
  ADD KEY `usuario_id` (`usuario_id`);

--
-- Índices para tabela `pacientes`
--
ALTER TABLE `pacientes`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `cpf` (`cpf`);

--
-- Índices para tabela `procedimentos_clinicas`
--
ALTER TABLE `procedimentos_clinicas`
  ADD PRIMARY KEY (`id`);

--
-- Índices para tabela `usuarios`
--
ALTER TABLE `usuarios`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `email` (`email`);

--
-- Índices para tabela `valores_procedimentos`
--
ALTER TABLE `valores_procedimentos`
  ADD PRIMARY KEY (`id`),
  ADD KEY `especialidade_id` (`especialidade_id`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `agendamentos`
--
ALTER TABLE `agendamentos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `clinicas_parceiras`
--
ALTER TABLE `clinicas_parceiras`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `configuracoes`
--
ALTER TABLE `configuracoes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT de tabela `especialidades`
--
ALTER TABLE `especialidades`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `especialidades_clinicas`
--
ALTER TABLE `especialidades_clinicas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `guias_encaminhamento`
--
ALTER TABLE `guias_encaminhamento`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `notificacoes`
--
ALTER TABLE `notificacoes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `pacientes`
--
ALTER TABLE `pacientes`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `procedimentos_clinicas`
--
ALTER TABLE `procedimentos_clinicas`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT de tabela `usuarios`
--
ALTER TABLE `usuarios`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- AUTO_INCREMENT de tabela `valores_procedimentos`
--
ALTER TABLE `valores_procedimentos`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

--
-- Restrições para despejos de tabelas
--

--
-- Limitadores para a tabela `agendamentos`
--
ALTER TABLE `agendamentos`
  ADD CONSTRAINT `agendamentos_ibfk_1` FOREIGN KEY (`paciente_id`) REFERENCES `pacientes` (`id`),
  ADD CONSTRAINT `agendamentos_ibfk_2` FOREIGN KEY (`clinica_id`) REFERENCES `clinicas_parceiras` (`id`),
  ADD CONSTRAINT `agendamentos_ibfk_3` FOREIGN KEY (`especialidade_id`) REFERENCES `especialidades` (`id`),
  ADD CONSTRAINT `fk_agendamento_procedimento` FOREIGN KEY (`procedimento_id`) REFERENCES `valores_procedimentos` (`id`);

--
-- Limitadores para a tabela `especialidades_clinicas`
--
ALTER TABLE `especialidades_clinicas`
  ADD CONSTRAINT `especialidades_clinicas_ibfk_1` FOREIGN KEY (`clinica_id`) REFERENCES `clinicas_parceiras` (`id`),
  ADD CONSTRAINT `especialidades_clinicas_ibfk_2` FOREIGN KEY (`especialidade_id`) REFERENCES `especialidades` (`id`);

--
-- Limitadores para a tabela `guias_encaminhamento`
--
ALTER TABLE `guias_encaminhamento`
  ADD CONSTRAINT `fk_guia_paciente` FOREIGN KEY (`paciente_id`) REFERENCES `pacientes` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_guia_procedimento` FOREIGN KEY (`procedimento_id`) REFERENCES `valores_procedimentos` (`id`);

--
-- Limitadores para a tabela `notificacoes`
--
ALTER TABLE `notificacoes`
  ADD CONSTRAINT `notificacoes_ibfk_1` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE;

--
-- Limitadores para a tabela `valores_procedimentos`
--
ALTER TABLE `valores_procedimentos`
  ADD CONSTRAINT `valores_procedimentos_ibfk_1` FOREIGN KEY (`especialidade_id`) REFERENCES `especialidades` (`id`);
COMMIT;

