Modo Sandbox para add-ons (super admin)
V-3.2.0240 — Add-on Sandbox Test Mode: - Nueva columna profiles.is_test_account con trigger SECURITY DEFINER que sólo permite a super admin alternarla. - Banner global TestAccountBanner visible cuando el tenant está en modo prueba. - Súper admin panel: tarjeta Test Environment para marcar/desmarcar la cuenta. - Nuevos RPCs (server-side, doble validación super_admin + is_test_account): · getSandboxState · setTestAccount · sandboxPurchaseAddon — replica purchaseAddon (catálogo, tier, IVA 16%, cupón super admin, 50% OFF operador, validaciones Franchise, provisioning) pero crea owner_addons con payment_provider='sandbox', metadata.sandbox_mode=true, status='active', expira en 30 días, sin EcartPay. · sandboxSimulateState — fuerza expire / renew / past_due / payment_success / payment_failed en filas sandbox. · sandboxReset — borra sólo add-ons sandbox del owner, nunca toca datos reales. - /addons: toggle Sandbox ON/OFF (localStorage por usuario) sólo visible para super admin con cuenta test. Compra redirige al RPC sandbox cuando está activo. Botones de simulación por add-on sandbox activo (expire, renew, past_due, payment_failed, payment_success). Botón Reset Sandbox. - Feature gates intactos: sandbox crea status=active real con expires_at, por lo que el sidebar y los gates de funciones funcionan igual. - purchaseAddon real, RLS y multi-tenant sin cambios.
Aspectos destacados
- is_test_account protegido por trigger super admin
- Compra de add-ons sin cargo real en EcartPay
- Simulación de expire / renew / past_due / payment_*
- Reset Sandbox aislado del owner real
- Banner global de cuenta de pruebas