- Adicionadas rotas de login, logout e seleção de contexto de trabalho em AuthRoutes.php. - AuthService aprimorado com login detalhado, validação de token, listagem de contexto de trabalho e métodos de seleção. - JWTService introduzido para lidar com a geração e validação de JWT. - Migração de banco de dados atualizada para incluir dados de amostra da empresa. - Arquivo de migração RBAC criado para futura implementação de controle de acesso baseado em função.
109 lines
5.4 KiB
SQL
109 lines
5.4 KiB
SQL
-- ===============================================================================================================
|
|
-- 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)
|
|
); |