1.5 KiB
1.5 KiB
SaveInMed - Domínio e Lógica de Negócio Profunda
🏢 Arquitetura Multi-Tenant
- Isolamento: Usamos
company_idem todas as tabelas transacionais. - Identificadores: Usamos UUID v7 para chaves primárias (sortable e performance-friendly).
- Cadastro: Toda empresa (
Tenant) deve fornecer um CNPJ válido. A validação (is_verified) é manual pelo admin da plataforma.
📦 Gestão de Inventário e Medicamentos
- Lotes e Validades: O sistema é focado em medicamentos. Produtos sem
batch(lote) eexpires_at(validade) são proibidos. - Preços:
price_cents: Preço base em centavos.commercial_discount_cents: Desconto aplicado.tax_substitution_cents: ST (Substituição Tributária) obrigatória para farmácias.
- Estoque: Reservas de estoque ocorrem no momento da criação do pedido (
Order). Se o pedido expirar ou for cancelado, o estoque volta (InventoryAdjustment).
💰 Fluxo Financeiro e Split de Pagamento
- Ledger (Livro Razão): Toda transação gera uma entrada imutável no
ledger_entries. - Marketplace Fee: A plataforma retém uma porcentagem fixa (configurável em
MARKETPLACE_COMMISSION). - Withdrawals: Distribuidoras solicitam saques. O status muda de
PENDING->APPROVED->PAID.
📍 Logística e Geolocalização
- Cálculo de Frete: Baseado na distância euclidiana entre as coordenadas (lat/long) da Farmácia e da Distribuidora.
- Mapbox: Usado para geocodificação de endereços no cadastro.