- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Cambios en backend y frontend Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.5 KiB
MiChangarrito - Investigacion de Referencias
Resumen Ejecutivo
Este documento consolida la investigacion realizada sobre:
- Modulos ERP existentes reutilizables
- Integraciones de WhatsApp Business
- Model Context Protocol (MCP) para LLM
- Integraciones de pago para Mexico
1. Modulos ERP Reutilizables
1.1 POS-Micro (RECOMENDADO COMO BASE)
Ubicacion: /workspace-v1/projects/erp-suite/apps/products/pos-micro/
Nivel de Completitud: 80% - Funcionalmente completo
| Componente | Estado | Reutilizable |
|---|---|---|
| Auth Module (JWT, multi-tenant) | 100% | SI |
| Sales Module | 90% | SI |
| Products Module | 90% | SI |
| Categories Module | 100% | SI |
| Payments Module (base) | 40% | PARCIAL |
| Database Schema | 80% | SI + EXTENDER |
| Frontend React | 75% | SI |
Stack Tecnico (compatible con MiChangarrito):
- NestJS 10.3.0
- TypeORM 0.3.19
- PostgreSQL 8.11
- React 18.2.0
- Vite 5.0.0
- Zustand 4.4.7
- TailwindCSS 3.3.5
Tablas existentes:
- tenants - Multi-tenant root
- users - Usuarios
- categories - Categorias
- products - Catalogo
- sales - Ventas
- sale_items - Detalle venta
- payments - Metodos pago
- inventory_movements - Stock
- daily_closures - Cortes caja
Archivos clave para copiar:
pos-micro/backend/src/modules/auth/ -> COPIAR COMPLETO
pos-micro/backend/src/modules/sales/ -> COPIAR + ADAPTAR
pos-micro/backend/src/modules/products/ -> COPIAR COMPLETO
pos-micro/backend/src/modules/categories/ -> COPIAR COMPLETO
pos-micro/database/ddl/00-schema.sql -> COPIAR + EXTENDER
pos-micro/frontend/src/store/ -> COPIAR COMPLETO
pos-micro/frontend/src/components/ -> ADAPTAR
1.2 Gamilit (Patrones de Arquitectura)
Ubicacion: /workspace-v1/projects/gamilit/
Utilidad: Patrones de arquitectura avanzados
Patrones reutilizables:
- Guards, decorators, interceptors
- Shared utilities structure
- Error handling robusto
- Sistema de notificaciones
- WebSocket para tiempo real
- Health checks y monitoring
Archivos de referencia:
gamilit/apps/backend/src/shared/ -> PATRONES (no copiar directo)
gamilit/apps/frontend/src/ -> ESTRUCTURA
1.3 Trading-Platform (LLM Agent)
Ubicacion: /workspace-v1/projects/trading-platform/apps/llm-agent/
Utilidad: Arquitectura agnostica de LLM
Componentes reutilizables:
- LLM Client Factory Pattern (adaptador multi-proveedor)
- Tool System (function calling)
- Prompt Management
- SSE Streaming para chat
Archivos clave:
# Traducir a TypeScript:
src/core/llm_client.py -> Adaptador agnostico LLM
src/tools/base.py -> Base class para tools
src/api/routes.py -> SSE streaming endpoints
Client TypeScript existente:
trading-platform/apps/backend/src/shared/clients/llm-agent.client.ts
1.4 Shared-Libs Core (Utilidades Base)
Ubicacion: /workspace-v1/projects/erp-suite/apps/shared-libs/core/
Utilidades reutilizables:
- Base entities (id, createdAt, updatedAt)
- Tenant middleware (RLS)
- Auth middleware
- Error handling base
- BaseTypeOrmService (CRUD generico)
- Factory patterns
2. WhatsApp Business Integration
2.1 Opcion Principal: Meta Cloud API
Documentacion oficial:
Caracteristicas:
- API oficial de Meta
- Webhooks para mensajes entrantes
- Templates pre-aprobados para iniciar conversaciones
- Mensajes de sesion (24h window)
- Multimedia: texto, imagenes, videos, documentos, ubicacion
Rate Limits:
- 80 msg/seg (default)
- Hasta 1,000 msg/seg para cuentas elegibles
- Numeros nuevos: 250-1,000 msg/dia inicialmente
Modelo de precios (Julio 2025):
- Cobro por mensaje entregado (no por conversacion)
- Marketing: mas caro
- Utility: medio
- Authentication: medio
- Service (respuestas): gratis en ventana 24h
2.2 Multi-Tenant WhatsApp
Opciones:
A. Tech Provider de Meta (RECOMENDADO)
- Requiere aprobacion de Meta
- Embedded Signup para onboarding self-service
- Trabaja con BSP (Twilio, Infobip, MessageBird)
B. Numero Compartido de Plataforma
- Un numero para multiples negocios
- Deteccion de tenant por:
- Keyword inicial ("Hola, busco [Nombre Negocio]")
- Contexto de conversacion
- Base de datos de clientes
2.3 Librerias de Referencia
| Libreria | GitHub | Notas |
|---|---|---|
| Baileys | WhiskeySockets/Baileys | WebSocket API, multi-device |
| whatsapp-web.js | pedroslopez/whatsapp-web.js | Puppeteer, 20k+ stars |
| NestWhats | NedcloarBR/NestWhats | Wrapper NestJS |
ADVERTENCIA: Librerias no oficiales pueden resultar en bloqueo de numero.
3. Model Context Protocol (MCP)
3.1 Que es MCP
Protocolo abierto de Anthropic (Nov 2024) para integrar LLMs con fuentes de datos/herramientas externas.
Arquitectura: Cliente-Servidor basado en JSON-RPC 2.0
Componentes:
- Hosts: Aplicaciones LLM (Claude Desktop, VS Code)
- Clients: Conectores dentro del host
- Servers: Servicios que proveen contexto
3.2 Primitivas del Protocolo
| Primitiva | Descripcion |
|---|---|
| Tools | Funciones ejecutables (APIs, DB queries) |
| Resources | Datos de solo lectura |
| Prompts | Templates reutilizables |
| Sampling | Comportamientos agentivos |
3.3 SDK TypeScript
Instalacion:
npm install @modelcontextprotocol/server zod
Ejemplo basico:
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "michangarrito-mcp",
version: "1.0.0"
}, {
capabilities: { tools: {} }
});
// Registrar tools...
3.4 Tools para MiChangarrito
| Categoria | Tools |
|---|---|
| Ventas | registrar_venta, obtener_ventas, generar_corte |
| Productos | buscar_producto, crear_producto, actualizar_precio |
| Inventario | consultar_stock, registrar_entrada, alertas_stock |
| Clientes | buscar_cliente, crear_cliente, historial_cliente |
| Fiados | registrar_fiado, obtener_fiados, marcar_pagado |
| Pedidos | crear_pedido, obtener_pedidos, actualizar_estado |
| Reportes | generar_reporte, enviar_whatsapp, exportar_excel |
3.5 Integracion Multi-Provider
| Provider | Estado MCP |
|---|---|
| Claude | Nativo (creador) |
| ChatGPT/OpenAI | Completo (marzo 2025) |
| Gemini | Soportado |
| OpenRouter | Compatible |
4. Integraciones de Pago Mexico
4.1 Mercado Pago Point
Documentacion: https://www.mercadopago.com.mx/developers/es/docs/mp-point/overview
SDK Node.js:
npm install mercadopago
Flujo:
- Crear Payment Intent
- Enviar a terminal Point
- Procesar pago
- Webhook de confirmacion
Comisiones:
- Inmediato: 3.49% + $4 MXN + IVA
- 30 dias: 2.95% + $4 MXN + IVA
4.2 Clip
Documentacion: https://developer.clip.mx/
SDK: Solo REST API (no SDK Node.js oficial)
Endpoints principales:
POST /paymentrequest/ - Crear solicitud
DELETE /paymentrequest/code/X - Cancelar
GET /payments/receipt-no/X - Detalles
GET /payments?from=X&to=Y - Lista
Comisiones:
- Estandar: 3.6% + IVA
- MSI: +1% a +24% segun meses
4.3 CoDi (Banxico)
Documentacion: https://www.codi.org.mx/
Integracion via: Openpay, dapp (recomendado vs directo Banxico)
SDK Node.js (Openpay):
openpay.charges.create({
method: 'codi',
amount: 100.00,
codi_options: { mode: 'QR_CODE' }
});
Flujo:
- Generar QR dinamico
- Cliente escanea con app bancaria
- Autoriza pago
- Webhook de confirmacion
Comisiones: Gratis con Banxico (intermediarios pueden cobrar)
4.4 Stripe (OXXO + Suscripciones)
Documentacion: https://docs.stripe.com/payments/oxxo
SDK Node.js:
npm install stripe
OXXO References:
const paymentIntent = await stripe.paymentIntents.create({
amount: 10000, // centavos
currency: 'mxn',
payment_method_types: ['oxxo']
});
Limitaciones OXXO:
- Min: $10 MXN, Max: $10,000 MXN
- Vigencia: 1-7 dias
- NO soporta suscripciones
Suscripciones:
const subscription = await stripe.subscriptions.create({
customer: 'cus_xxx',
items: [{ price: 'price_xxx' }]
});
Comisiones:
- Tarjetas/OXXO: 3.6% + $3 MXN + IVA
5. Matriz de Decision
Reutilizacion de Codigo
| Fuente | % Reutilizable | Prioridad | Esfuerzo |
|---|---|---|---|
| POS-Micro Backend | 80% | CRITICO | Bajo |
| POS-Micro Frontend | 60% | ALTO | Medio |
| Shared-Libs Core | 100% | CRITICO | Bajo |
| Trading-Platform LLM | 70% | ALTO | Medio |
| Gamilit Patterns | 40% | MEDIO | Bajo |
Integraciones de Pago
| Proveedor | Prioridad | Complejidad | Costo |
|---|---|---|---|
| Stripe (suscripciones) | P0 | Media | 3.6% |
| Stripe OXXO | P0 | Baja | 3.6% |
| Mercado Pago Point | P1 | Media | 2.95-3.49% |
| Clip | P2 | Media | 3.6% |
| CoDi | P2 | Alta | Gratis |
6. Proximos Pasos
- FASE 1: Copiar y adaptar POS-Micro como base
- FASE 2: Extender schema BD (customers, fiados, orders, subscriptions, tokens)
- FASE 3: Implementar WhatsApp Service con Meta Cloud API
- FASE 4: Implementar MCP Server con tools basicos
- FASE 5: Integrar Stripe (suscripciones + OXXO)
- FASE 6: Integrar terminales (Mercado Pago, Clip)
- FASE 7: Desarrollar app mobile React Native
Version: 1.0.0 Fecha: 2026-01-04