Estrutura Atual do Banco
Estrutura Atual do Banco de Dados
Banco: PostgreSQL 16 Total de tabelas: ~78 (apos limpeza de tabelas legadas — originalmente eram 97)
O sistema passou por uma consolidacao significativa: tabelas do sistema legado (Laravel/Livewire com nomes em portugues) foram migradas para uma estrutura padronizada em ingles. Tabelas obsoletas como quotation_items, winning_quotation_items, quotation_statuses, sent_quotations, received_quotations, quotation_returns, entre outras do fluxo antigo de cotacoes, foram substituidas pelo novo modelo de orders + proposals.
Tabelas por Modulo
Core Laravel (4 tabelas)
Tabelas padrao do framework, mantidas em ingles.
| Tabela | Tipo | Descricao |
|---|---|---|
users | Transacional | Usuarios do sistema (todos os perfis: admin, producer, supplier, consultant) |
cache | Operacional | Cache do framework |
jobs | Operacional | Fila de jobs assincronos |
personal_access_tokens | Operacional | Tokens de autenticacao API (Sanctum) |
Autenticacao e Acessos (4 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
access_types | Lookup | Tipos de acesso/perfis disponiveis |
user_accesses | Transacional | Relacionamento N:N entre usuarios e tipos de acesso |
password_reset_tokens | Operacional | Tokens para recuperacao de senha |
email_verifications | Operacional | Codigos de verificacao de email com expiracao |
Produtores (4 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
producer_profiles | Transacional | Perfil estendido do produtor (tipo PF/PJ, area plantada, associacao, cooperativas) |
producer_addresses | Transacional | Enderecos do produtor (fazenda, sede, entrega) com coordenadas |
producer_plantation_cultures | Pivot | Vinculo N:N entre produtor e culturas plantadas |
customer_references | Transacional | Referencias comerciais do produtor |
Nota: A tabela
customersdo sistema legado foi substituida porproducer_profilesvinculado ausers. Tabelas antigas comocustomer_addresses,customer_managers,customer_plantation_cultures,customer_subscriptions,customer_subscription_paymentsecustomer_subscription_cancellationsforam removidas ou migradas.
Fornecedores (7 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
suppliers | Transacional | Dados cadastrais do fornecedor (razao social, CNPJ, email, telefone, site) |
supplier_addresses | Transacional | Enderecos do fornecedor (matriz, filial, deposito) |
supplier_product_types | Pivot | Tipos de produto que o fornecedor trabalha |
supplier_states | Pivot | Estados onde o fornecedor atua |
supplier_state_cities | Pivot | Cidades especificas onde o fornecedor atua |
supplier_managers | Transacional | Responsaveis/gestores do fornecedor |
supplier_order_declines | Transacional | Registro de cotacoes recusadas pelo fornecedor |
Enderecos e Geografia (4 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
addresses | Transacional | Enderecos polimorfico (addressable_type + addressable_id) com latitude/longitude |
states | Lookup | Unidades Federativas (27 estados brasileiros com codigo IBGE) |
cities | Lookup | Cidades brasileiras com codigo IBGE, vinculadas ao estado |
manager_addresses | Transacional | Enderecos de responsaveis/gestores |
Produtos e Insumos (9 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
products | Transacional | Catalogo de produtos/insumos agricolas |
product_types | Lookup | Categorias de produtos (herbicida, fungicida, fertilizante, etc.) |
product_subtypes | Lookup | Subcategorias de produtos |
product_type_units | Pivot | Unidades de medida aceitas por tipo de produto |
product_brands | Pivot | Vinculo N:N entre produtos e marcas |
product_variations | Transacional | Variacoes de um produto (embalagens, concentracoes) |
brands | Lookup | Marcas de produtos |
measurement_units | Lookup | Unidades de medida (kg, L, ton, saca, etc.) com sigla |
active_ingredients | Lookup | Principios ativos de defensivos agricolas |
Culturas Agricolas (1 tabela)
| Tabela | Tipo | Descricao |
|---|---|---|
plantation_cultures | Lookup | Culturas agricolas (soja, milho, cafe, algodao, etc.) |
Cotacoes / Licitacoes (7 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
orders | Transacional | Cotacoes/licitacoes criadas por produtores. Campos: numero, UUID, status (enum), datas de publicacao/analise/adjudicacao, prazo de entrega, frete |
order_items | Transacional | Itens de uma cotacao (produto, quantidade, unidade, aceita similar) |
order_item_schedules | Transacional | Programacao de entrega dos itens |
order_status_history | Transacional | Historico de mudancas de status da cotacao |
order_suppliers | Pivot | Fornecedores convidados para a cotacao |
order_rejection_reasons | Lookup | Motivos padrao para rejeicao |
favorite_orders | Pivot | Cotacoes favoritadas por fornecedores |
Propostas (2 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
proposals | Transacional | Propostas enviadas por fornecedores em resposta a cotacoes. Campos: status, valores, desconto percentual, frete, data de aceite, visualizacao, cancelamento |
proposal_items | Transacional | Itens da proposta com preco unitario, quantidade e dados do PDF |
Avaliacoes e Reputacao (3 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
order_reviews | Transacional | Avaliacoes de cotacoes finalizadas (nota, comentario) |
order_delivery_status | Transacional | Status de entrega dos pedidos |
user_reputation_points | Transacional | Pontos de reputacao acumulados por usuarios |
Contratos e Documentos (6 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
contract_types | Lookup | Tipos de contrato |
contract_templates | Lookup | Modelos de contrato com variaveis |
contract_signatures | Transacional | Assinaturas digitais de contratos |
contract_quotations | Pivot | Vinculo contrato-cotacao |
contract_supplies | Transacional | Fornecimentos contratados |
digital_certificates | Transacional | Certificados digitais de responsaveis |
Financeiro (7 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
payment_methods | Lookup | Formas de pagamento aceitas (PIX, boleto, cartao) |
transactions | Transacional | Transacoes financeiras |
operations | Transacional | Operacoes realizadas |
transaction_logs | Transacional | Log detalhado de transacoes |
payment_attempts | Transacional | Tentativas de pagamento com status |
order_payments | Transacional | Pagamentos vinculados a pedidos |
return_refunds | Transacional | Estornos e devolucoes |
Planos e Assinaturas (5 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
subscription_plans | Lookup | Planos de assinatura (nome, slug, precos mensal/trimestral/anual, trial, perfil) |
user_subscriptions | Transacional | Assinaturas ativas dos usuarios (status, ciclo, datas, gateway ID) |
subscription_payments | Transacional | Pagamentos de assinaturas (valor, status, metodo, gateway ID) |
plan_features | Lookup | Features configuraveis dos planos (key, nome, tipo limit/boolean) |
plan_feature_values | Pivot | Valores de cada feature por plano |
Nota: As tabelas antigas
subscription_method_changes,customer_subscriptionsecustomer_subscription_paymentsforam substituidas por esta estrutura.
Notificacoes (3 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
notifications | Transacional | Notificacoes in-app para usuarios (titulo, mensagem, link, lida/nao lida) |
notification_settings | Transacional | Preferencias de notificacao por usuario |
notification_channel_config | Lookup | Configuracao de canais (in-app, email, WhatsApp) por tipo de notificacao |
Consultores (2 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
consultant_producer_links | Transacional | Vinculo entre consultores e produtores (status: pending, active) |
consultant_activation_tokens | Operacional | Tokens de ativacao para convite de consultores |
Paginas e Conteudo (1 tabela)
| Tabela | Tipo | Descricao |
|---|---|---|
static_pages | Transacional | Paginas estaticas do CMS (termos de uso, privacidade) com editor HTML |
Configuracoes e Auditoria (2 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
settings | Lookup | Configuracoes chave-valor agrupadas (geral, integracoes, SMTP, WhatsApp, ASAAS) |
audit_logs | Transacional | Log de auditoria de acoes administrativas |
Responsaveis e Gestores (3 tabelas)
| Tabela | Tipo | Descricao |
|---|---|---|
managers | Transacional | Responsaveis genericos |
manager_addresses | Transacional | Enderecos de responsaveis |
manager_certificates | Transacional | Certificados de responsaveis |
Resumo por Tipo
| Tipo | Quantidade | Descricao |
|---|---|---|
| Lookup | ~18 | Tabelas de referencia/dominio (tipos, status, categorias). Dados relativamente estaticos |
| Transacional | ~48 | Dados de negocio que crescem com o uso da plataforma |
| Pivot | ~8 | Tabelas de relacionamento N:N |
| Operacional | ~4 | Tabelas de infraestrutura (cache, jobs, tokens) |
Historico de Limpeza
O banco original do sistema legado possuia 97 tabelas, muitas com nomes em portugues e estruturas redundantes. A reestruturacao para a v1 resultou em:
- Renomeacao PT para EN de todas as tabelas e colunas
- Consolidacao de tabelas redundantes (ex:
clientes+cliente_enderecos→producer_profiles+addressespolimorfico) - Remocao de tabelas do fluxo antigo de cotacoes (
quotation_items,winning_quotation_items,quotation_statuses,sent_quotations,received_quotations,quotation_returns, etc.) - Novo modelo de propostas (
proposals+proposal_items) substituindo o fluxo antigo de cotacao/fornecimento - Novo modelo de assinaturas (
user_subscriptions+subscription_payments+plan_features) substituindo o modelo antigo vinculado acustomers
O mapeamento completo de nomes PT para EN esta documentado em database-mapping.