-- Create Database CREATE DATABASE IF NOT EXISTS sis_odonto; USE sis_odonto; -- Tables CREATE TABLE IF NOT EXISTS pacientes ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(255) NOT NULL, cpf VARCHAR(20), telefone VARCHAR(20), email VARCHAR(255), ultimoTratamento VARCHAR(100), convenio VARCHAR(100), dataNascimento VARCHAR(20) ); CREATE TABLE IF NOT EXISTS dentistas ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(255) NOT NULL, email VARCHAR(255), telefone VARCHAR(20), corAgenda VARCHAR(10), especialidade VARCHAR(100), ativo BOOLEAN DEFAULT TRUE ); CREATE TABLE IF NOT EXISTS especialidades ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(100) NOT NULL, descricao TEXT ); CREATE TABLE IF NOT EXISTS planos ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(100) NOT NULL, tipo ENUM('Convenio', 'Particular', 'Parceria') NOT NULL, descontoPadrao INT DEFAULT 0, corCartao VARCHAR(10) ); CREATE TABLE IF NOT EXISTS procedimentos ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(255) NOT NULL, descricao TEXT, especialidadeId VARCHAR(50), especialidadeNome VARCHAR(100), valorParticular DECIMAL(10, 2), FOREIGN KEY (especialidadeId) REFERENCES especialidades(id) ); CREATE TABLE IF NOT EXISTS procedimentos_valores_planos ( id INT AUTO_INCREMENT PRIMARY KEY, procedimentoId VARCHAR(50), planoId VARCHAR(50), planoNome VARCHAR(100), valor DECIMAL(10, 2), FOREIGN KEY (procedimentoId) REFERENCES procedimentos(id), FOREIGN KEY (planoId) REFERENCES planos(id) ); CREATE TABLE IF NOT EXISTS agendamentos ( id VARCHAR(50) PRIMARY KEY, pacienteNome VARCHAR(255), dentistaId VARCHAR(50), start_time DATETIME, end_time DATETIME, status ENUM('Confirmado', 'Pendente', 'Concluido'), procedimento VARCHAR(255), observacoes TEXT, FOREIGN KEY (dentistaId) REFERENCES dentistas(id) ); CREATE TABLE IF NOT EXISTS financeiro ( id VARCHAR(50) PRIMARY KEY, pacienteNome VARCHAR(255), descricao VARCHAR(255), valor DECIMAL(10, 2), dataVencimento DATE, status ENUM('Pago', 'Pendente', 'Atrasado'), formaPagamento ENUM('Boleto', 'Pix', 'Cartão', 'Dinheiro') ); CREATE TABLE IF NOT EXISTS leads ( id VARCHAR(50) PRIMARY KEY, nome VARCHAR(100), sobrenome VARCHAR(100), cpf VARCHAR(20), whatsapp VARCHAR(20), tipoInteresse ENUM('Particular', 'Plano'), dataCadastro DATETIME, status ENUM('Novo', 'Convertido', 'Arquivado') ); CREATE TABLE IF NOT EXISTS notificacoes ( id VARCHAR(50) PRIMARY KEY, titulo VARCHAR(255), mensagem TEXT, tipo ENUM('lead', 'sistema', 'agenda'), lida BOOLEAN DEFAULT FALSE, data_notif DATETIME ); -- Seed Initial Data INSERT IGNORE INTO especialidades (id, nome, descricao) VALUES ('e1', 'ORTODONTIA', 'CORREÇÃO DA POSIÇÃO DOS DENTES E OSSOS MAXILARES'), ('e2', 'IMPLANTODONTIA', 'IMPLANTES DENTÁRIOS E REABILITAÇÃO ORAL'), ('e3', 'ENDODONTIA', 'TRATAMENTO DE CANAL E LESÕES PERIAPICAIS'), ('e4', 'CLÍNICO GERAL', 'PROCEDIMENTOS BÁSICOS, LIMPEZA E RESTAURAÇÕES'); INSERT IGNORE INTO dentistas (id, nome, email, telefone, corAgenda, especialidade, ativo) VALUES ('d1', 'MURILO AMORIM', 'muriloamorim791@gmail.com', '(67) 99999-1111', '#10B981', 'ORTODONTIA', TRUE), ('d2', 'RUI CESAR VARGAS', 'ruibto@gmail.com', '(67) 99999-2222', '#3B82F6', 'IMPLANTE', TRUE); INSERT IGNORE INTO planos (id, nome, tipo, descontoPadrao, corCartao) VALUES ('p1', 'PARTICULAR', 'Particular', 0, '#1f2937'), ('p2', 'UNIMED ODONTO', 'Convenio', 0, '#059669'), ('p3', 'ODONTOPREV', 'Convenio', 0, '#dc2626'), ('p4', 'PARCERIA SINDICATO', 'Parceria', 15, '#2563eb'); INSERT IGNORE INTO pacientes (id, nome, cpf, telefone, email, ultimoTratamento, convenio, dataNascimento) VALUES ('1', 'WESLLEY ANTONY TELLES DA SILVA', '702.013.331-20', '(67) 98125-2514', 'WESLLEY@EMAIL.COM', 'ORTO', 'CASSEMS', '17/08/2000'), ('2', 'NICOLLY BEATRIZ TEIXEIRA', '101.034.232-06', '(67) 99904-7557', 'NICOLLY@EMAIL.COM', 'LIMPEZA', 'ODONTOSEG', '22/09/2010'), ('3', 'ROSANGELA DUTRA', '917.670.830-68', '(67) 9272-2487', 'ROSANGELA@EMAIL.COM', NULL, 'CASSEMS', '23/11/1978'); INSERT IGNORE INTO procedimentos (id, nome, descricao, especialidadeId, especialidadeNome, valorParticular) VALUES ('proc1', 'CONSULTA INICIAL', 'AVALIAÇÃO INICIAL E PLANO DE TRATAMENTO', 'e4', 'CLÍNICO GERAL', 150.00), ('proc2', 'MANUTENÇÃO ORTODÔNTICA', 'MANUTENÇÃO MENSAL DE APARELHO FIXO', 'e1', 'ORTODONTIA', 250.00); INSERT IGNORE INTO procedimentos_valores_planos (procedimentoId, planoId, planoNome, valor) VALUES ('proc1', 'p2', 'UNIMED ODONTO', 80.00), ('proc1', 'p3', 'ODONTOPREV', 75.00); INSERT IGNORE INTO financeiro (id, pacienteNome, descricao, valor, dataVencimento, status, formaPagamento) VALUES ('f1', 'WESLLEY ANTONY', 'MANUTENÇÃO MENSAL ORTO', 150.00, '2023-10-15', 'Pago', 'Pix'), ('f2', 'NICOLLY BEATRIZ', 'ENTRADA IMPLANTE', 1200.00, '2023-10-20', 'Pendente', 'Boleto');