erp-retail/orchestration/planes/fase-5-implementacion/SPRINT-1-SUMMARY.md

6.4 KiB

Sprint 1 - Resumen de Implementación

Fecha: 2025-12-18

Estado: COMPLETADO


Objetivo del Sprint

Crear la estructura base del backend retail con todas las entidades TypeORM necesarias para los 10 módulos del sistema.


Entregables Completados

1. Configuración Base

  • package.json - Dependencias del proyecto
  • tsconfig.json - Configuración TypeScript con decoradores
  • src/config/database.ts - Pool PostgreSQL con soporte tenant
  • src/config/typeorm.ts - DataSource TypeORM con todas las entidades
  • src/app.ts - Aplicación Express con middlewares
  • src/index.ts - Entry point con graceful shutdown

2. Entidades TypeORM por Módulo

RT-001: Fundamentos (3 entidades)

Entidad Archivo Descripción
Branch branches/entities/branch.entity.ts Sucursales con configuración POS
CashRegister branches/entities/cash-register.entity.ts Cajas registradoras
BranchUser branches/entities/branch-user.entity.ts Usuarios por sucursal

RT-002: Punto de Venta (4 entidades)

Entidad Archivo Descripción
POSSession pos/entities/pos-session.entity.ts Sesiones de caja
POSOrder pos/entities/pos-order.entity.ts Órdenes de venta
POSOrderLine pos/entities/pos-order-line.entity.ts Líneas de orden
POSPayment pos/entities/pos-payment.entity.ts Pagos

RT-003: Inventario Retail (4 entidades)

Entidad Archivo Descripción
StockTransfer inventory/entities/stock-transfer.entity.ts Traspasos entre almacenes
StockTransferLine inventory/entities/stock-transfer-line.entity.ts Líneas de traspaso
StockAdjustment inventory/entities/stock-adjustment.entity.ts Ajustes de inventario
StockAdjustmentLine inventory/entities/stock-adjustment-line.entity.ts Líneas de ajuste

RT-004: Compras Retail (5 entidades)

Entidad Archivo Descripción
PurchaseSuggestion purchases/entities/purchase-suggestion.entity.ts Sugerencias automáticas
SupplierOrder purchases/entities/supplier-order.entity.ts Órdenes a proveedor
SupplierOrderLine purchases/entities/supplier-order-line.entity.ts Líneas de orden
GoodsReceipt purchases/entities/goods-receipt.entity.ts Recepción de mercancía
GoodsReceiptLine purchases/entities/goods-receipt-line.entity.ts Líneas de recepción

RT-005: Clientes y Lealtad (4 entidades)

Entidad Archivo Descripción
LoyaltyProgram customers/entities/loyalty-program.entity.ts Programa de lealtad
MembershipLevel customers/entities/membership-level.entity.ts Niveles de membresía
LoyaltyTransaction customers/entities/loyalty-transaction.entity.ts Transacciones de puntos
CustomerMembership customers/entities/customer-membership.entity.ts Membresías de cliente

RT-006: Precios y Promociones (4 entidades)

Entidad Archivo Descripción
Promotion pricing/entities/promotion.entity.ts Promociones
PromotionProduct pricing/entities/promotion-product.entity.ts Productos en promoción
Coupon pricing/entities/coupon.entity.ts Cupones
CouponRedemption pricing/entities/coupon-redemption.entity.ts Canjes de cupón

RT-007: Caja y Arqueo (3 entidades)

Entidad Archivo Descripción
CashMovement cash/entities/cash-movement.entity.ts Movimientos de efectivo
CashClosing cash/entities/cash-closing.entity.ts Cierres de caja
CashCount cash/entities/cash-count.entity.ts Conteo de denominaciones

RT-009: E-commerce (5 entidades)

Entidad Archivo Descripción
Cart ecommerce/entities/cart.entity.ts Carritos de compra
CartItem ecommerce/entities/cart-item.entity.ts Ítems del carrito
EcommerceOrder ecommerce/entities/ecommerce-order.entity.ts Órdenes e-commerce
EcommerceOrderLine ecommerce/entities/ecommerce-order-line.entity.ts Líneas de orden
ShippingRate ecommerce/entities/shipping-rate.entity.ts Tarifas de envío

RT-010: Facturación CFDI (2 entidades)

Entidad Archivo Descripción
CFDIConfig invoicing/entities/cfdi-config.entity.ts Configuración PAC/CSD
CFDI invoicing/entities/cfdi.entity.ts Comprobantes fiscales

Estadísticas del Sprint

Métrica Valor
Total de entidades 35
Archivos creados 42
Módulos cubiertos 9/10
Líneas de código aprox. ~4,500

Características Implementadas en Entidades

Multi-tenant

  • Columna tenant_id en todas las entidades
  • Índices compuestos con tenant_id
  • Configuración de contexto de tenant en database.ts

Auditoría

  • created_at, updated_at timestamps
  • created_by, updated_by UUIDs donde aplica
  • Tracking de aprobaciones y rechazos

Retail Específico

  • Soporte offline con is_offline_order, synced_at
  • Configuración de impresoras ESC/POS
  • Integración CFDI 4.0 completa
  • Programas de lealtad con múltiples niveles
  • Promociones tipo Buy X Get Y, bundles, flash sales

Próximos Pasos (Sprint 2)

  1. Servicios Base

    • Crear servicios CRUD para cada módulo
    • Implementar BaseService con operaciones comunes
  2. Controladores y Rutas

    • Definir endpoints REST
    • Implementar validación con Zod
  3. Middleware

    • Tenant context middleware
    • Auth middleware (integración con erp-core)
    • Branch context middleware
  4. Migraciones

    • Generar migraciones TypeORM
    • Scripts de seed para datos iniciales

Dependencias de erp-core

Las entidades hacen referencia a tablas de erp-core mediante UUIDs:

Módulo Retail Referencia erp-core
Branch warehouse_id → inventory.warehouses
POSOrder customer_id → partners.partners
Products product_id → inventory.products
Taxes tax_id → financial.taxes
Users user_id → auth.users

Notas Técnicas

  • Schema PostgreSQL: retail
  • TypeORM synchronize: false (producción)
  • Pool connections: máx 10 (TypeORM), máx 20 (pg)
  • Timestamps: UTC con timestamp with time zone