Casa de Cambio — Fase 1: cimientos y catálogo
Primera fase del módulo Casa de Cambio. Se agregó la entrada exchange_house al addons_catalog con precio base $899 MXN mensual; el flujo de cobro reutiliza el sistema existente de add-ons + EcartPay (IVA 16% aplicado por purchaseAddon, total ≈ $1,042.84 MXN). El add-on es comprable por cualquier plan (Starter/Growth/Enterprise/futuros), sin requisitos de tier. Se crearon seis tablas con RLS tenant-scoped: exchange_house_settings (config manual/API DolarAPI por tienda, ajustes %, intervalo, fallback, últimas sincronizaciones, límites de cajón); exchange_rate_tiers (mejoradores por monto y dirección compra/venta); cash_currency_balances (saldo actual MXN/USD por caja, único por owner+tienda+caja+moneda); cash_currency_movements (bitácora inmutable de movimientos: pagos, cambios, depósitos, retiros, transferencias, ajustes); exchange_transactions (operaciones de cambio con snapshot permanente de tasa, fuente y tier aplicado); exchange_house_audit_logs (cambios de configuración con valor anterior/nuevo). Helper SECURITY DEFINER has_exchange_house_addon(owner) para validar entitlement antes de habilitar funciones. Índices para búsquedas por dueño, tienda, caja y fecha. Cero cambios en POS, /profile, cierre de caja, depósitos/retiros ni tickets — tenants sin add-on activo no ven absolutamente nada nuevo. Próximas fases: UI de settings en /profile, checkout multimoneda en /pos, cierre multimoneda, reportes.
Aspectos destacados
- Add-on registrado: $899 MXN/mes + IVA, todos los planes
- Cobro reutiliza flujo existente de EcartPay
- 6 tablas nuevas con RLS por tenant
- Operaciones de cambio con snapshot inmutable de tasa
- Bitácora de auditoría con valor anterior/nuevo
- Helper has_exchange_house_addon para entitlement
- Cero cambios visibles en POS o profile