7.7 KiB
7.7 KiB
Herencia de Base de Datos - ERP Core -> Retail
Fecha: 2025-12-08 Versión: 1.0 Vertical: Retail Nivel: 2B.2
RESUMEN
La vertical de Retail hereda los schemas base del ERP Core y extiende con schemas específicos del dominio de punto de venta y comercio minorista.
Ubicación DDL Core: apps/erp-core/database/ddl/
ARQUITECTURA DE HERENCIA
┌─────────────────────────────────────────────────────────────────┐
│ ERP CORE (Base) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ auth │ │ core │ │financial│ │inventory│ │ purchase │ │
│ │ 26 tbl │ │ 12 tbl │ │ 15 tbl │ │ 15 tbl │ │ 8 tbl │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ sales │ │analytics│ │ system │ │ crm │ │
│ │ 6 tbl │ │ 5 tbl │ │ 10 tbl │ │ 5 tbl │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ TOTAL: ~102 tablas heredadas │
└─────────────────────────────────────────────────────────────────┘
│
│ HEREDA
▼
┌─────────────────────────────────────────────────────────────────┐
│ RETAIL (Extensiones) │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ pos │ │ stores │ │ pricing │ │
│ │ (punto venta) │ │ (sucursales) │ │ (promociones) │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ EXTENSIONES: ~30 tablas (planificadas) │
└─────────────────────────────────────────────────────────────────┘
SCHEMAS HEREDADOS DEL CORE
| Schema | Tablas | Uso en Retail |
|---|---|---|
auth |
26 | Autenticación, usuarios por sucursal |
core |
12 | Partners (clientes), catálogos |
financial |
15 | Facturas, cuentas, caja |
inventory |
15 | Inventario multi-sucursal |
purchase |
8 | Compras a proveedores |
sales |
6 | Ventas base |
crm |
5 | Clientes frecuentes |
analytics |
5 | Métricas de venta |
system |
10 | Notificaciones |
Total heredado: ~102 tablas
SCHEMAS ESPECÍFICOS DE RETAIL (Planificados)
1. Schema pos (estimado 12+ tablas)
Propósito: Punto de venta y operaciones de caja
-- Tablas principales planificadas:
pos.cash_registers -- Cajas registradoras
pos.cash_sessions -- Sesiones de caja
pos.pos_orders -- Tickets/ventas POS
pos.pos_order_lines -- Líneas de ticket
pos.payment_methods -- Métodos de pago
pos.cash_movements -- Movimientos de caja
pos.cash_counts -- Cortes de caja
pos.receipts -- Recibos
2. Schema stores (estimado 8+ tablas)
Propósito: Gestión de sucursales
-- Tablas principales planificadas:
stores.branches -- Sucursales
stores.branch_inventory -- Inventario por sucursal
stores.transfers -- Transferencias entre sucursales
stores.transfer_lines -- Líneas de transferencia
stores.branch_employees -- Empleados por sucursal
3. Schema pricing (estimado 10+ tablas)
Propósito: Precios y promociones
-- Extiende: sales schema del core
pricing.price_lists -- Listas de precios
pricing.promotions -- Promociones
pricing.discounts -- Descuentos
pricing.loyalty_programs -- Programas de lealtad
pricing.coupons -- Cupones
pricing.price_history -- Historial de precios
SPECS DEL CORE APLICABLES
Documento detallado: orchestration/00-guidelines/HERENCIA-SPECS-CORE.md
Correcciones de DDL Core (2025-12-08)
El DDL del ERP-Core fue corregido para resolver FK inválidas:
- stock_valuation_layers: Campos
journal_entry_idyjournal_entry_line_id(antesaccount_move_*) - stock_move_consume_rel: Nueva tabla de trazabilidad (antes
move_line_consume_rel) - category_stock_accounts: FK corregida a
core.product_categories - product_categories: ALTERs ahora apuntan a schema
core
SPECS Obligatorias
| Spec Core | Aplicación en Retail | SP | Estado |
|---|---|---|---|
| SPEC-SISTEMA-SECUENCIAS | Foliado de tickets y facturas | 8 | ✅ DDL LISTO |
| SPEC-VALORACION-INVENTARIO | Costeo de mercancía | 21 | ✅ DDL LISTO |
| SPEC-SEGURIDAD-API-KEYS-PERMISOS | Control de acceso por sucursal | 31 | ✅ DDL LISTO |
| SPEC-PRICING-RULES | Precios y promociones | 8 | PENDIENTE |
| SPEC-INVENTARIOS-CICLICOS | Conteos en sucursales | 13 | ✅ DDL LISTO |
| SPEC-TRAZABILIDAD-LOTES-SERIES | Productos con lote/serie | 13 | ✅ DDL LISTO |
| SPEC-MAIL-THREAD-TRACKING | Comunicación con clientes | 13 | PENDIENTE |
| SPEC-WIZARD-TRANSIENT-MODEL | Wizards de cierre de caja | 8 | PENDIENTE |
SPECS Opcionales
| Spec Core | Decisión | Razón |
|---|---|---|
| SPEC-PORTAL-PROVEEDORES | EVALUAR | Para compras centralizadas |
| SPEC-TAREAS-RECURRENTES | EVALUAR | Para reorden automático |
SPECS No Aplican
| Spec Core | Razón |
|---|---|
| SPEC-INTEGRACION-CALENDAR | No requiere calendario de citas |
| SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN | No hay proyectos largos |
| SPEC-FIRMA-ELECTRONICA-NOM151 | No aplica para tickets POS |
ORDEN DE EJECUCIÓN DDL (Futuro)
# PASO 1: Cargar ERP Core (base)
cd apps/erp-core/database
./scripts/reset-database.sh --force
# PASO 2: Cargar extensiones de Retail
cd apps/verticales/retail/database
psql $DATABASE_URL -f init/00-extensions.sql
psql $DATABASE_URL -f init/01-create-schemas.sql
psql $DATABASE_URL -f init/02-pos-tables.sql
psql $DATABASE_URL -f init/03-stores-tables.sql
psql $DATABASE_URL -f init/04-pricing-tables.sql
MAPEO DE NOMENCLATURA
| Core | Retail |
|---|---|
core.partners |
Clientes, proveedores |
inventory.products |
Productos de venta |
inventory.locations |
Almacenes de sucursal |
sales.sale_orders |
Base para POS orders |
financial.invoices |
Facturas de venta |
REFERENCIAS
- ERP Core DDL:
apps/erp-core/database/ddl/ - ERP Core README:
apps/erp-core/database/README.md - Directivas:
orchestration/directivas/ - Inventarios:
orchestration/inventarios/
Documento de herencia oficial Última actualización: 2025-12-08