Files
GTI_GERENCIADOR_FISCAL/gerenciador/tests/db/schema.sql
T

129 lines
5.5 KiB
SQL

-- Schema DDL-only para o MySQL de TESTE local do painel-clientes-web ("GTI Gerenciador").
--
-- Nenhum dado real de cliente. Nenhum INSERT. Só estrutura, reconstruída
-- a partir de fontes autoritativas já existentes no próprio código-fonte
-- (nunca inventada) -- a origem de cada tabela está anotada abaixo.
--
-- Uso: ver gerenciador/README.md, seção "Ambiente de teste local (MySQL descartável)".
-- =====================================================================
-- CLIENTE
-- Fonte: licenciamento-n8n/docs/MAPEAMENTO_BANCO.md (CREATE TABLE original,
-- SHOW CREATE TABLE confirmado contra o banco de dev) + coluna ATIVO
-- documentada como ALTER TABLE manual em app/db/clientes.py (docstring do
-- módulo). Ambas as fontes vivem fora deste subtree (repositório original
-- BLOQUEIO SGV) -- lidas apenas como referência de schema, nunca copiadas
-- como dado.
-- =====================================================================
CREATE TABLE CLIENTE (
ID int(10) unsigned NOT NULL AUTO_INCREMENT,
CODIGO varchar(6) NOT NULL,
CNPJ varchar(20) NOT NULL,
RAZAO varchar(60) NOT NULL,
FANTASIA varchar(45) NOT NULL,
IE varchar(20) NOT NULL,
ENDERECO varchar(45) NOT NULL,
CIDADE varchar(45) NOT NULL,
BAIRRO varchar(45) NOT NULL,
UF char(2) NOT NULL,
CONTATO varchar(45) NOT NULL,
TELEFONE varchar(14) NOT NULL,
CELULAR varchar(14) NOT NULL,
CEP varchar(10) NOT NULL,
IMPLANTACAO decimal(15,2) NOT NULL,
MENSALIDADE decimal(15,2) NOT NULL,
JUROS_MORA decimal(15,2) NOT NULL,
JUROS_MULTA decimal(15,2) NOT NULL,
DATA_CONTRATO date NOT NULL,
EMAIL varchar(80) NOT NULL,
OBS varchar(250) DEFAULT NULL,
VENCIMENTO_CONTRATO date NOT NULL,
DIA_VENCIMENTO char(2) NOT NULL,
ATIVO TINYINT(1) NOT NULL DEFAULT 1,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- =====================================================================
-- CLIENTE_CONTATO
-- Fonte: NÃO existe um CREATE TABLE literal documentado em nenhum arquivo
-- encontrado (docs/CANDIDATO_CLIENTE_CONTATO.md descreve a tabela e cita
-- "ver mensagem anterior" para o DDL exato, que não está em nenhum arquivo
-- do repositório). Reconstruída a partir do uso real e exclusivo da tabela
-- em app/db/contatos.py (todas as colunas referenciadas em SELECT/INSERT/
-- UPDATE: ID, CLIENTE_ID, NOME, TELEFONE, EMAIL) + o comportamento de FK
-- descrito no docstring do mesmo módulo ("CLIENTE_ID FK real, ON DELETE
-- RESTRICT ON UPDATE CASCADE" para CLIENTE.ID). Nenhuma coluna foi
-- inventada além do que o próprio código exige para funcionar.
-- =====================================================================
CREATE TABLE CLIENTE_CONTATO (
ID int(10) unsigned NOT NULL AUTO_INCREMENT,
CLIENTE_ID int(10) unsigned NOT NULL,
NOME varchar(80) DEFAULT NULL,
TELEFONE varchar(20) NOT NULL,
EMAIL varchar(80) DEFAULT NULL,
PRIMARY KEY (ID),
KEY IDX_CLIENTE_CONTATO_CLIENTE_ID (CLIENTE_ID),
CONSTRAINT FK_CLIENTE_CONTATO_CLIENTE FOREIGN KEY (CLIENTE_ID)
REFERENCES CLIENTE (ID) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- =====================================================================
-- Clientes_Chaves (legado, o painel só LÊ, nunca escreve)
-- Fonte: licenciamento-n8n/docs/MAPEAMENTO_BANCO.md (CREATE TABLE original,
-- SHOW CREATE TABLE confirmado contra o banco de dev).
-- =====================================================================
CREATE TABLE Clientes_Chaves (
ID varchar(6) NOT NULL,
M1 varchar(30) NOT NULL,
M2 varchar(30) NOT NULL,
M3 varchar(30) NOT NULL,
M4 varchar(30) NOT NULL,
M5 varchar(30) NOT NULL,
M6 varchar(30) NOT NULL,
M7 varchar(30) NOT NULL,
M8 varchar(30) NOT NULL,
M9 varchar(30) NOT NULL,
M10 varchar(30) NOT NULL,
M11 varchar(30) NOT NULL,
M12 varchar(30) NOT NULL,
Cliente varchar(40) NOT NULL,
Prorrogacao date NOT NULL,
PRIMARY KEY (ID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- =====================================================================
-- FUNCIONARIO_PAINEL
-- Fonte: CREATE TABLE + ALTER TABLE (coluna PERFIL) documentados
-- integralmente no docstring de app/db/funcionarios.py (dentro deste
-- mesmo subtree, gerenciador/), já com a coluna PERFIL incorporada.
-- =====================================================================
CREATE TABLE FUNCIONARIO_PAINEL (
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
NOME VARCHAR(80) NOT NULL,
LOGIN VARCHAR(40) NOT NULL,
SENHA_HASH VARCHAR(255) NOT NULL,
PERFIL ENUM('ADMIN','PADRAO') NOT NULL DEFAULT 'ADMIN',
ATIVO TINYINT(1) NOT NULL DEFAULT 1,
CRIADO_EM DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (ID),
UNIQUE KEY UQ_FUNCIONARIO_PAINEL_LOGIN (LOGIN)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- =====================================================================
-- LOG_PAINEL
-- Fonte: CREATE TABLE documentado integralmente no docstring de
-- app/db/log.py (dentro deste mesmo subtree, gerenciador/).
-- =====================================================================
CREATE TABLE LOG_PAINEL (
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
CRIADO_EM DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
USUARIO VARCHAR(60) NOT NULL,
ACAO VARCHAR(40) NOT NULL,
ENTIDADE VARCHAR(20) NOT NULL,
ENTIDADE_ID VARCHAR(20) DEFAULT NULL,
SUCESSO TINYINT(1) NOT NULL,
DETALHE VARCHAR(500) DEFAULT NULL,
PRIMARY KEY (ID),
KEY IDX_LOG_PAINEL_CRIADO_EM (CRIADO_EM)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;