📄 CatalogQR – Base de Datos (Esquema)
Este documento detalla la estructura física de la base de datos en Supabase, incluyendo campos de integración y configuraciones avanzadas.
🏢 Tabla: businesses (Tenants)
| Campo | Tipo | Descripción |
|---|
id | uuid (PK) | Identificador único del negocio. |
owner_id | uuid (FK) | Relación con el Merchant en merchant_profiles. |
slug | text (Unique) | URL amigable para el catálogo público. |
whatsapp_number | text | Número vinculado para notificaciones y pedidos. |
wompi_public_key | text | Key para el widget de pagos del negocio. |
wompi_integrity_secret | text | Secreto para firmar transacciones de compras. |
opening_hours | jsonb | Horarios de atención por día de la semana. |
allows_delivery | boolean | Flag para habilitar servicio a domicilio. |
📦 Tabla: products (Ítems del Catálogo)
| Campo | Tipo | Descripción |
|---|
sku | text | Código de inventario único. |
price | numeric | Precio de venta al público. |
track_inventory | boolean | Si el sistema debe descontar stock automáticamente. |
stock_quantity | integer | Cantidad disponible en tiempo real. |
extras | jsonb | Opciones adicionales (ej. cobertura, toppings, tallas). |
🛒 Tabla: orders (Transacciones)
| Campo | Tipo | Descripción |
|---|
friendly_id | text | ID corto y legible para humanos (ej. ABC-123). |
status | text | Flujo: pending, confirmed, cooking, delivered, etc. |
payment_status | text | Estado en pasarela: pending, paid, voided. |
payment_method | text | Medio: cash, wompi. |
pending_changes | jsonb | Modificaciones sugeridas por el cliente pendientes de aprobación. |
⚙️ Tabla: saas_settings (Configuración Global)
Registro único (id: 'global') que controla la plataforma.
- Integraciones Maestro:
wompi_sandbox_keys, wompi_production_keys.
- Comunicaciones:
waha_api_url, chatwoot_url, smtp_host.
- Estado:
maintenance_mode, site_name.
🛠️ Triggers y Funciones Especiales
update_stock_on_order: Función PL/pgSQL que descuenta inventario al marcar una orden como pagada.
sync_friendly_id: Generador de identificadores aleatorios únicos para las órdenes.
🔗 Documentación Relacionada