Schema do Banco de Dados
🗄️ Visão Geral do Schema
O Payment Gateway utiliza um schema relacional otimizado para performance, auditoria e compliance, suportando SQLite (desenvolvimento) e PostgreSQL (produção).
📊 Diagrama ERD
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ merchants │ │ users │ │ payments │
│─────────────────│ │─────────────────│ │─────────────────│
│ id (PK) │◄───┤ id (PK) │ │ id (PK) │
│ name │ │ merchant_id (FK)│ │ merchant_id (FK)│◄──┐
│ email │ │ email │ │ user_id (FK) │ │
│ status │ │ role │ │ amount │ │
│ created_at │ │ created_at │ │ currency │ │
│ updated_at │ │ updated_at │ │ status │ │
└─────────────────┘ └─────────────────┘ │ provider │ │
│ created_at │ │
│ updated_at │ │
└─────────────────┘ │
│ │
┌─────────────────┐ ┌─────────────────┐ │ │
│ transactions │ │ webhooks_log │ │ │
│─────────────────│ │─────────────────│ │ │
│ id (PK) │ │ id (PK) │ │ │
│ payment_id (FK) │◄───┤ payment_id (FK) │◄────────────┘ │
│ provider_tx_id │ │ provider │ │
│ status │ │ event_type │ │
│ amount │ │ payload │ │
│ fees │ │ signature │ │
│ metadata │ │ status │ │
│ created_at │ │ created_at │ │
└─────────────────┘ └─────────────────┘ │
│
┌─────────────────┐ ┌─────────────────┐ │
│ audit_log │ │ payment_methods │ │
│─────────────────│ │─────────────────│ │
│ id (PK) │ │ id (PK) │ │
│ table_name │ │ name │ │
│ record_id │ │ type │ │
│ action │ │ provider │ │
│ old_values │ │ enabled │ │
│ new_values │ │ config │ │
│ user_id │ │ created_at │ │
│ created_at │ └─────────────────┘ │
└─────────────────┘ │
│
┌─────────────────┐ │
│ refresh_tokens │ │
│─────────────────│ │
│ id (PK) │ │
│ user_id (FK) │◄───────────────────────────────────────────────┘
│ token_hash │
│ expires_at │
│ revoked │
│ created_at │
└─────────────────┘📋 Tabelas Principais
1. merchants
2. users
3. payments
4. transactions
5. webhooks_log
6. audit_log
🔧 Triggers para Auditoria
Trigger para payments
Trigger para updated_at automático
📊 Views para Analytics
Payment Analytics View
Provider Performance View
🔍 Consultas Úteis
Pagamentos por Status
Top Merchants por Volume
Provider Success Rate
🚀 Otimizações de Performance
Particionamento por Data (PostgreSQL)
Indexes Compostos
📝 Políticas de Retenção
Cleanup de Dados Antigos
Última atualização: December 2024
Last updated
Was this helpful?

