-- =============================================================================================================== -- 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 ); INSERT INTO public.empresa (uuid, razao_social, nome_fantasia, inscricao_tipo_id, document_inscricao, inscricao_raiz, endereco_codigo_ibge, endereco_cep, endereco_logradouro, endereco_numero, endereco_complemento, endereco_bairro, endereco_cidade, endereco_estado) VALUES ('019a07d3-9174-76b6-a9f0-9e0e189fdba8', 'Ativa Servicos em Refrigeracao e Servicos em Eletrica LTDA', 'Ativa Refrigeração e Elétrica', 1, '61365393000121', '61365393', '2304400', '60115191', 'Rua Monesenhor Bruno', '1153', 'Sala 1423', 'Aldeota', 'Fortaleza', 'CE'), ('019a07d3-9174-7879-93ae-4de7da3b5a93', 'A C C Andrade LTDA', 'A.c. Car', 1, '21899523000191', '21899523', '2307601', '62930000', 'Rua Leila Kristinna Lopes Maia', '58', NULL, 'Limoeirinho', 'Limoeiro do Norte', 'CE'); -- =============================================================================================================== -- 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) );