michangarrito/backups/docs-backup-2026-01-10/docs/02-especificaciones/INVESTIGACION-REFERENCIAS.md
rckrdmrd 928eb795e6 [SIMCO-V38] feat: Actualizar a SIMCO v3.8.0 + cambios apps
- 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>
2026-01-10 08:53:05 -06:00

379 lines
9.5 KiB
Markdown

# MiChangarrito - Investigacion de Referencias
## Resumen Ejecutivo
Este documento consolida la investigacion realizada sobre:
1. Modulos ERP existentes reutilizables
2. Integraciones de WhatsApp Business
3. Model Context Protocol (MCP) para LLM
4. 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:**
1. tenants - Multi-tenant root
2. users - Usuarios
3. categories - Categorias
4. products - Catalogo
5. sales - Ventas
6. sale_items - Detalle venta
7. payments - Metodos pago
8. inventory_movements - Stock
9. 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:**
```python
# 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:**
- https://business.whatsapp.com/developers/developer-hub
- https://developers.facebook.com/
**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:**
```bash
npm install @modelcontextprotocol/server zod
```
**Ejemplo basico:**
```typescript
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:**
```bash
npm install mercadopago
```
**Flujo:**
1. Crear Payment Intent
2. Enviar a terminal Point
3. Procesar pago
4. 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):**
```javascript
openpay.charges.create({
method: 'codi',
amount: 100.00,
codi_options: { mode: 'QR_CODE' }
});
```
**Flujo:**
1. Generar QR dinamico
2. Cliente escanea con app bancaria
3. Autoriza pago
4. 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:**
```bash
npm install stripe
```
**OXXO References:**
```javascript
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:**
```javascript
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
1. **FASE 1:** Copiar y adaptar POS-Micro como base
2. **FASE 2:** Extender schema BD (customers, fiados, orders, subscriptions, tokens)
3. **FASE 3:** Implementar WhatsApp Service con Meta Cloud API
4. **FASE 4:** Implementar MCP Server con tools basicos
5. **FASE 5:** Integrar Stripe (suscripciones + OXXO)
6. **FASE 6:** Integrar terminales (Mercado Pago, Clip)
7. **FASE 7:** Desarrollar app mobile React Native
---
**Version:** 1.0.0
**Fecha:** 2026-01-04