🧩 Modelo Entidad-Relación (MER) – MenuQR

🎯 Objetivo

Arquitectura SaaS Multi-tenant escalable con aislamiento de datos proactivo (RLS) y soporte para menús y catálogos de restaurantes.


👥 Segmentación de Actores

  1. Platform Staff (saas_staff): Control total del ecosistema, planes y soporte global.
  2. Merchants (merchant_profiles): Propietarios de restaurantes que gestionan menús y órdenes.
  3. Consumers: Usuarios finales (clientes) que realizan pedidos desde el menú público.

📋 Entidades Core

🏢 businesses (Tenants)

El corazón de la plataforma. Cada registro es un restaurante/negocio independiente.

  • Relaciona a un owner_id (Merchant).
  • Almacena configuraciones de Branding, Wompi y datos del negocio.
  • Vinculado a un plan_id que define sus límites operativos.
  • Campos clave: name, slug, logo_url, whatsapp_number, public_email, address, wompi_*_key, plan_id, owner_id

📦 products e inventory

  • Productos del menú con nombre, descripción, precio e imagen.
  • Campo is_available para marcar como agotado/disponible.
  • Vinculados a una category_id.

📑 categories

  • Agrupadores dinámicos con sistema de ordenamiento (sort_order).
  • Vinculados a un business_id.

🔄 Entidades Operativas

🛒 orders y order_items

  • Registro transaccional con estados: pending, confirmed, in_delivery, delivered, cancelled.
  • Estados de pago sincronizados con Wompi (payment_status: pending, approved, declined).
  • Soporte para Modos de Entrega: Delivery y Pickup.
  • Campos: customer_name, customer_phone, delivery_address, delivery_type, notes, total_amount, pending_changes

💬 order_communications

  • Hilo de chat específico para cada orden entre el Comercio y el Consumidor.

🎫 Entidades de Soporte y Planificación

🛠️ support_tickets, support_messages y support_faqs

  • Sistema de helpdesk interno entre Merchants y Staff.
  • Mensajes en tiempo real con Supabase Realtime.
  • FAQs organizadas por categoría para auto-servicio.

💳 saas_subscriptions y plans

  • Motor de monetización que vincula comercios con pasarelas de pago recurrentes.
  • Planes definen: max_categories, max_products_per_business, has_orders, has_custom_domain, price.

⚙️ saas_settings

  • Configuración maestra de la instancia (API Keys globales de Wompi, SMTP, WAHA, Chatwoot, modo mantenimiento).

🔗 Documentación Relacionada