Voltar

Política de Privacidade – Agente Empréstimos

Data de Efetivação: [03 de Janeiro de 2026]

Bem-vindo ao Agente Empréstimos! Sua privacidade é nossa prioridade máxima. Esta política explica como suas informações são tratadas em nossa plataforma.

1. Nosso Compromisso com a Sua Privacidade:

No Agente Empréstimos, implementamos um design focado na privacidade desde o início. Isso significa que seus dados financeiros (saldo, lucro, detalhes de empréstimos) são acessíveis apenas por você. Mesmo nós, os desenvolvedores da plataforma, não temos acesso direto ao conteúdo dos seus dados transacionais.

2. Quais Dados Coletamos e Por Quê:

Informações de Autenticação: Coletamos seu e-mail e senha para criar e proteger sua conta. Usamos o Supabase Auth, um serviço seguro, para gerenciar isso. Seu e-mail pode ser usado para recuperação de senha ou comunicações essenciais do sistema.

Dados Financeiros e de Empréstimos: Quando você registra um empréstimo (nome do cliente, valor, parcelas, datas, WhatsApp do cliente), esses dados são armazenados de forma segura e privada para sua conta. Usamos essas informações para:

  • Gerenciar seus empréstimos ativos e históricos.
  • Calcular seu saldo e lucro.
  • Gerar comprovantes e recibos em PDF para seus clientes.
  • Aplicar a lista de negativação que você mesmo gerencia.

Preferências Locais: Armazenamos em seu próprio dispositivo (LocalStorage) uma preferência para "ocultar o capital" na tela principal. Isso é apenas para sua conveniência e segurança visual, e não é compartilhado conosco.

3. Como Seus Dados São Protegidos (Segurança em Camadas):

Nosso sistema foi construído com as seguintes camadas de segurança:

  • Isolamento de Dados por Usuário (Row Level Security - RLS): Esta é a nossa principal garantia. O banco de dados é configurado para que cada usuário só possa acessar suas próprias informações. Isso significa que é tecnicamente impossível para um usuário ver os dados de outro, ou para nós, como desenvolvedores, consultarmos diretamente o conteúdo financeiro das suas operações.
  • Dados Criptografados em Trânsito: Toda a comunicação entre seu aplicativo e nosso servidor Supabase é protegida por criptografia SSL/TLS, garantindo que suas informações não possam ser interceptadas.
  • Autenticação Segura (Supabase Auth): Utilizamos um serviço de autenticação robusto que protege suas credenciais.
  • Controle de Acesso do Desenvolvedor: Mesmo como administradores do sistema, nosso acesso é restrito. Só podemos ver informações básicas de usuário (seu ID de usuário, e-mail) no painel de controle. Para realizar tarefas de suporte, como um reset de sua conta solicitado por você, usamos funções específicas do banco de dados que apagam seus dados sem que tenhamos que visualizá-los.

4. Compartilhamento de Dados:

Não compartilhamos, vendemos ou alugamos suas informações pessoais ou dados financeiros com terceiros, exceto conforme exigido por lei.

5. Controle e Gerenciamento de Seus Dados:

Você tem controle total sobre os empréstimos e a lista de negativação que cadastra.

Você pode solicitar o reset completo da sua conta a qualquer momento. Ao fazer isso, todos os seus dados financeiros (empréstimos, configurações, blacklist) serão permanentemente excluídos.

6. Código Aberto e Transparência:

Nosso código-fonte é aberto e visível publicamente no GitHub. Isso permite que qualquer pessoa, incluindo especialistas em segurança, revise como nosso sistema funciona e valide nossas promessas de privacidade. Acreditamos que a transparência é a melhor forma de construir confiança.
Acessar o Repositório

7. Alterações a Esta Política:

Podemos atualizar nossa Política de Privacidade periodicamente. Notificaremos você sobre quaisquer alterações publicando a nova política nesta página.

Fluxograma de Privacidade e Segurança (Imagem) Aqui está o conceito para um fluxograma que visualiza as camadas de privacidade. Eu vou gerar a imagem.

