🧩 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
- Platform Staff (
saas_staff): Control total del ecosistema, planes y soporte global. - Merchants (
merchant_profiles): Propietarios de restaurantes que gestionan menús y órdenes. - 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_idque 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_availablepara 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).