first commit
This commit is contained in:
105
database/v0/migrations/002_public.empresa.sql
Normal file
105
database/v0/migrations/002_public.empresa.sql
Normal 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)
|
||||
);
|
||||
Reference in New Issue
Block a user