197 lines
7.7 KiB
Markdown
197 lines
7.7 KiB
Markdown
# 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
|
|
|
|
```sql
|
|
-- 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
|
|
|
|
```sql
|
|
-- 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
|
|
|
|
```sql
|
|
-- 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)
|
|
|
|
```bash
|
|
# 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
|