erp-retail-database-v2/HERENCIA-ERP-CORE.md
rckrdmrd f7c584278a Migración desde erp-retail/database - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:11:37 -06:00

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:

  1. stock_valuation_layers: Campos journal_entry_id y journal_entry_line_id (antes account_move_*)
  2. stock_move_consume_rel: Nueva tabla de trazabilidad (antes move_line_consume_rel)
  3. category_stock_accounts: FK corregida a core.product_categories
  4. 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