Esquemas de Segurança Bem Divididos (Tabelas SQL e Políticas RLS) Aqui estão os comandos SQL que garantem todas as camadas de segurança e privacidade que você deseja, com explicações detalhadas para cada um.
            
    
    
        -- ###############################################################
        -- # ESQUEMAS DE SEGURANÇA E PRIVACIDADE DO BANCO DE DADOS       #
        -- # PROJETO: AGENTE EMPRÉSTIMOS                                 #
        -- # OBJETIVO: GARANTIR QUE CADA USUÁRIO SÓ ACESSE SEUS PRÓPRIOS #
        -- #           DADOS E QUE O DESENVOLVEDOR NÃO VEJA CONTEÚDO.    #
        -- ###############################################################
    
        -- ===============================================================
        -- PASSO 1: CRIAÇÃO DAS TABELAS (SE AINDA NÃO EXISTIREM)
        -- Garante a estrutura básica com a coluna 'user_id' referenciando auth.users.
        -- 'numeric' é usado para valores monetários para precisão.
        -- ===============================================================
    
    
        -- Tabela de Configurações (Saldo Global, Lucro, Taxas)
    
            create table if not exists public.configuracoes (
              id uuid default gen_random_uuid() primary key,
              user_id uuid references auth.users(id) not null, -- CHAVE DE SEGURANÇA: Vincula ao usuário logado
              saldo_global numeric default 0,
              lucro_total numeric default 0,
              taxa_juros_padrao numeric default 1.30,
              taxa_juros_atraso numeric default 0.001,
              unique(user_id), -- Garante que cada usuário tenha APENAS uma linha de configuração
              created_at timestamp with time zone default now()
            );
    
        -- Tabela de Empréstimos
            create table if not exists public.emprestimos (
              id uuid default gen_random_uuid() primary key,
              user_id uuid references auth.users(id) not null, -- CHAVE DE SEGURANÇA: Vincula ao usuário logado
              cliente text not null,
              whatsapp text,
              valor_total numeric not null,
              valor_parcela numeric not null,
              num_parcelas int not null,
              parcela_atual int default 1,
              data_vencimento date not null,
              valor_restante_parcela_atual numeric,
              created_at timestamp with time zone default now()
            );
    
        -- Tabela de Blacklist
            create table if not exists public.blacklist (
              id uuid default gen_random_uuid() primary key,
              user_id uuid references auth.users(id) not null, -- CHAVE DE SEGURANÇA: Vincula ao usuário logado
              nome text not null,
              whatsapp text,
              unique(user_id, nome), -- Garante que um cliente só pode ser negativado uma vez por usuário
              created_at timestamp with time zone default now()
            );
    
    
    
        -- ===============================================================
        -- PASSO 2: ATIVAÇÃO DO ROW LEVEL SECURITY (RLS) - "A MURALHA DA PRIVACIDADE"
        -- Este é o coração da privacidade. O RLS filtra as consultas NO BANCO DE DADOS,
        -- antes mesmo dos dados chegarem à sua aplicação ou ao desenvolvedor.
        -- ===============================================================
    
    
        -- Ativa o RLS em todas as tabelas sensíveis
            ALTER TABLE public.configuracoes ENABLE ROW LEVEL SECURITY;
            ALTER TABLE public.emprestimos ENABLE ROW LEVEL SECURITY;
            ALTER TABLE public.blacklist ENABLE ROW LEVEL SECURITY;
    
    
    
        -- ===============================================================
        -- PASSO 3: DEFINIÇÃO DAS POLÍTICAS DE ACESSO (POLICIES)
        -- Estas políticas determinam QUEM pode fazer o QUÊ com os dados.
        -- "FOR ALL" significa que se aplica a SELECT, INSERT, UPDATE, DELETE.
        -- "USING (auth.uid() = user_id)" é a regra mágica: só permite a operação
        -- se o ID do usuário logado (auth.uid()) for IGUAL ao 'user_id' da linha.
        -- ===============================================================
    
    
        -- Política para a tabela 'configuracoes'
            CREATE POLICY "Apenas usuários autenticados podem gerenciar suas configuracoes"
            ON public.configuracoes FOR ALL
            USING (auth.uid() = user_id);
    
        -- Política para a tabela 'emprestimos'
            CREATE POLICY "Apenas usuários autenticados podem gerenciar seus emprestimos"
            ON public.emprestimos FOR ALL
            USING (auth.uid() = user_id);
    
        -- Política para a tabela 'blacklist'
            CREATE POLICY "Apenas usuários autenticados podem gerenciar sua blacklist"
            ON public.blacklist FOR ALL
            USING (auth.uid() = user_id);
    
    
    
        -- ===============================================================
        -- PASSO 4: FUNÇÃO DE RESET DE DADOS (PARA O DESENVOLVEDOR/SUPORTE)
        -- Permite que o desenvolvedor resete a conta de um usuário (a pedido dele)
        -- SEM que o desenvolvedor tenha que visualizar os dados.
        -- 'SECURITY DEFINER' é crucial: a função é executada com privilégios de SUPERUSER
        -- para ignorar o RLS APENAS dentro desta função, garantindo a limpeza.
        -- ===============================================================
    
    
            CREATE OR REPLACE FUNCTION public.resetar_dados_usuario(target_user_id uuid)
            RETURNS void AS $$
            BEGIN
        -- 1. Deleta todos os empréstimos associados ao ID fornecido
              DELETE FROM public.emprestimos WHERE user_id = target_user_id;
    
        -- 2. Reseta as configurações financeiras (saldo e lucro) para zero para o ID fornecido
              UPDATE public.configuracoes
              SET saldo_global = 0, lucro_total = 0
              WHERE user_id = target_user_id;
    
        -- 3. Limpa a lista de negativação associada ao ID fornecido
              DELETE FROM public.blacklist WHERE user_id = target_user_id;
            END;
            $$ LANGUAGE plpgsql SECURITY DEFINER;
    
    
        -- OBS: Para o desenvolvedor rodar esta função:
        -- SELECT public.resetar_dados_usuario('O-ID-DO-USUARIO-AQUI');
    
    
    
        -- ===============================================================
        -- PASSO 5: CONFIGURAÇÃO DE SEGURANÇA PARA A CHAVE ANON_KEY
        -- Por padrão, a 'anon_key' é segura com RLS. Este passo é mais um lembrete
        -- de que sua aplicação frontend NÃO DEVE usar a 'service_role_key'.
        -- Sua anon_key está sujeita ao RLS, garantindo o isolamento.
        -- ===============================================================
    
    
    
        -- Nenhuma ação SQL é necessária aqui. É uma política implícita do Supabase.
        -- Garanta que em 'supabase-client.js' você usa a 'SUPABASE_ANON_KEY'.
    
    
    
        -- ###############################################################
        -- # FIM DOS ESQUEMAS DE SEGURANÇA E PRIVACIDADE                 #
        -- ###############################################################