# TRAZA - Sprint 7: Implementacion de Epicas **Proyecto:** MiChangarrito **Sprint:** 7 **Fecha:** 2026-01-10 **Estado:** COMPLETADO --- ## OBJETIVO Implementar las epicas pendientes de FASE 6: - MCH-023: Programa de Referidos - MCH-024: CoDi/SPEI - MCH-026: Multi-idioma LATAM --- ## MCH-023: PROGRAMA DE REFERIDOS ### Base de Datos **Archivo:** `database/schemas/13-referrals.sql` | Tabla | Descripcion | |-------|-------------| | referral_codes | Codigos de referido por tenant | | referrals | Registro de referidos | | referral_rewards | Recompensas de meses gratis | **Funciones:** - `generate_referral_code()` - Genera codigo unico - `get_referral_stats()` - Estadisticas de referidos ### Backend NestJS **Modulo:** `apps/backend/src/modules/referrals/` | Archivo | Descripcion | |---------|-------------| | referral-code.entity.ts | Entidad codigo de referido | | referral.entity.ts | Entidad referido | | referral-reward.entity.ts | Entidad recompensa | | referrals.service.ts | Logica de negocio | | referrals.controller.ts | Endpoints API | | referrals.module.ts | Configuracion modulo | **Endpoints:** - GET `/v1/referrals/my-code` - POST `/v1/referrals/generate-code` - GET `/v1/referrals/validate/:code` - POST `/v1/referrals/apply-code` - GET `/v1/referrals/list` - GET `/v1/referrals/stats` - GET `/v1/referrals/rewards` ### Frontend React **Pagina:** `apps/frontend/src/pages/Referrals.tsx` | Componente | Descripcion | |------------|-------------| | ShareCard | Tarjeta para compartir codigo | | StatsCards | Estadisticas de referidos | | HowItWorks | Explicacion del programa | | ReferralsList | Lista de referidos | **API:** `apps/frontend/src/lib/api.ts` - `referralsApi` --- ## MCH-024: CoDi/SPEI ### Base de Datos **Archivo:** `database/schemas/14-codi-spei.sql` | Tabla | Descripcion | |-------|-------------| | virtual_accounts | Cuentas CLABE virtuales | | codi_transactions | Transacciones CoDi | | spei_transactions | Transacciones SPEI | | payment_config | Configuracion por tenant | **Funciones:** - `generate_codi_reference()` - Referencia unica CoDi - `get_codi_spei_summary()` - Resumen de pagos ### Backend NestJS **Modulo:** `apps/backend/src/modules/codi-spei/` | Archivo | Descripcion | |---------|-------------| | virtual-account.entity.ts | Entidad cuenta virtual | | codi-transaction.entity.ts | Entidad transaccion CoDi | | spei-transaction.entity.ts | Entidad transaccion SPEI | | codi-spei.service.ts | Logica de negocio | | codi-spei.controller.ts | Endpoints API | | codi-spei.module.ts | Configuracion modulo | **Endpoints:** - POST `/v1/codi/generate-qr` - GET `/v1/codi/status/:id` - GET `/v1/codi/transactions` - POST `/v1/codi/webhook` - GET `/v1/spei/clabe` - POST `/v1/spei/create-clabe` - GET `/v1/spei/transactions` - POST `/v1/spei/webhook` - GET `/v1/payments/summary` ### Frontend React **Componentes:** `apps/frontend/src/components/payments/` | Componente | Descripcion | |------------|-------------| | CodiQR.tsx | Generador y display de QR CoDi | | ClabeDisplay.tsx | Display de CLABE virtual | **API:** `apps/frontend/src/lib/api.ts` - `codiSpeiApi` **Nota:** Requiere integracion con proveedor (STP, Arcus, Conekta, etc.) --- ## MCH-026: MULTI-IDIOMA LATAM ### Configuracion i18n **Archivo:** `apps/frontend/src/lib/i18n.ts` | Funcion | Descripcion | |---------|-------------| | formatCurrency() | Formato de moneda por locale | | formatDate() | Formato de fecha por locale | | formatDateTime() | Formato de fecha/hora | ### Traducciones **Directorio:** `apps/frontend/src/locales/` | Locale | Pais | Archivos | |--------|------|----------| | es-MX | Mexico | Base completa | | es-CO | Colombia | Override de terminos | | es-AR | Argentina | Override de terminos | | pt-BR | Brasil | Traduccion completa | ### Categorias de Traduccion - common: Textos comunes - nav: Navegacion - auth: Autenticacion - dashboard: Panel principal - products: Productos - orders: Pedidos - customers: Clientes - fiado: Creditos/Fiado - inventory: Inventario - referrals: Referidos - settings: Configuracion - payments: Pagos - errors: Mensajes de error - businessTypes: Tipos de negocio --- ## RESUMEN DE ARCHIVOS ### Archivos Creados | Categoria | Cantidad | |-----------|----------| | SQL Schemas | 2 | | Entities | 6 | | Services | 2 | | Controllers | 2 | | Modules | 2 | | DTOs | 2 | | React Pages | 1 | | React Components | 2 | | Locales | 4 | | Lib/Utils | 1 | | **Total** | **24** | ### Archivos Modificados | Archivo | Cambio | |---------|--------| | app.module.ts | +2 modulos | | api.ts | +2 APIs | | App.tsx | +1 ruta | | Layout.tsx | +1 nav item | | MCH-023.md | Estado → Completado | | MCH-024.md | Estado → Completado (Base) | | MCH-026.md | Estado → Completado (Base) | | PROXIMA-ACCION.md | Sprint 7, metricas | --- ## DEPENDENCIAS EXTERNAS PENDIENTES | Epica | Dependencia | Proveedor | |-------|-------------|-----------| | MCH-024 | CoDi/SPEI API | STP, Arcus, Conekta | | MCH-025 | Native Widgets | iOS (WidgetKit), Android (Glance) | | MCH-027 | PAC Facturacion | Facturapi, SW Sapien | --- ## METRICAS | Metrica | Antes | Despues | |---------|-------|---------| | Epicas completadas | 22/28 | 25/28 | | Modulos backend | 12 | 14 | | Paginas frontend | 9 | 10 | | Schemas SQL | 12 | 14 | | Progreso general | 79% | 89% | --- **Autor:** Agente Orquestador **Version:** 1.0.0