CREATE TABLE IF NOT EXISTS businesses
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
business_name character varying,
business_razao character varying,
business_document character varying,
business_email character varying,
business_phone character varying,
business_whatsapp character varying,
business_address character varying,
business_address_number character varying,
business_address_complement character varying,
business_address_neighborhood character varying,
business_address_city character varying,
business_address_state character varying,
business_address_cep character varying,
business_acesso_total_autorizado boolean NOT NULL DEFAULT false,
business_pos_cadastrada_executado boolean NOT NULL DEFAULT false,
business_creditos_saldo numeric NOT NULL DEFAULT 0,
business_acesso_nao_autorizado_motivo character varying,
business_acesso_nao_autorizado boolean NOT NULL DEFAULT false,
PRIMARY KEY (codigo),
autodata timestamp with time zone NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS business_processos_monitorado
(
codigo serial NOT NULL,
business_processos_monitorado_codigo character varying,
processo_cnj character varying,
business_id character varying,
data_inicio_monitoramento timestamp with time zone,
data_ultima_atualizacao timestamp with time zone,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS businesses_deletados
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
business_name character varying,
business_razao character varying,
business_document character varying,
business_email character varying,
business_phone character varying,
business_whatsapp character varying,
business_address character varying,
business_address_number character varying,
business_address_complement character varying,
business_address_neighborhood character varying,
business_address_city character varying,
business_address_state character varying,
business_address_cep character varying,
business_acesso_total_autorizado boolean NOT NULL DEFAULT false,
business_creditos_saldo numeric NOT NULL DEFAULT 0,
PRIMARY KEY (codigo),
autodata timestamp with time zone NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS accounts
(
codigo serial NOT NULL,
acc_id character varying NOT NULL,
business_id character varying NOT NULL,
acc_email character varying,
acc_diretor_geral boolean NOT NULL DEFAULT false,
acc_nickname character varying,
acc_documento character varying,
token_recuperar_senha character varying,
acc_password character varying,
oab character varying,
acc_created_at timestamp with time zone NOT NULL DEFAULT now(),
acc_email_verificado boolean NOT NULL DEFAULT false,
acc_email_token_verificacao character varying,
acc_acesso_bloqueado_mensagem character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS accounts_fcm_tokens
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
acc_id character varying NOT NULL,
fcm_token character varying NOT NULL,
momento timestamp with time zone NOT NULL DEFAULT now(),
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS accounts_deletados
(
codigo serial NOT NULL,
acc_id character varying NOT NULL,
business_id character varying NOT NULL,
acc_email character varying,
acc_diretor_geral boolean NOT NULL DEFAULT false,
acc_nickname character varying,
token_recuperar_senha character varying,
acc_password character varying,
oab character varying,
acc_created_at timestamp with time zone NOT NULL DEFAULT now(),
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS contas_bancarias
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
conta_bancaria_codigo character varying COLLATE pg_catalog."default",
nome character varying COLLATE pg_catalog."default",
ambiente character varying COLLATE pg_catalog."default",
cedente character varying COLLATE pg_catalog."default",
agencia character varying COLLATE pg_catalog."default",
conta character varying COLLATE pg_catalog."default",
posto character varying COLLATE pg_catalog."default",
chave_api character varying COLLATE pg_catalog."default",
client_id_api character varying COLLATE pg_catalog."default",
cnab character varying COLLATE pg_catalog."default",
banco character varying COLLATE pg_catalog."default",
webhook_codigo character varying COLLATE pg_catalog."default",
autodata timestamp with time zone NOT NULL DEFAULT now(),
data_ultima_atualizacao timestamp with time zone,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS contas_bancarias_eventos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
conta_bancaria_codigo character varying COLLATE pg_catalog."default",
evento_momento character varying COLLATE pg_catalog."default",
evento_descricao character varying COLLATE pg_catalog."default",
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS auth_jwtokens
(
codigo serial,
business_id character varying NOT NULL,
token character varying COLLATE pg_catalog."default",
acc_id character varying COLLATE pg_catalog."default",
autodata timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT auth_jwtokens_pkey PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS cobrancas
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
cobranca_id character varying COLLATE pg_catalog."default" NOT NULL,
cobranca_id_plataforma_api_cobranca character varying COLLATE pg_catalog."default",
pagador_id character varying COLLATE pg_catalog."default" NOT NULL,
pagador_nome_completo character varying COLLATE pg_catalog."default" NOT NULL,
conta_bancaria_id character varying COLLATE pg_catalog."default" NOT NULL,
meio_de_pagamento character varying COLLATE pg_catalog."default",
data_vencimento DATE,
mensagem TEXT,
multa DECIMAL,
juros DECIMAL,
parcelas integer NOT NULL DEFAULT 1,
valor_desconto_antecipacao DECIMAL,
tipo_desconto character varying COLLATE pg_catalog."default",
tipo_juros character varying COLLATE pg_catalog."default",
tipo_multa character varying COLLATE pg_catalog."default",
autodata timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT cobrancas_pkey PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS cobrancas_eventos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
cobranca_id character varying COLLATE pg_catalog."default" NOT NULL,
evento_momento character varying COLLATE pg_catalog."default" NOT NULL,
evento_descricao character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT cobrancas_eventos_pkey PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS cobrancas_composicao
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
plano_de_contas_id character varying COLLATE pg_catalog."default",
plano_de_conta_nome character varying COLLATE pg_catalog."default",
cobranca_id character varying COLLATE pg_catalog."default",
descricao character varying COLLATE pg_catalog."default",
valor character varying COLLATE pg_catalog."default",
PRIMARY KEY (codigo),
autodata timestamp with time zone NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS boletos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
boleto_id character varying COLLATE pg_catalog."default" NOT NULL,
boleto_id_plataforma_api_cobranca character varying COLLATE pg_catalog."default",
boleto_pagador_id_plataforma_API_cobranca character varying COLLATE pg_catalog."default",
cobranca_id_plataforma_api_cobranca character varying COLLATE pg_catalog."default",
cobranca_id character varying COLLATE pg_catalog."default",
cliente_id character varying COLLATE pg_catalog."default",
conta_bancaria_id character varying COLLATE pg_catalog."default",
boleto_foi_aceito_pela_plataforma boolean NOT NULL DEFAULT false,
boleto_foi_liquidado_manualmente boolean NOT NULL DEFAULT false,
boleto_quem_liquidou_manualmente character varying COLLATE pg_catalog."default",
boleto_quando_liquidou_manualmente timestamp with time zone,
boleto_valor DECIMAL,
boleto_parcelas character varying COLLATE pg_catalog."default",
boleto_resposta_completa_plataforma character varying COLLATE pg_catalog."default",
boleto_valor_recebido DECIMAL,
boleto_data_vencimento DATE,
boleto_data_pagamento DATE,
boleto_mensagem TEXT,
boleto_multa DECIMAL,
boleto_juros DECIMAL,
boleto_seu_numero character varying COLLATE pg_catalog."default",
boleto_nosso_numero character varying COLLATE pg_catalog."default",
boleto_linha_digitavel character varying COLLATE pg_catalog."default",
boleto_codigo_barras character varying COLLATE pg_catalog."default",
boleto_qrcode_pix character varying COLLATE pg_catalog."default",
boleto_url character varying COLLATE pg_catalog."default",
boleto_status character varying COLLATE pg_catalog."default",
CONSTRAINT boletos_pkey PRIMARY KEY (codigo)
);
CREATE TABLE plano_de_contas (
codigo serial NOT NULL,
plano_de_contas_codigo character varying NOT NULL,
plano_de_contas_nome character varying NOT NULL,
plano_de_contas_descricao character varying,
plano_de_contas_tipo character varying NOT NULL,
plano_de_contas_categoria character varying,
plano_de_contas_nivel integer,
pai_id integer,
CONSTRAINT plano_de_contas_pkey PRIMARY KEY (codigo)
);
/* -- Inserir as contas principais (nível 1) de Receitas
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel)
SELECT * FROM (VALUES
('', 'Honorários por Consulta', 'Receitas provenientes de honorários cobrados pelas consultas jurídicas', 'Receita', 'Receitas', 1),
('', 'Honorários por Serviços Adicionais', 'Receitas de serviços jurídicos adicionais, como pareceres e consultorias', 'Receita', 'Receitas', 1),
('', 'Honorários de Contencioso', 'Receitas relacionadas à representação legal em processos judiciais', 'Receita', 'Receitas', 1),
('', 'Outras Receitas', 'Outras fontes de receitas não diretamente ligadas a serviços jurídicos', 'Receita', 'Receitas', 1)
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserir subcontas (nível 2) para Honorários por Consulta
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Consultas Presenciais', 'Valor cobrado por consultas realizadas presencialmente no escritório', 'Receita', 'Honorários por Consulta', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Consulta' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Consultas Online', 'Valor cobrado por consultas realizadas de forma remota (por telefone, videoconferência, etc.)', 'Receita', 'Honorários por Consulta', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Consulta' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Consultas Emergenciais', 'Honorários cobrados por consultas urgentes ou fora do horário comercial', 'Receita', 'Honorários por Consulta', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Consulta' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Consultas de Aconselhamento Jurídico', 'Consultas para orientação jurídica sem a abertura de processos ou litígios', 'Receita', 'Honorários por Consulta', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Consulta' AND plano_de_contas_categoria = 'Receitas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserir subcontas (nível 2) para Honorários por Serviços Adicionais
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Elaboração de Pareceres Jurídicos', 'Valor cobrado pela elaboração de pareceres ou opiniões jurídicas sobre casos específicos', 'Receita', 'Honorários por Serviços Adicionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Serviços Adicionais' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Análise de Documentos', 'Receita gerada pela análise e revisão de documentos como contratos, termos, ou acordos', 'Receita', 'Honorários por Serviços Adicionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Serviços Adicionais' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Elaboração de Contratos', 'Receita obtida com a elaboração de documentos legais, como contratos de prestação de serviços ou acordos comerciais', 'Receita', 'Honorários por Serviços Adicionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Serviços Adicionais' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Consultoria Empresarial', 'Honorários pagos por consultoria jurídica para empresas', 'Receita', 'Honorários por Serviços Adicionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários por Serviços Adicionais' AND plano_de_contas_categoria = 'Receitas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserir subcontas (nível 2) para Honorários de Contencioso
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Consultoria Pré-Processual', 'Receita de consultas realizadas antes da abertura de um processo judicial', 'Receita', 'Honorários de Contencioso', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários de Contencioso' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Honorários de Advogado de Defesa', 'Valor cobrado por representar um cliente em um processo judicial', 'Receita', 'Honorários de Contencioso', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários de Contencioso' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Honorários de Advogado de Ação', 'Honorários para a condução de uma ação judicial', 'Receita', 'Honorários de Contencioso', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários de Contencioso' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Honorários de Sucesso', 'Percentual sobre o valor obtido em uma ação judicial de sucesso', 'Receita', 'Honorários de Contencioso', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Honorários de Contencioso' AND plano_de_contas_categoria = 'Receitas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserir subcontas (nível 2) para Outras Receitas
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Cursos e Palestras', 'Receitas provenientes da realização de cursos, workshops ou palestras sobre temas jurídicos', 'Receita', 'Outras Receitas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Outras Receitas' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Publicações e Livros', 'Receita de vendas de livros, artigos ou publicações jurídicas realizadas pelo escritório', 'Receita', 'Outras Receitas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Outras Receitas' AND plano_de_contas_categoria = 'Receitas' LIMIT 1)),
('', 'Parcerias e Convênios', 'Valor recebido por meio de parcerias ou convênios com outras empresas ou entidades', 'Receita', 'Outras Receitas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Outras Receitas' AND plano_de_contas_categoria = 'Receitas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
------- DESPESAS
-- Inserindo as contas principais (nível 1) de Despesas
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel)
SELECT * FROM (VALUES
('', 'Despesas com Pessoal', 'Despesas relacionadas aos custos de funcionários e colaboradores', 'Despesa', 'Despesas', 1),
('', 'Despesas Operacionais', 'Despesas com o funcionamento diário do escritório', 'Despesa', 'Despesas', 1),
('', 'Marketing e Publicidade', 'Despesas relacionadas à promoção e publicidade do escritório', 'Despesa', 'Despesas', 1),
('', 'Impostos e Taxas', 'Impostos e taxas governamentais a pagar', 'Despesa', 'Despesas', 1),
('', 'Serviços de Terceiros', 'Despesas com serviços contratados de terceiros', 'Despesa', 'Despesas', 1)
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserindo subcontas (nível 2) para Despesas com Pessoal
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Salários e Ordenados', 'Salários pagos a funcionários do escritório', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Encargos Sociais', 'Contribuições e impostos sobre a folha de pagamento', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Benefícios', 'Despesas com benefícios para funcionários (vale-transporte, alimentação, etc.)', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Férias e 13º Salário', 'Provisões para férias e 13º salário dos funcionários', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Treinamentos e Capacitação', 'Investimentos em treinamentos e cursos para colaboradores', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Recrutamento e Seleção', 'Despesas com processos seletivos e contratação de funcionários', 'Despesa', 'Despesas com Pessoal', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas com Pessoal' AND plano_de_contas_categoria = 'Despesas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserindo subcontas (nível 2) para Despesas Operacionais
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Aluguel do Escritório', 'Despesas com aluguel do espaço físico do escritório', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Água e Energia', 'Despesas com consumo de água e energia elétrica', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Telefone e Internet', 'Despesas com telefonia e serviços de internet', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Material de Escritório', 'Despesas com materiais de escritório e suprimentos', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Equipamentos de Informática', 'Despesas com compra e manutenção de equipamentos de informática', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Software e Licenças', 'Despesas com aquisição e manutenção de softwares e licenças', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Seguros', 'Despesas com seguros do escritório e de seus equipamentos', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Despesas com Limpeza', 'Despesas com serviços de limpeza do escritório', 'Despesa', 'Despesas Operacionais', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Despesas Operacionais' AND plano_de_contas_categoria = 'Despesas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserindo subcontas (nível 2) para Marketing e Publicidade
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Publicidade Online', 'Despesas com anúncios e campanhas online (Google Ads, Facebook, etc.)', 'Despesa', 'Marketing e Publicidade', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Marketing e Publicidade' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Publicidade Offline', 'Despesas com anúncios e campanhas offline (jornais, revistas, outdoors)', 'Despesa', 'Marketing e Publicidade', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Marketing e Publicidade' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Promoções e Descontos', 'Despesas com promoções e descontos oferecidos aos clientes', 'Despesa', 'Marketing e Publicidade', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Marketing e Publicidade' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Material Promocional', 'Despesas com materiais promocionais (panfletos, folders, etc.)', 'Despesa', 'Marketing e Publicidade', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Marketing e Publicidade' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Eventos e Networking', 'Despesas com participação em eventos e networking', 'Despesa', 'Marketing e Publicidade', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Marketing e Publicidade' AND plano_de_contas_categoria = 'Despesas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserindo subcontas (nível 2) para Impostos e Taxas
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'ISS (Imposto Sobre Serviços)', 'Imposto municipal sobre os serviços prestados', 'Despesa', 'Impostos e Taxas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Impostos e Taxas' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'IR (Imposto de Renda)', 'Imposto de renda devido ao governo', 'Despesa', 'Impostos e Taxas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Impostos e Taxas' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Taxa de Licenciamento e Registro', 'Despesas com taxas de licenciamento e registro de atividades', 'Despesa', 'Impostos e Taxas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Impostos e Taxas' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Contribuições Federais', 'Outras contribuições e taxas federais a pagar', 'Despesa', 'Impostos e Taxas', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Impostos e Taxas' AND plano_de_contas_categoria = 'Despesas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
);
-- Inserindo subcontas (nível 2) para Serviços de Terceiros
INSERT INTO plano_de_contas (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
SELECT * FROM (VALUES
('', 'Consultoria Contábil', 'Despesas com serviços contábeis contratados', 'Despesa', 'Serviços de Terceiros', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Serviços de Terceiros' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Consultoria Jurídica Externa', 'Despesas com consultoria jurídica contratada externamente', 'Despesa', 'Serviços de Terceiros', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Serviços de Terceiros' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Serviços de Limpeza', 'Despesas com serviços de limpeza externos', 'Despesa', 'Serviços de Terceiros', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Serviços de Terceiros' AND plano_de_contas_categoria = 'Despesas' LIMIT 1)),
('', 'Tecnologia e Suporte de TI', 'Despesas com suporte técnico e manutenção de tecnologia', 'Despesa', 'Serviços de Terceiros', 2, (SELECT codigo::integer FROM plano_de_contas WHERE plano_de_contas_nome = 'Serviços de Terceiros' AND plano_de_contas_categoria = 'Despesas' LIMIT 1))
) AS new_entries (plano_de_contas_codigo, plano_de_contas_nome, plano_de_contas_descricao, plano_de_contas_tipo, plano_de_contas_categoria, plano_de_contas_nivel, pai_id)
WHERE NOT EXISTS (
SELECT 1
FROM plano_de_contas
WHERE plano_de_contas.plano_de_contas_nome = new_entries.plano_de_contas_nome
AND plano_de_contas.plano_de_contas_categoria = new_entries.plano_de_contas_categoria
); */
CREATE TABLE IF NOT EXISTS caixa_movimentacoes
(
codigo serial NOT NULL,
caixa_movimentacao_codigo character varying COLLATE pg_catalog."default",
business_id character varying NOT NULL,
pagador_codigo character varying COLLATE pg_catalog."default",
pagador_nome_completo character varying COLLATE pg_catalog."default",
pagador_documento character varying COLLATE pg_catalog."default",
plano_de_contas_codigo character varying COLLATE pg_catalog."default",
plano_de_contas_nome character varying COLLATE pg_catalog."default",
boleto_codigo character varying COLLATE pg_catalog."default",
cobranca_codigo character varying COLLATE pg_catalog."default",
conta_bancaria_id character varying COLLATE pg_catalog."default",
descricao character varying COLLATE pg_catalog."default",
valor numeric,
estornado boolean NOT NULL DEFAULT false,
motivo_estorno character varying COLLATE pg_catalog."default",
data_estorno timestamp with time zone,
saldo_anterior numeric,
saldo_atual numeric,
created_at timestamp with time zone NOT NULL DEFAULT now(),
usuario_codigo_criou character varying COLLATE pg_catalog."default",
usuario_codigo_estornou character varying COLLATE pg_catalog."default",
usuario_codigo_alterou character varying COLLATE pg_catalog."default",
data_ultima_alteracao timestamp with time zone,
CONSTRAINT caixa_movimentacoes_pkey PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS caixa_movimentacoes_eventos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
caixa_movimentacao_codigo character varying NOT NULL,
conta_bancaria_id character varying NOT NULL,
evento_descricao character varying NOT NULL,
evento_momento character varying NOT NULL,
CONSTRAINT caixa_movimentacoes_eventos_pkey PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS emails
(
codigo serial NOT NULL,
email_codigo_track character varying,
business_id character varying,
destinatario_nome character varying,
destinatario_email character varying,
email_assunto character varying,
email_mensagem text,
email_situacao character varying,
momento character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS atendimentos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
cliente_id character varying NOT NULL,
usuario_codigo_criou character varying COLLATE pg_catalog."default",
atendimento_codigo character varying COLLATE pg_catalog."default",
atendimento_etapa character varying COLLATE pg_catalog."default",
atendimento_status character varying COLLATE pg_catalog."default",
atendimento_descricao text COLLATE pg_catalog."default",
atendimento_data_criacao character varying COLLATE pg_catalog."default",
momento character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS atendimentos_eventos
(
codigo serial NOT NULL,
business_id character varying NOT NULL,
atendimento_codigo character varying NOT NULL,
evento_descricao character varying NOT NULL,
momento character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS requests
(
codigo serial NOT NULL,
business_id character varying,
usuario_id character varying,
comando character varying,
comando_payload character varying,
request_codigo character varying,
momento character varying,
jwt character varying,
total_eventos integer,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS requests_eventos
(
codigo serial,
request_codigo character varying,
business_id character varying,
evento_momento character varying,
evento_descricao character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS agenda_eventos
(
codigo serial NOT NULL,
evento_codigo character varying,
evento_plataforma_id character varying,
titulo character varying,
descricao character varying,
dia_todo boolean,
recorrencia integer,
horario_inicio timestamp with time zone,
horario_fim timestamp with time zone,
momento timestamp with time zone,
usuario_id character varying,
business_id character varying,
status character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS pessoas (
codigo serial NOT NULL,
business_id character varying NOT NULL,
pessoa_codigo character varying NOT NULL,
pessoa_nome character varying NOT NULL,
pessoa_documento character varying NOT NULL,
pessoa_data_nascimento character varying,
pessoa_tipo character varying,
pessoa_email character varying,
pessoa_telefone character varying,
pessoa_whatsapp character varying,
pessoa_endereco character varying,
pessoa_endereco_numero character varying,
pessoa_endereco_complemento character varying,
pessoa_endereco_bairro character varying,
pessoa_endereco_cidade character varying,
pessoa_endereco_estado character varying,
pessoa_endereco_cep character varying,
pessoa_nome_da_mae character varying,
pessoa_cpf_da_mae character varying,
pessoa_sexo character varying,
pessoa_familiares character varying,
pessoa_nome_pai character varying,
pessoa_cpf_pai character varying,
pessoa_e_cliente boolean NOT NULL DEFAULT false,
pessoa_rg character varying,
pessoa_pis character varying,
pessoa_carteira_trabalho character varying,
pessoa_telefones character varying,
pessoa_emails character varying,
pessoa_enderecos character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS pessoas_eventos (
codigo serial NOT NULL,
business_id character varying NOT NULL,
pessoa_codigo character varying NOT NULL,
evento_descricao character varying NOT NULL,
evento_momento character varying NOT NULL,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS modelos_documentos (
codigo serial NOT NULL,
business_id character varying NOT NULL,
modelo_codigo character varying NOT NULL,
modelo_nome character varying NOT NULL,
modelo_momento character varying NOT NULL,
modelo_nome_arquivo character varying NOT NULL,
modelo_deleted boolean NOT NULL DEFAULT false,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS modelos_documentos_eventos (
codigo serial NOT NULL,
business_id character varying NOT NULL,
modelo_codigo character varying NOT NULL,
evento_modelo_descricao character varying NOT NULL,
evento_modelo_momento character varying NOT NULL,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos
(
codigo serial NOT NULL,
business_id character varying,
processo_codigo character varying,
processo_numero_cnj character varying,
processo_data_ultima_movimentacao character varying,
processo_quantidade_movimentacoes character varying,
processo_demandante character varying,
processo_demandado character varying,
processo_ultima_movimentacao_descricao character varying,
processo_ultima_movimentacao_data character varying,
oab_consultada character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_movimentacoes
(
codigo serial NOT NULL,
business_id character varying,
movimentacao_codigo character varying,
movimentacao_id_plataforma character varying,
movimentacao_data character varying,
movimentacao_tipo character varying,
movimentacao_tipo_publicacao character varying,
movimentacao_classificacao_predita_nome character varying,
movimentacao_classificacao_predita_descricao character varying,
movimentacao_classificacao_predita_hierarquia character varying,
movimentacao_conteudo character varying,
movimentacao_texto_categoria character varying,
movimentacao_fonte_processo_fonte_id character varying,
movimentacao_fonte_fonte_id character varying,
movimentacao_fonte_nome character varying,
movimentacao_fonte_tipo character varying,
movimentacao_fonte_sigla character varying,
movimentacao_fonte_grau character varying,
movimentacao_fonte_grau_formatado character varying,
processo_codigo character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_consultados_por_oab
(
codigo serial NOT NULL,
consulta_oab_codigo character varying,
business_id character varying,
usuario_id character varying,
oab_consultada character varying,
momento timestamp with time zone,
mensagem character varying,
payload_request character varying,
payload_response character varying,
request_status character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_consultados_por_oab_eventos
(
codigo serial NOT NULL,
business_id character varying,
consulta_oab_codigo character varying,
evento_descricao character varying,
evento_momento character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_fontes
(
codigo serial NOT NULL,
business_id character varying,
processo_codigo character varying,
fonte_codigo character varying,
fonte_nome character varying,
fonte_descricao character varying,
fonte_link character varying,
fonte_tipo character varying,
fonte_data_ultima_verificacao character varying,
fonte_data_ultima_movimentacao character varying,
fonte_segredo_justica boolean,
fonte_arquivado boolean,
fonte_fisico boolean,
fonte_sistema character varying,
fonte_quantidade_envolvidos integer,
fonte_quantidade_movimentacoes integer,
fonte_grau integer,
fonte_capa_classe character varying,
fonte_capa_assunto character varying,
fonte_capa_area character varying,
fonte_capa_orgao_julgador character varying,
fonte_capa_valor_causa character varying,
fonte_capa_valor_moeda character varying,
fonte_capa_data_distribuicao character varying,
fonte_tribunal_id character varying,
fonte_tribunal_nome character varying,
fonte_tribunal_sigla character varying,
fonte_informacoes_complementares character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_envolvidos (
codigo serial NOT NULL,
business_id character varying,
processo_codigo character varying,
fonte_codigo character varying,
envolvido_codigo character varying,
envolvido_tipo character varying,
envolvido_nome character varying,
envolvido_documento character varying,
envolvido_oab character varying,
envolvido_tipo_pessoa character varying,
envolviodo_quantidade_processos integer,
pessoa_codigo character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS processos_usuarios_responsaveis
(
codigo serial NOT NULL,
business_id character varying,
processo_codigo character varying,
usuario_id character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS consultas_informacoes_documento
(
codigo serial NOT NULL,
business_id character varying,
usuario_id character varying,
documento_consultado character varying,
momento timestamp with time zone,
mensagem character varying,
payload_request character varying,
payload_response character varying,
request_status character varying,
PRIMARY KEY (codigo)
);
CREATE TABLE IF NOT EXISTS recebimento_webhook
(
codigo serial NOT NULL,
webhook_event_id_plataforma character varying,
webhook_header character varying,
webhook_payload character varying,
webhook_ip character varying,
webhook_method character varying,
webhook_uri character varying,
webhook_momento timestamp with time zone,
webhook_parceiro character varying,
webhook_user_agent character varying,
PRIMARY KEY (codigo)
);
|