Modelagem de dados
Introdução
A base de dados é o pilar de qualquer aplicação robusta, especialmente em um projeto como a Peerseed, onde a integridade, segurança e consistência dos dados são primordiais. Para o núcleo transacional do nosso sistema, optamos por um banco de dados relacional.
Essa escolha se deve à sua conformidade com as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade), que garantem que operações financeiras complexas (como um investimento ou a distribuição de um pagamento) sejam concluídas com sucesso por inteiro ou revertidas, nunca deixando os dados em um estado inconsistente.
O diagrama abaixo ilustra as principais entidades do nosso sistema e como elas se interligam para modelar o negócio do Peerseed.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Detalhamento das Entidades e Relacionamentos
A seguir, justificamos a existência e a estrutura de cada tabela, com foco em suas chaves e nos relacionamentos que elas estabelecem.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Tabela: usuarios
Esta é a tabela central de identidade. Armazena as informações de login e perfil de todos os participantes da plataforma, sejam eles AGRICULTORES ou INVESTIDORES. A coluna perfil
é o que distingue seus papéis e as funcionalidades que podem acessar.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID). É o identificador único e interno de cada usuário, usado para relacioná-lo a todas as outras tabelas.
-
Relações: Esta tabela é o ponto de partida para a maioria das relações. Um usuário pode solicitar múltiplas cprs, realizar múltiplos investimentos e cadastrar múltiplas contas_bancarias.
Tabela: carteiras
Representa a carteira digital de cada usuário na plataforma, onde seus saldos em stablecoin (USDC) são mantidos e gerenciados. A separação entre saldo_usdc e saldo_bloqueado_usdc é crucial para gerenciar fundos que estão comprometidos em uma transação (como um investimento em andamento) mas ainda não foram debitados.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chave Estrangeira (FK): usuario_id referencia usuarios(id). A restrição UNIQUE nesta chave garante uma relação de um-para-um, assegurando que cada usuário tenha exatamente uma carteira.
Tabela: cprs (Cédulas de Produtor Rural)
Modela a oportunidade de investimento. Cada linha representa uma solicitação de crédito feita por um agricultor que foi aprovada e está pronta para captação no marketplace. Contém todos os termos do empréstimo, como valor, taxa de juros e prazo.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chave Estrangeira (FK): agricultor_id referencia usuarios(id), criando uma relação de um-para-muitos (um agricultor pode ter várias CPRs ao longo do tempo).
Tabela: parcelas
Detalha o cronograma de pagamentos de uma CPR. Ao criar uma CPR, esta tabela é populada com todas as parcelas futuras, seus valores e datas de vencimento. Isso é fundamental para a gestão de pagamentos e inadimplência.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chave Estrangeira (FK): cpr_id referencia cprs(id), criando uma relação de um-para-muitos (uma CPR é composta por múltiplas parcelas).
Tabela: investimentos
Esta é uma tabela de ligação crucial que materializa a relação de muitos-para-muitos entre usuarios (investidores) e cprs. Cada linha significa que um investidor específico aportou um determinado valor em uma CPR específica.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chaves Estrangeiras (FK):
-
investidor_id
referenciausuarios(id)
. -
cpr_id
referenciacprs(id)
.
-
Tabela: transacoes
Funciona como o livro-razão (ledger) de todas as movimentações financeiras na plataforma. Seja um depósito, um saque, um investimento ou o recebimento de juros, cada operação gera um registro imutável nesta tabela, garantindo total rastreabilidade e auditoria.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chave Estrangeira (FK):
carteira_id
referenciacarteiras(id)
, ligando cada transação a uma carteira específica.
Tabela: ofertas_secundario
Modela as ofertas de venda no mercado secundário. Quando um investidor decide vender sua cota (seu investimento), uma linha é criada aqui com o preço de venda. Isso permite que a plataforma funcione como um ambiente de negociação P2P.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
Chave Primária (PK): id (UUID).
Chave Estrangeira (FK): investimento_id
referencia investimentos(id)
. A restrição UNIQUE
nesta chave garante que um mesmo investimento não possa ter mais de uma oferta de venda ativa ao mesmo tempo.
Tabela: contas_bancarias
Armazena de forma segura os dados bancários dos usuários para a operação de saque (off-ramp) via Pix. Manter isso em uma tabela separada permite que um usuário tenha múltiplas contas cadastradas e escolha uma principal.
Diagrama Entidade-Relacionamento (DER) Simples

Fonte: Produzido pelos autores (2025).
Chaves e Relações:
-
Chave Primária (PK): id (UUID).
-
Chave Estrangeira (FK): usuario_id referencia usuarios(id), criando uma relação de um-para-muitos.