first commit

This commit is contained in:
Claudecio Martins
2025-10-21 16:51:43 +02:00
commit 044c6bd587
4215 changed files with 422857 additions and 0 deletions

View File

@@ -0,0 +1,105 @@
-- ===============================================================================================================
-- Status da Empresa
-- ===============================================================================================================
CREATE TABLE IF NOT EXISTS public.empresa_status (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
descricao VARCHAR(255) NOT NULL
);
INSERT INTO public.empresa_status (id, descricao) VALUES
(1, 'Ativa'),
(2, 'Inativa'),
(3, 'Pendente'),
(4, 'Suspensa');
SELECT setval(pg_get_serial_sequence('public.empresa_status','id'), (SELECT MAX(id) FROM public.empresa_status));
-- ===============================================================================================================
-- Empresa Tipo Unidade
-- ===============================================================================================================
CREATE TABLE IF NOT EXISTS public.empresa_tipo_unidade (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
descricao VARCHAR(255) NOT NULL
);
INSERT INTO public.empresa_tipo_unidade (id, descricao) VALUES
(1, 'Matriz'),
(2, 'Filial');
SELECT setval(pg_get_serial_sequence('public.empresa_tipo_unidade','id'), (SELECT MAX(id) FROM public.empresa_tipo_unidade));
-- ===============================================================================================================
-- Empresa
-- ===============================================================================================================
CREATE TABLE IF NOT EXISTS public.empresa (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
uuid UUID NOT NULL UNIQUE,
status_id BIGINT NOT NULL DEFAULT 1 REFERENCES public.empresa_status(id) ON UPDATE CASCADE ON DELETE RESTRICT,
-- Dados da Empresa
tipo_unidade_id BIGINT NOT NULL DEFAULT 1 REFERENCES public.empresa_tipo_unidade(id) ON UPDATE CASCADE ON DELETE RESTRICT,
razao_social VARCHAR(255) NOT NULL,
nome_fantasia VARCHAR(255) DEFAULT NULL,
inscricao_tipo_id BIGINT DEFAULT 1 NOT NULL REFERENCES esocial.tab_05(id) ON UPDATE CASCADE ON DELETE RESTRICT,
document_inscricao VARCHAR(20) NOT NULL UNIQUE,
inscricao_raiz VARCHAR(20) NOT NULL,
-- Endereço
endereco_codigo_ibge BIGINT DEFAULT NULL,
endereco_cep VARCHAR(10) DEFAULT NULL,
endereco_logradouro VARCHAR(255) DEFAULT NULL,
endereco_numero VARCHAR(20) DEFAULT NULL,
endereco_complemento VARCHAR(255) DEFAULT NULL,
endereco_bairro VARCHAR(100) DEFAULT NULL,
endereco_cidade VARCHAR(100) DEFAULT NULL,
endereco_estado VARCHAR(2) DEFAULT NULL,
-- Contato
contato_email VARCHAR(255) DEFAULT NULL,
contato_celular VARCHAR(20) DEFAULT NULL,
contato_telefone VARCHAR(20) DEFAULT NULL,
responsavel_nome VARCHAR(255) DEFAULT NULL,
responsavel_cargo VARCHAR(100) DEFAULT NULL,
responsavel_email VARCHAR(255) DEFAULT NULL,
responsavel_telefone VARCHAR(20) DEFAULT NULL,
responsavel_document_cpf CHAR(11) DEFAULT NULL,
-- Metadados
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT NULL,
deleted_at TIMESTAMP DEFAULT NULL
);
-- ===============================================================================================================
-- Empresa Certificado Digital
-- ===============================================================================================================
CREATE TABLE IF NOT EXISTS public.empresa_certificado_digital (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
uuid UUID NOT NULL UNIQUE,
-- Dados do Certificado Digital
tipo_certificado CHAR(2) NOT NULL DEFAULT 'A1',
distinguished_name VARCHAR(255) NOT NULL,
categoria_certificado VARCHAR(100) NOT NULL DEFAULT 'e-CNPJ',
issued_in TIMESTAMP NOT NULL,
expires_in TIMESTAMP NOT NULL,
file_path TEXT DEFAULT NULL,
file_hash CHAR(64) DEFAULT NULL,
senha_hash TEXT DEFAULT NULL,
pin_hash TEXT DEFAULT NULL,
numero_serie VARCHAR(100) NOT NULL UNIQUE,
-- Metadados
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT NULL,
deleted_at TIMESTAMP DEFAULT NULL
);
-- ===============================================================================================================
-- Empresa Certificado
-- ===============================================================================================================
CREATE TABLE IF NOT EXISTS public.empresa_has_certificado_digital (
empresa_id BIGINT NOT NULL REFERENCES public.empresa(id) ON UPDATE CASCADE ON DELETE CASCADE,
certificado_digital_id BIGINT NOT NULL REFERENCES public.empresa_certificado_digital(id) ON UPDATE CASCADE ON DELETE CASCADE,
PRIMARY KEY (empresa_id, certificado_digital_id)
);