From 67f5bb830de0f6f78b502eed36bf93b8373ec729 Mon Sep 17 00:00:00 2001 From: rckrdmrd Date: Fri, 16 Jan 2026 04:14:27 -0600 Subject: [PATCH] =?UTF-8?q?[INTEGRATION]=20F4:=20Crear=20=5Fdefinitions/?= =?UTF-8?q?=20y=20=5Fquick/=20(independiente,=2018=20m=C3=B3dulos)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.5 --- docs/_MAP.md | 56 ++++- docs/_definitions/DATABASE-SCHEMA.md | 293 ++++++++++++++++++++++++++ docs/_definitions/ENTITIES-CATALOG.md | 141 +++++++++++++ docs/_definitions/MODULES-CATALOG.md | 161 ++++++++++++++ docs/_definitions/SERVICES-CATALOG.md | 146 +++++++++++++ docs/_definitions/_INDEX.yml | 75 +++++++ docs/_quick/QUICK-API.yml | 148 +++++++++++++ docs/_quick/QUICK-DATABASE.yml | 180 ++++++++++++++++ docs/_quick/QUICK-INDEX.yml | 117 ++++++++++ docs/_quick/QUICK-MODULES.yml | 185 ++++++++++++++++ orchestration/DEPENDENCY-GRAPH.yml | 241 +++++++++++++++++++++ orchestration/TRACEABILITY.yml | 225 ++++++++++++++++++++ orchestration/_refs/WS-REFERENCES.yml | 113 ++++++++++ 13 files changed, 2078 insertions(+), 3 deletions(-) create mode 100644 docs/_definitions/DATABASE-SCHEMA.md create mode 100644 docs/_definitions/ENTITIES-CATALOG.md create mode 100644 docs/_definitions/MODULES-CATALOG.md create mode 100644 docs/_definitions/SERVICES-CATALOG.md create mode 100644 docs/_definitions/_INDEX.yml create mode 100644 docs/_quick/QUICK-API.yml create mode 100644 docs/_quick/QUICK-DATABASE.yml create mode 100644 docs/_quick/QUICK-INDEX.yml create mode 100644 docs/_quick/QUICK-MODULES.yml create mode 100644 orchestration/DEPENDENCY-GRAPH.yml create mode 100644 orchestration/TRACEABILITY.yml create mode 100644 orchestration/_refs/WS-REFERENCES.yml diff --git a/docs/_MAP.md b/docs/_MAP.md index d49bac579..915d1b185 100644 --- a/docs/_MAP.md +++ b/docs/_MAP.md @@ -28,6 +28,20 @@ ``` docs/ ├── _MAP.md <- ESTE ARCHIVO +│ +├── _definitions/ <- DEFINICIONES CANONICAS +│ ├── _INDEX.yml <- Indice de definiciones (@MCH_DEF_*) +│ ├── DATABASE-SCHEMA.md <- Schema BD (@MCH_DEF_DB) +│ ├── ENTITIES-CATALOG.md <- Catalogo entities (@MCH_DEF_ENTITIES) +│ ├── MODULES-CATALOG.md <- Catalogo modulos (@MCH_DEF_MODULES) +│ └── SERVICES-CATALOG.md <- Catalogo services (@MCH_DEF_SERVICES) +│ +├── _quick/ <- NAVEGACION RAPIDA +│ ├── QUICK-INDEX.yml <- Indice navegacion rapida +│ ├── QUICK-API.yml <- Referencia rapida API endpoints +│ ├── QUICK-DATABASE.yml <- Referencia rapida BD +│ └── QUICK-MODULES.yml <- Referencia rapida modulos +│ ├── 00-vision-general/ │ ├── VISION-PROYECTO.md <- Vision y propuesta de valor │ ├── REQUERIMIENTOS-FUNCIONALES.md <- Requisitos del sistema @@ -296,7 +310,43 @@ docs/ --- -**Ultima actualizacion:** 2026-01-13 -**Version:** 3.0.0 +--- + +## Definiciones y Referencias + +### Aliases del Proyecto + +| Alias | Archivo | Descripcion | +|-------|---------|-------------| +| @MCH_DEF_DB | `_definitions/DATABASE-SCHEMA.md` | Schema canonico de BD | +| @MCH_DEF_ENTITIES | `_definitions/ENTITIES-CATALOG.md` | Catalogo de entities | +| @MCH_DEF_MODULES | `_definitions/MODULES-CATALOG.md` | Catalogo de modulos | +| @MCH_DEF_SERVICES | `_definitions/SERVICES-CATALOG.md` | Catalogo de services | +| @MCH_QUICK_INDEX | `_quick/QUICK-INDEX.yml` | Indice navegacion rapida | +| @MCH_QUICK_API | `_quick/QUICK-API.yml` | Referencia rapida API | +| @MCH_QUICK_DB | `_quick/QUICK-DATABASE.yml` | Referencia rapida BD | +| @MCH_QUICK_MODULES | `_quick/QUICK-MODULES.yml` | Referencia rapida modulos | + +### Referencias a Workspace + +| Alias | Uso | +|-------|-----| +| @WS_DEF_CCA | Protocolo CCA | +| @WS_DEF_VAL_BE | Validacion Backend | +| @WS_DEF_VAL_FE | Validacion Frontend | +| @WS_DEF_VAL_DDL | Validacion DDL | + +### Archivos de Orchestration + +| Archivo | Proposito | +|---------|-----------| +| `orchestration/_refs/WS-REFERENCES.yml` | Referencias a workspace | +| `orchestration/DEPENDENCY-GRAPH.yml` | Grafo de dependencias | +| `orchestration/TRACEABILITY.yml` | Trazabilidad modulos-objetos | + +--- + +**Ultima actualizacion:** 2026-01-16 +**Version:** 3.1.0 **Alineacion:** Integracion template-saas (SAAS-008 a SAAS-017) -**Cambios:** +2 epicas nuevas (MCH-034, MCH-035), 4 epicas alineadas (MCH-029 a MCH-032) +**Cambios:** Agregada estructura _definitions/ y _quick/, orchestration DEPENDENCY-GRAPH y TRACEABILITY diff --git a/docs/_definitions/DATABASE-SCHEMA.md b/docs/_definitions/DATABASE-SCHEMA.md new file mode 100644 index 000000000..182c97bd0 --- /dev/null +++ b/docs/_definitions/DATABASE-SCHEMA.md @@ -0,0 +1,293 @@ +# Database Schema - MiChangarrito + +**Alias:** @MCH_DEF_DB +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Schemas** | 12 | +| **Total Tablas** | ~49 | +| **Total Funciones** | 15 | +| **Total Triggers** | 20+ | +| **Extensiones** | 4 | + +--- + +## 2. SCHEMAS + +### 2.1 Schema: public + +```yaml +descripcion: "Schema principal - Usuarios y configuracion base" +tablas: + - users + - roles + - permissions + - user_roles +``` + +### 2.2 Schema: stores + +```yaml +descripcion: "Gestion de tiendas/changarritos" +tablas: + - stores + - store_settings + - store_hours +``` + +### 2.3 Schema: products + +```yaml +descripcion: "Catalogo de productos e inventario" +tablas: + - products + - categories + - inventory + - price_history +``` + +### 2.4 Schema: sales + +```yaml +descripcion: "Punto de venta y transacciones" +tablas: + - sales + - sale_items + - payments + - cash_registers +``` + +### 2.5 Schema: orders + +```yaml +descripcion: "Pedidos y entregas" +tablas: + - orders + - order_items + - deliveries +``` + +### 2.6 Schema: customers + +```yaml +descripcion: "Gestion de clientes" +tablas: + - customers + - customer_addresses +``` + +### 2.7 Schema: fiados + +```yaml +descripcion: "Sistema de creditos/fiados" +tablas: + - fiados + - fiado_payments + - credit_limits +``` + +### 2.8 Schema: subscriptions + +```yaml +descripcion: "Planes y suscripciones SaaS" +tablas: + - plans + - subscriptions + - subscription_history +``` + +### 2.9 Schema: tokens + +```yaml +descripcion: "Tienda de tokens IA" +tablas: + - token_packages + - token_purchases + - token_usage +``` + +### 2.10 Schema: notifications + +```yaml +descripcion: "Sistema de notificaciones" +tablas: + - notifications + - notification_templates + - notification_logs +``` + +### 2.11 Schema: integrations + +```yaml +descripcion: "Integraciones externas" +tablas: + - whatsapp_configs + - llm_configs + - payment_configs +``` + +### 2.12 Schema: analytics + +```yaml +descripcion: "Metricas y reportes" +tablas: + - daily_metrics + - monthly_reports + - predictions +``` + +--- + +## 3. TABLAS PRINCIPALES + +### 3.1 users + +```yaml +tabla: "users" +schema: "public" +descripcion: "Usuarios del sistema (duenos de changarritos)" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "email" + tipo: "VARCHAR(255)" + unique: true + - nombre: "phone" + tipo: "VARCHAR(20)" + - nombre: "name" + tipo: "VARCHAR(100)" + - nombre: "created_at" + tipo: "TIMESTAMP" + - nombre: "updated_at" + tipo: "TIMESTAMP" +relaciones: + - tabla: "stores" + tipo: "ONE_TO_MANY" + columna: "owner_id" +indices: + - nombre: "idx_users_email" + columnas: ["email"] + unique: true +``` + +### 3.2 stores + +```yaml +tabla: "stores" +schema: "stores" +descripcion: "Changarritos/tiendas de los usuarios" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "owner_id" + tipo: "UUID" + fk: "users.id" + - nombre: "name" + tipo: "VARCHAR(100)" + - nombre: "type" + tipo: "VARCHAR(50)" + - nombre: "status" + tipo: "VARCHAR(20)" +relaciones: + - tabla: "users" + tipo: "MANY_TO_ONE" + columna: "owner_id" + - tabla: "products" + tipo: "ONE_TO_MANY" + columna: "store_id" +``` + +### 3.3 products + +```yaml +tabla: "products" +schema: "products" +descripcion: "Productos del catalogo" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "store_id" + tipo: "UUID" + fk: "stores.id" + - nombre: "name" + tipo: "VARCHAR(200)" + - nombre: "price" + tipo: "DECIMAL(10,2)" + - nombre: "stock" + tipo: "INTEGER" + - nombre: "category_id" + tipo: "UUID" + fk: "categories.id" +``` + +### 3.4 sales + +```yaml +tabla: "sales" +schema: "sales" +descripcion: "Ventas realizadas en POS" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "store_id" + tipo: "UUID" + fk: "stores.id" + - nombre: "total" + tipo: "DECIMAL(10,2)" + - nombre: "payment_method" + tipo: "VARCHAR(20)" + - nombre: "status" + tipo: "VARCHAR(20)" + - nombre: "created_at" + tipo: "TIMESTAMP" +``` + +--- + +## 4. RELACIONES PRINCIPALES + +``` + ┌─────────────┐ + │ users │ + └──────┬──────┘ + │ 1:N + ┌────────────┴────────────┐ + │ │ + ┌──────▼──────┐ ┌───────▼──────┐ + │ stores │ │ subscriptions│ + └──────┬──────┘ └──────────────┘ + │ 1:N + ┌─────────┼─────────┬─────────────┐ + │ │ │ │ +┌───▼───┐ ┌───▼───┐ ┌───▼───┐ ┌─────▼─────┐ +│products│ │ sales │ │orders │ │ customers │ +└───┬───┘ └───┬───┘ └───┬───┘ └─────┬─────┘ + │ │ │ │ + └─────────┴─────────┴─────────────┘ + │ + ┌───────▼───────┐ + │ fiados │ + └───────────────┘ +``` + +--- + +## 5. REFERENCIAS + +- Especificaciones tecnicas: `docs/02-especificaciones/ARQUITECTURA-DATABASE.md` +- Migraciones: `apps/backend/src/database/migrations/` +- Entities: Ver @MCH_DEF_ENTITIES + +--- + +*Definicion canonica v1.0.0 - MiChangarrito* diff --git a/docs/_definitions/ENTITIES-CATALOG.md b/docs/_definitions/ENTITIES-CATALOG.md new file mode 100644 index 000000000..78127c00c --- /dev/null +++ b/docs/_definitions/ENTITIES-CATALOG.md @@ -0,0 +1,141 @@ +# Entities Catalog - MiChangarrito + +**Alias:** @MCH_DEF_ENTITIES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Entities** | 25 | +| **Por Modulo** | Ver seccion 2 | + +--- + +## 2. ENTITIES POR MODULO + +### 2.1 Modulo: Core/Base + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| BaseEntity | `base.entity.ts` | - | Entity base abstracta | +| AuditEntity | `audit.entity.ts` | - | Entity con auditoria | + +### 2.2 Modulo: Auth + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| User | `user.entity.ts` | users | Usuarios del sistema | +| Session | `session.entity.ts` | sessions | Sesiones activas | +| RefreshToken | `refresh-token.entity.ts` | refresh_tokens | Tokens de refresco | + +### 2.3 Modulo: Stores + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Store | `store.entity.ts` | stores | Changarritos | +| StoreSettings | `store-settings.entity.ts` | store_settings | Configuracion de tienda | +| StoreHours | `store-hours.entity.ts` | store_hours | Horarios de operacion | + +### 2.4 Modulo: Products + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Product | `product.entity.ts` | products | Productos del catalogo | +| Category | `category.entity.ts` | categories | Categorias de productos | +| Inventory | `inventory.entity.ts` | inventory | Control de inventario | + +### 2.5 Modulo: Sales (POS) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Sale | `sale.entity.ts` | sales | Ventas realizadas | +| SaleItem | `sale-item.entity.ts` | sale_items | Items de venta | +| Payment | `payment.entity.ts` | payments | Pagos recibidos | +| CashRegister | `cash-register.entity.ts` | cash_registers | Caja registradora | + +### 2.6 Modulo: Orders + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Order | `order.entity.ts` | orders | Pedidos | +| OrderItem | `order-item.entity.ts` | order_items | Items del pedido | +| Delivery | `delivery.entity.ts` | deliveries | Entregas a domicilio | + +### 2.7 Modulo: Customers + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Customer | `customer.entity.ts` | customers | Clientes del changarrito | +| CustomerAddress | `customer-address.entity.ts` | customer_addresses | Direcciones de entrega | + +### 2.8 Modulo: Fiados + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Fiado | `fiado.entity.ts` | fiados | Creditos otorgados | +| FiadoPayment | `fiado-payment.entity.ts` | fiado_payments | Pagos de fiados | + +### 2.9 Modulo: Subscriptions + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Plan | `plan.entity.ts` | plans | Planes de suscripcion | +| Subscription | `subscription.entity.ts` | subscriptions | Suscripciones activas | + +### 2.10 Modulo: Tokens + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| TokenPackage | `token-package.entity.ts` | token_packages | Paquetes de tokens | +| TokenUsage | `token-usage.entity.ts` | token_usage | Uso de tokens IA | + +--- + +## 3. RELACIONES ENTRE ENTITIES + +```yaml +relaciones: + User: + has_many: [Store, Session, RefreshToken, Subscription] + belongs_to: [] + + Store: + has_many: [Product, Sale, Order, Customer, Fiado, StoreSettings] + belongs_to: [User] + + Product: + has_many: [SaleItem, OrderItem, Inventory] + belongs_to: [Store, Category] + + Sale: + has_many: [SaleItem, Payment] + belongs_to: [Store, Customer] + + Order: + has_many: [OrderItem, Delivery] + belongs_to: [Store, Customer] + + Customer: + has_many: [Sale, Order, Fiado, CustomerAddress] + belongs_to: [Store] + + Fiado: + has_many: [FiadoPayment] + belongs_to: [Store, Customer] +``` + +--- + +## 4. REFERENCIAS + +- Database Schema: @MCH_DEF_DB +- Services: @MCH_DEF_SERVICES +- Ubicacion: `apps/backend/src/modules/*/entities/` + +--- + +*Definicion canonica v1.0.0 - MiChangarrito* diff --git a/docs/_definitions/MODULES-CATALOG.md b/docs/_definitions/MODULES-CATALOG.md new file mode 100644 index 000000000..3fb1ca431 --- /dev/null +++ b/docs/_definitions/MODULES-CATALOG.md @@ -0,0 +1,161 @@ +# Modules Catalog - MiChangarrito + +**Alias:** @MCH_DEF_MODULES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Modulos** | 18 | +| **En Produccion** | 18 | +| **En Desarrollo** | 0 | + +--- + +## 2. INDICE DE MODULOS + +### 2.1 Modulos Core (Fase 1) + +| ID | Nombre | Estado | Epica | +|----|--------|--------|-------| +| MCH-M01 | Auth | Produccion | MCH-002 | +| MCH-M02 | Users | Produccion | MCH-001 | +| MCH-M03 | Stores | Produccion | MCH-001 | +| MCH-M04 | Products | Produccion | MCH-003 | +| MCH-M05 | Sales (POS) | Produccion | MCH-004 | +| MCH-M06 | Payments | Produccion | MCH-005 | + +### 2.2 Modulos Inteligencia (Fase 2-3) + +| ID | Nombre | Estado | Epica | +|----|--------|--------|-------| +| MCH-M07 | Onboarding | Produccion | MCH-006 | +| MCH-M08 | Templates | Produccion | MCH-007 | +| MCH-M09 | Fiados | Produccion | MCH-008 | +| MCH-M10 | Predictions | Produccion | MCH-009 | +| MCH-M11 | MCP Server | Produccion | MCH-010 | +| MCH-M12 | WhatsApp | Produccion | MCH-011 | +| MCH-M13 | LLM Chat | Produccion | MCH-012/013 | + +### 2.3 Modulos Negocio (Fase 4-5) + +| ID | Nombre | Estado | Epica | +|----|--------|--------|-------| +| MCH-M14 | Customers | Produccion | MCH-014 | +| MCH-M15 | Orders | Produccion | MCH-015 | +| MCH-M16 | Deliveries | Produccion | MCH-016 | +| MCH-M17 | Notifications | Produccion | MCH-017 | +| MCH-M18 | Subscriptions | Produccion | MCH-018/019/020 | + +--- + +## 3. DETALLE POR MODULO + +### MCH-M01: Auth + +```yaml +modulo: + id: "MCH-M01" + nombre: "Authentication" + estado: "produccion" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/MCH-002-autenticacion.md" + requerimientos: ["RF-AUTH-001", "RF-AUTH-002"] + + objetos: + tablas: ["users", "sessions", "refresh_tokens"] + entities: ["User", "Session", "RefreshToken"] + services: ["AuthService", "JwtService", "SessionService"] + controllers: ["AuthController"] + + dependencias: + modulos: [] + externos: ["@nestjs/jwt", "@nestjs/passport"] +``` + +### MCH-M05: Sales (POS) + +```yaml +modulo: + id: "MCH-M05" + nombre: "Punto de Venta" + estado: "produccion" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/MCH-004-punto-venta.md" + requerimientos: ["RF-POS-001", "RF-POS-002", "RF-POS-003"] + + objetos: + tablas: ["sales", "sale_items", "payments", "cash_registers"] + entities: ["Sale", "SaleItem", "Payment", "CashRegister"] + services: ["SalesService", "PaymentsService", "CashRegisterService"] + controllers: ["SalesController", "PaymentsController"] + + dependencias: + modulos: ["MCH-M04", "MCH-M14"] + externos: ["stripe"] +``` + +### MCH-M09: Fiados + +```yaml +modulo: + id: "MCH-M09" + nombre: "Sistema Fiados" + estado: "produccion" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/MCH-008-sistema-fiados.md" + + objetos: + tablas: ["fiados", "fiado_payments", "credit_limits"] + entities: ["Fiado", "FiadoPayment", "CreditLimit"] + services: ["FiadosService", "CreditService"] + controllers: ["FiadosController"] + + dependencias: + modulos: ["MCH-M14", "MCH-M05"] + externos: [] +``` + +--- + +## 4. MATRIZ DE DEPENDENCIAS + +``` +┌──────────┬──────┬──────┬──────┬──────┬──────┬──────┐ +│ │ Auth │ User │Store │ Prod │ Sale │ Cust │ +├──────────┼──────┼──────┼──────┼──────┼──────┼──────┤ +│ Auth │ - │ -> │ │ │ │ │ +│ Users │ <- │ - │ -> │ │ │ │ +│ Stores │ │ <- │ - │ -> │ -> │ -> │ +│ Products │ │ │ <- │ - │ │ │ +│ Sales │ │ │ <- │ <- │ - │ <- │ +│ Customers│ │ │ <- │ │ -> │ - │ +│ Fiados │ │ │ │ │ <- │ <- │ +│ Orders │ │ │ <- │ <- │ │ <- │ +└──────────┴──────┴──────┴──────┴──────┴──────┴──────┘ + +Leyenda: -> depende de, <- es dependido por +``` + +--- + +## 5. REFERENCIAS + +- Database: @MCH_DEF_DB +- Entities: @MCH_DEF_ENTITIES +- Services: @MCH_DEF_SERVICES +- Navegacion rapida: @MCH_QUICK_MODULES + +--- + +*Definicion canonica v1.0.0 - MiChangarrito* diff --git a/docs/_definitions/SERVICES-CATALOG.md b/docs/_definitions/SERVICES-CATALOG.md new file mode 100644 index 000000000..369a34510 --- /dev/null +++ b/docs/_definitions/SERVICES-CATALOG.md @@ -0,0 +1,146 @@ +# Services Catalog - MiChangarrito + +**Alias:** @MCH_DEF_SERVICES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Services** | 18+ | +| **Por Modulo** | Ver seccion 2 | + +--- + +## 2. SERVICES POR MODULO + +### 2.1 Modulo: Auth + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| AuthService | `auth.service.ts` | JwtService, UsersService | Autenticacion de usuarios | +| JwtService | `jwt.service.ts` | ConfigService | Generacion/validacion JWT | +| SessionService | `session.service.ts` | Repository | Gestion de sesiones | + +### 2.2 Modulo: Users + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| UsersService | `users.service.ts` | Repository | CRUD de usuarios | + +### 2.3 Modulo: Stores + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| StoresService | `stores.service.ts` | Repository | CRUD de tiendas | +| StoreSettingsService | `store-settings.service.ts` | Repository | Configuracion de tiendas | + +### 2.4 Modulo: Products + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| ProductsService | `products.service.ts` | Repository | CRUD de productos | +| CategoriesService | `categories.service.ts` | Repository | CRUD de categorias | +| InventoryService | `inventory.service.ts` | Repository | Control de stock | + +### 2.5 Modulo: Sales (POS) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| SalesService | `sales.service.ts` | Repository, ProductsService | Procesamiento de ventas | +| PaymentsService | `payments.service.ts` | StripeService | Procesamiento de pagos | +| CashRegisterService | `cash-register.service.ts` | Repository | Control de caja | + +### 2.6 Modulo: Customers + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| CustomersService | `customers.service.ts` | Repository | CRUD de clientes | + +### 2.7 Modulo: Fiados + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| FiadosService | `fiados.service.ts` | Repository, CustomersService | Gestion de creditos | +| CreditService | `credit.service.ts` | Repository | Limites de credito | + +### 2.8 Modulo: Orders + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| OrdersService | `orders.service.ts` | Repository, ProductsService | Gestion de pedidos | +| DeliveriesService | `deliveries.service.ts` | Repository | Entregas a domicilio | + +### 2.9 Modulo: Subscriptions + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| SubscriptionsService | `subscriptions.service.ts` | Repository, StripeService | Gestion de suscripciones | +| PlansService | `plans.service.ts` | Repository | CRUD de planes | +| TokensService | `tokens.service.ts` | Repository | Gestion de tokens IA | + +### 2.10 Modulo: Integraciones + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| WhatsAppService | `whatsapp.service.ts` | HttpService, ConfigService | Integracion Meta API | +| LLMService | `llm.service.ts` | HttpService, ConfigService | Integracion OpenRouter | +| StripeService | `stripe.service.ts` | Stripe SDK | Integracion Stripe | + +--- + +## 3. INYECCION DE DEPENDENCIAS + +```yaml +dependencias: + AuthService: + inyecta: + - JwtService + - UsersService + - SessionService + inyectado_en: + - AuthController + - JwtAuthGuard + + SalesService: + inyecta: + - ProductsService + - InventoryService + - PaymentsService + inyectado_en: + - SalesController + - OrdersService + + FiadosService: + inyecta: + - CustomersService + - CreditService + inyectado_en: + - FiadosController + - SalesService + + WhatsAppService: + inyecta: + - HttpService + - ConfigService + - LLMService + inyectado_en: + - WhatsAppController + - OrdersService + - NotificationsService +``` + +--- + +## 4. REFERENCIAS + +- Entities: @MCH_DEF_ENTITIES +- Controllers: Ver documentacion API en `/api/docs` +- Ubicacion: `apps/backend/src/modules/*/services/` + +--- + +*Definicion canonica v1.0.0 - MiChangarrito* diff --git a/docs/_definitions/_INDEX.yml b/docs/_definitions/_INDEX.yml new file mode 100644 index 000000000..6d54080b5 --- /dev/null +++ b/docs/_definitions/_INDEX.yml @@ -0,0 +1,75 @@ +# Indice de Definiciones del Proyecto +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" +fecha_creacion: "2026-01-16" +descripcion: "Definiciones canonicas del proyecto MiChangarrito" + +# ============================================================================ +# REFERENCIAS A WORKSPACE (Definiciones Globales) +# ============================================================================ +referencias_workspace: + protocolos: + CCA: "@WS_DEF_CCA" + CAPVED: "@WS_DEF_CAPVED" + + validaciones: + backend: "@WS_DEF_VAL_BE" + frontend: "@WS_DEF_VAL_FE" + ddl: "@WS_DEF_VAL_DDL" + devops: "@WS_DEF_VAL_DEVOPS" + +# ============================================================================ +# DEFINICIONES LOCALES DEL PROYECTO +# ============================================================================ +definiciones_locales: + database: + archivo: "DATABASE-SCHEMA.md" + alias: "@MCH_DEF_DB" + descripcion: "Schema canonico de base de datos MiChangarrito" + tablas_principales: + - users + - stores + - products + - sales + - orders + - customers + - fiados + - subscriptions + - tokens + + entities: + archivo: "ENTITIES-CATALOG.md" + alias: "@MCH_DEF_ENTITIES" + descripcion: "Catalogo de entidades del proyecto" + total_entities: 25 + + services: + archivo: "SERVICES-CATALOG.md" + alias: "@MCH_DEF_SERVICES" + descripcion: "Catalogo de servicios del proyecto" + total_services: 18 + + modules: + archivo: "MODULES-CATALOG.md" + alias: "@MCH_DEF_MODULES" + descripcion: "Catalogo de modulos del proyecto" + total_modules: 18 + +# ============================================================================ +# HERENCIA (Proyecto Independiente) +# ============================================================================ +herencia: + padre: null + nivel: 0 + definiciones_heredadas: [] + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + total_definiciones: 4 + total_referencias_ws: 6 + ultima_actualizacion: "2026-01-16" diff --git a/docs/_quick/QUICK-API.yml b/docs/_quick/QUICK-API.yml new file mode 100644 index 000000000..c97ac6432 --- /dev/null +++ b/docs/_quick/QUICK-API.yml @@ -0,0 +1,148 @@ +# Navegacion Rapida de API - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" + +# ============================================================================ +# ENDPOINTS POR MODULO +# ============================================================================ +por_modulo: + auth: + base: "/api/v1/auth" + endpoints: + - { method: "POST", path: "/login", descripcion: "Login usuario" } + - { method: "POST", path: "/register", descripcion: "Registro nuevo usuario" } + - { method: "POST", path: "/refresh", descripcion: "Refresh token" } + - { method: "POST", path: "/logout", descripcion: "Cerrar sesion" } + - { method: "GET", path: "/me", descripcion: "Obtener usuario actual" } + + stores: + base: "/api/v1/stores" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar tiendas del usuario" } + - { method: "POST", path: "/", descripcion: "Crear nueva tienda" } + - { method: "GET", path: "/:id", descripcion: "Obtener tienda por ID" } + - { method: "PATCH", path: "/:id", descripcion: "Actualizar tienda" } + - { method: "DELETE", path: "/:id", descripcion: "Eliminar tienda" } + + products: + base: "/api/v1/products" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar productos" } + - { method: "POST", path: "/", descripcion: "Crear producto" } + - { method: "GET", path: "/:id", descripcion: "Obtener producto" } + - { method: "PATCH", path: "/:id", descripcion: "Actualizar producto" } + - { method: "DELETE", path: "/:id", descripcion: "Eliminar producto" } + - { method: "PATCH", path: "/:id/stock", descripcion: "Actualizar stock" } + + sales: + base: "/api/v1/sales" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar ventas" } + - { method: "POST", path: "/", descripcion: "Crear venta (POS)" } + - { method: "GET", path: "/:id", descripcion: "Obtener venta" } + - { method: "POST", path: "/:id/cancel", descripcion: "Cancelar venta" } + - { method: "GET", path: "/report/daily", descripcion: "Reporte diario" } + + customers: + base: "/api/v1/customers" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar clientes" } + - { method: "POST", path: "/", descripcion: "Crear cliente" } + - { method: "GET", path: "/:id", descripcion: "Obtener cliente" } + - { method: "PATCH", path: "/:id", descripcion: "Actualizar cliente" } + + fiados: + base: "/api/v1/fiados" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar fiados activos" } + - { method: "POST", path: "/", descripcion: "Crear fiado" } + - { method: "GET", path: "/:id", descripcion: "Obtener fiado" } + - { method: "POST", path: "/:id/payment", descripcion: "Registrar pago" } + - { method: "GET", path: "/customer/:customerId", descripcion: "Fiados por cliente" } + + orders: + base: "/api/v1/orders" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar pedidos" } + - { method: "POST", path: "/", descripcion: "Crear pedido" } + - { method: "GET", path: "/:id", descripcion: "Obtener pedido" } + - { method: "PATCH", path: "/:id/status", descripcion: "Actualizar estado" } + - { method: "POST", path: "/:id/delivery", descripcion: "Asignar entrega" } + + subscriptions: + base: "/api/v1/subscriptions" + endpoints: + - { method: "GET", path: "/plans", descripcion: "Listar planes disponibles" } + - { method: "GET", path: "/current", descripcion: "Suscripcion actual" } + - { method: "POST", path: "/subscribe", descripcion: "Suscribirse a plan" } + - { method: "POST", path: "/cancel", descripcion: "Cancelar suscripcion" } + + tokens: + base: "/api/v1/tokens" + endpoints: + - { method: "GET", path: "/packages", descripcion: "Paquetes de tokens" } + - { method: "GET", path: "/balance", descripcion: "Balance actual" } + - { method: "POST", path: "/purchase", descripcion: "Comprar tokens" } + - { method: "GET", path: "/usage", descripcion: "Historial de uso" } + +# ============================================================================ +# ENDPOINTS POR METODO +# ============================================================================ +por_metodo: + GET: + - "/api/v1/auth/me" + - "/api/v1/stores" + - "/api/v1/products" + - "/api/v1/sales" + - "/api/v1/customers" + - "/api/v1/fiados" + - "/api/v1/orders" + POST: + - "/api/v1/auth/login" + - "/api/v1/auth/register" + - "/api/v1/sales" + - "/api/v1/orders" + - "/api/v1/fiados" + PATCH: + - "/api/v1/stores/:id" + - "/api/v1/products/:id" + - "/api/v1/orders/:id/status" + DELETE: + - "/api/v1/stores/:id" + - "/api/v1/products/:id" + +# ============================================================================ +# AUTENTICACION +# ============================================================================ +autenticacion: + tipo: "JWT Bearer" + header: "Authorization" + formato: "Bearer {token}" + endpoints_publicos: + - "/api/v1/auth/login" + - "/api/v1/auth/register" + - "/api/v1/health" + - "/api/docs" + +# ============================================================================ +# ERRORES COMUNES +# ============================================================================ +errores: + 400: "Bad Request - Datos invalidos" + 401: "Unauthorized - Token invalido o expirado" + 403: "Forbidden - Sin permisos para esta accion" + 404: "Not Found - Recurso no encontrado" + 409: "Conflict - Recurso ya existe" + 422: "Unprocessable Entity - Validacion fallida" + 500: "Internal Server Error" + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + swagger: "http://localhost:3141/api/docs" + postman: "docs/api-contracts/" + services: "@MCH_DEF_SERVICES" diff --git a/docs/_quick/QUICK-DATABASE.yml b/docs/_quick/QUICK-DATABASE.yml new file mode 100644 index 000000000..738392379 --- /dev/null +++ b/docs/_quick/QUICK-DATABASE.yml @@ -0,0 +1,180 @@ +# Navegacion Rapida de Base de Datos - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" + +# ============================================================================ +# SCHEMAS +# ============================================================================ +schemas: + public: + descripcion: "Schema principal - Usuarios y configuracion base" + tablas_count: 4 + tablas_principales: ["users", "roles", "permissions", "user_roles"] + + stores: + descripcion: "Gestion de tiendas/changarritos" + tablas_count: 3 + tablas_principales: ["stores", "store_settings", "store_hours"] + + products: + descripcion: "Catalogo de productos e inventario" + tablas_count: 4 + tablas_principales: ["products", "categories", "inventory", "price_history"] + + sales: + descripcion: "Punto de venta y transacciones" + tablas_count: 4 + tablas_principales: ["sales", "sale_items", "payments", "cash_registers"] + + orders: + descripcion: "Pedidos y entregas" + tablas_count: 3 + tablas_principales: ["orders", "order_items", "deliveries"] + + customers: + descripcion: "Gestion de clientes" + tablas_count: 2 + tablas_principales: ["customers", "customer_addresses"] + + fiados: + descripcion: "Sistema de creditos/fiados" + tablas_count: 3 + tablas_principales: ["fiados", "fiado_payments", "credit_limits"] + + subscriptions: + descripcion: "Planes y suscripciones SaaS" + tablas_count: 3 + tablas_principales: ["plans", "subscriptions", "subscription_history"] + + tokens: + descripcion: "Tienda de tokens IA" + tablas_count: 3 + tablas_principales: ["token_packages", "token_purchases", "token_usage"] + + notifications: + descripcion: "Sistema de notificaciones" + tablas_count: 3 + tablas_principales: ["notifications", "notification_templates", "notification_logs"] + + integrations: + descripcion: "Integraciones externas" + tablas_count: 3 + tablas_principales: ["whatsapp_configs", "llm_configs", "payment_configs"] + + analytics: + descripcion: "Metricas y reportes" + tablas_count: 3 + tablas_principales: ["daily_metrics", "monthly_reports", "predictions"] + +# ============================================================================ +# TABLAS PRINCIPALES (Top 10) +# ============================================================================ +tablas_principales: + - nombre: "users" + schema: "public" + descripcion: "Usuarios del sistema (duenos de changarritos)" + entity: "User.entity.ts" + relaciones: ["stores", "subscriptions", "sessions"] + + - nombre: "stores" + schema: "stores" + descripcion: "Changarritos/tiendas" + entity: "Store.entity.ts" + relaciones: ["users", "products", "sales", "customers"] + + - nombre: "products" + schema: "products" + descripcion: "Catalogo de productos" + entity: "Product.entity.ts" + relaciones: ["stores", "categories", "sale_items", "order_items"] + + - nombre: "sales" + schema: "sales" + descripcion: "Ventas realizadas en POS" + entity: "Sale.entity.ts" + relaciones: ["stores", "sale_items", "payments", "customers"] + + - nombre: "customers" + schema: "customers" + descripcion: "Clientes del changarrito" + entity: "Customer.entity.ts" + relaciones: ["stores", "sales", "orders", "fiados"] + + - nombre: "fiados" + schema: "fiados" + descripcion: "Creditos otorgados a clientes" + entity: "Fiado.entity.ts" + relaciones: ["customers", "stores", "fiado_payments"] + + - nombre: "orders" + schema: "orders" + descripcion: "Pedidos (WhatsApp/Web)" + entity: "Order.entity.ts" + relaciones: ["stores", "customers", "order_items", "deliveries"] + + - nombre: "subscriptions" + schema: "subscriptions" + descripcion: "Suscripciones de usuarios a planes" + entity: "Subscription.entity.ts" + relaciones: ["users", "plans"] + + - nombre: "plans" + schema: "subscriptions" + descripcion: "Planes de suscripcion disponibles" + entity: "Plan.entity.ts" + relaciones: ["subscriptions"] + + - nombre: "token_usage" + schema: "tokens" + descripcion: "Uso de tokens de IA" + entity: "TokenUsage.entity.ts" + relaciones: ["users", "stores"] + +# ============================================================================ +# BUSQUEDA RAPIDA +# ============================================================================ +busqueda: + por_modulo: + auth: ["users", "sessions", "refresh_tokens"] + stores: ["stores", "store_settings", "store_hours"] + products: ["products", "categories", "inventory"] + sales: ["sales", "sale_items", "payments", "cash_registers"] + customers: ["customers", "customer_addresses"] + fiados: ["fiados", "fiado_payments", "credit_limits"] + orders: ["orders", "order_items", "deliveries"] + subscriptions: ["plans", "subscriptions", "subscription_history"] + tokens: ["token_packages", "token_purchases", "token_usage"] + + por_tipo: + catalogo: ["plans", "token_packages", "categories"] + transaccional: ["sales", "orders", "fiados", "payments"] + auditoria: ["notification_logs", "token_usage", "subscription_history"] + configuracion: ["store_settings", "whatsapp_configs", "llm_configs"] + +# ============================================================================ +# CONEXION +# ============================================================================ +conexion: + host: "localhost" + puerto: 5432 + database: "michangarrito_db" + usuario: "ver .env" + password: "ver .env" + +# ============================================================================ +# MIGRACIONES RECIENTES +# ============================================================================ +migraciones: + ubicacion: "apps/backend/src/database/migrations/" + recientes: [] + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + schema_completo: "@MCH_DEF_DB" + entities: "@MCH_DEF_ENTITIES" + especificaciones: "docs/02-especificaciones/ARQUITECTURA-DATABASE.md" diff --git a/docs/_quick/QUICK-INDEX.yml b/docs/_quick/QUICK-INDEX.yml new file mode 100644 index 000000000..8e6e27869 --- /dev/null +++ b/docs/_quick/QUICK-INDEX.yml @@ -0,0 +1,117 @@ +# Indice de Navegacion Rapida - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" +fecha_creacion: "2026-01-16" +descripcion: "Navegacion rapida del proyecto MiChangarrito" + +# ============================================================================ +# PUNTO DE ENTRADA RAPIDO +# ============================================================================ +inicio_rapido: + descripcion: "Accesos directos a recursos principales" + + documentacion: + principal: "docs/README.md" + mapa: "docs/_MAP.md" + vision: "docs/00-vision-general/" + + definiciones: + indice: "docs/_definitions/_INDEX.yml" + database: "docs/_definitions/DATABASE-SCHEMA.md" + entities: "docs/_definitions/ENTITIES-CATALOG.md" + modules: "docs/_definitions/MODULES-CATALOG.md" + services: "docs/_definitions/SERVICES-CATALOG.md" + + orchestration: + indice: "orchestration/_MAP.md" + inventarios: "orchestration/inventarios/" + trazas: "orchestration/trazas/" + +# ============================================================================ +# INDICES RAPIDOS +# ============================================================================ +indices_rapidos: + modulos: "QUICK-MODULES.yml" + database: "QUICK-DATABASE.yml" + api: "QUICK-API.yml" + +# ============================================================================ +# ATAJOS POR ROL +# ============================================================================ +por_rol: + backend_developer: + - "docs/_definitions/ENTITIES-CATALOG.md" + - "docs/_definitions/SERVICES-CATALOG.md" + - "orchestration/inventarios/BACKEND_INVENTORY.yml" + - "apps/backend/src/modules/" + + frontend_developer: + - "docs/_quick/QUICK-API.yml" + - "orchestration/inventarios/FRONTEND_INVENTORY.yml" + - "apps/frontend/src/" + + mobile_developer: + - "apps/mobile/src/" + - "docs/01-epicas/MCH-022-modo-offline.md" + + database_admin: + - "docs/_definitions/DATABASE-SCHEMA.md" + - "docs/_quick/QUICK-DATABASE.yml" + - "orchestration/inventarios/DATABASE_INVENTORY.yml" + - "database/ddl/" + + architect: + - "docs/00-vision-general/" + - "docs/_definitions/MODULES-CATALOG.md" + - "orchestration/DEPENDENCY-GRAPH.yml" + - "docs/02-especificaciones/ARQUITECTURA-DATABASE.md" + + product_owner: + - "docs/_MAP.md" + - "docs/01-epicas/" + - "orchestration/PROJECT-STATUS.md" + +# ============================================================================ +# APPS DEL PROYECTO +# ============================================================================ +aplicaciones: + backend: + ruta: "apps/backend/" + puerto: 3141 + tecnologia: "NestJS 10.3.0" + documentacion: "orchestration/inventarios/BACKEND_INVENTORY.yml" + + frontend: + ruta: "apps/frontend/" + puerto: 3140 + tecnologia: "React 19.2.0 + Vite 7.2.4" + documentacion: "orchestration/inventarios/FRONTEND_INVENTORY.yml" + + mobile: + ruta: "apps/mobile/" + puerto: 8081 + tecnologia: "React Native + Expo" + documentacion: "apps/mobile/README.md" + + mcp_server: + ruta: "apps/mcp-server/" + puerto: 3142 + tecnologia: "TypeScript + MCP SDK" + documentacion: "apps/mcp-server/README.md" + + whatsapp_service: + ruta: "apps/whatsapp-service/" + puerto: 3143 + tecnologia: "NestJS + Meta Cloud API" + documentacion: "apps/whatsapp-service/README.md" + +# ============================================================================ +# REFERENCIAS A WORKSPACE +# ============================================================================ +workspace: + quick_index: "@WS_QUICK_INDEX" + definitions: "@WS_DEF_*" + catalog: "shared/catalog/" diff --git a/docs/_quick/QUICK-MODULES.yml b/docs/_quick/QUICK-MODULES.yml new file mode 100644 index 000000000..ab7b5ed63 --- /dev/null +++ b/docs/_quick/QUICK-MODULES.yml @@ -0,0 +1,185 @@ +# Navegacion Rapida de Modulos - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" + +# ============================================================================ +# MODULOS POR ESTADO +# ============================================================================ +por_estado: + produccion: + # Fase 1 - Infraestructura Base + - id: "MCH-M01" + nombre: "Auth" + ruta: "apps/backend/src/modules/auth/" + epica: "MCH-002" + + - id: "MCH-M02" + nombre: "Users" + ruta: "apps/backend/src/modules/users/" + epica: "MCH-001" + + - id: "MCH-M03" + nombre: "Stores" + ruta: "apps/backend/src/modules/stores/" + epica: "MCH-001" + + - id: "MCH-M04" + nombre: "Products" + ruta: "apps/backend/src/modules/products/" + epica: "MCH-003" + + - id: "MCH-M05" + nombre: "Sales (POS)" + ruta: "apps/backend/src/modules/sales/" + epica: "MCH-004" + + - id: "MCH-M06" + nombre: "Payments" + ruta: "apps/backend/src/modules/payments/" + epica: "MCH-005" + + # Fase 2-3 - Inteligencia + - id: "MCH-M07" + nombre: "Onboarding" + ruta: "apps/backend/src/modules/onboarding/" + epica: "MCH-006" + + - id: "MCH-M08" + nombre: "Templates" + ruta: "apps/backend/src/modules/templates/" + epica: "MCH-007" + + - id: "MCH-M09" + nombre: "Fiados" + ruta: "apps/backend/src/modules/fiados/" + epica: "MCH-008" + + - id: "MCH-M10" + nombre: "Predictions" + ruta: "apps/backend/src/modules/predictions/" + epica: "MCH-009" + + - id: "MCH-M11" + nombre: "MCP Server" + ruta: "apps/mcp-server/" + epica: "MCH-010" + + - id: "MCH-M12" + nombre: "WhatsApp" + ruta: "apps/whatsapp-service/" + epica: "MCH-011" + + - id: "MCH-M13" + nombre: "LLM Chat" + ruta: "apps/backend/src/modules/llm/" + epica: "MCH-012/013" + + # Fase 4-5 - Negocio + - id: "MCH-M14" + nombre: "Customers" + ruta: "apps/backend/src/modules/customers/" + epica: "MCH-014" + + - id: "MCH-M15" + nombre: "Orders" + ruta: "apps/backend/src/modules/orders/" + epica: "MCH-015" + + - id: "MCH-M16" + nombre: "Deliveries" + ruta: "apps/backend/src/modules/deliveries/" + epica: "MCH-016" + + - id: "MCH-M17" + nombre: "Notifications" + ruta: "apps/backend/src/modules/notifications/" + epica: "MCH-017" + + - id: "MCH-M18" + nombre: "Subscriptions" + ruta: "apps/backend/src/modules/subscriptions/" + epica: "MCH-018/019/020" + + desarrollo: [] + + planificado: + - id: "MCH-M19" + nombre: "Referidos" + epica: "MCH-023" + + - id: "MCH-M20" + nombre: "CoDi/SPEI" + epica: "MCH-024" + + - id: "MCH-M21" + nombre: "Analytics" + epica: "MCH-034" + + - id: "MCH-M22" + nombre: "Reports" + epica: "MCH-035" + +# ============================================================================ +# MODULOS POR CATEGORIA +# ============================================================================ +por_categoria: + foundation: + descripcion: "Modulos base del sistema" + modulos: + - { id: "MCH-M01", nombre: "Auth", estado: "produccion" } + - { id: "MCH-M02", nombre: "Users", estado: "produccion" } + - { id: "MCH-M03", nombre: "Stores", estado: "produccion" } + + business: + descripcion: "Modulos de negocio" + modulos: + - { id: "MCH-M04", nombre: "Products", estado: "produccion" } + - { id: "MCH-M05", nombre: "Sales", estado: "produccion" } + - { id: "MCH-M09", nombre: "Fiados", estado: "produccion" } + - { id: "MCH-M14", nombre: "Customers", estado: "produccion" } + - { id: "MCH-M15", nombre: "Orders", estado: "produccion" } + - { id: "MCH-M16", nombre: "Deliveries", estado: "produccion" } + + integration: + descripcion: "Integraciones externas" + modulos: + - { id: "MCH-M06", nombre: "Payments", estado: "produccion" } + - { id: "MCH-M11", nombre: "MCP Server", estado: "produccion" } + - { id: "MCH-M12", nombre: "WhatsApp", estado: "produccion" } + - { id: "MCH-M13", nombre: "LLM Chat", estado: "produccion" } + + saas: + descripcion: "Modulos SaaS/Monetizacion" + modulos: + - { id: "MCH-M18", nombre: "Subscriptions", estado: "produccion" } + - { id: "MCH-M07", nombre: "Onboarding", estado: "produccion" } + + analytics: + descripcion: "Reportes y analytics" + modulos: + - { id: "MCH-M10", nombre: "Predictions", estado: "produccion" } + - { id: "MCH-M21", nombre: "Analytics", estado: "planificado" } + - { id: "MCH-M22", nombre: "Reports", estado: "planificado" } + +# ============================================================================ +# BUSQUEDA RAPIDA +# ============================================================================ +busqueda: + por_prefijo: + MCH-M: "Modulo MiChangarrito" + + por_archivo: + especificacion: "docs/01-epicas/MCH-*.md" + entities: "apps/backend/src/modules/*/entities/*.entity.ts" + services: "apps/backend/src/modules/*/services/*.service.ts" + controllers: "apps/backend/src/modules/*/controllers/*.controller.ts" + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + catalogo_completo: "@MCH_DEF_MODULES" + indice_general: "docs/_MAP.md" diff --git a/orchestration/DEPENDENCY-GRAPH.yml b/orchestration/DEPENDENCY-GRAPH.yml new file mode 100644 index 000000000..fdf384d70 --- /dev/null +++ b/orchestration/DEPENDENCY-GRAPH.yml @@ -0,0 +1,241 @@ +# Grafo de Dependencias - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# DEPENDENCIAS EXTERNAS (NPM, etc.) +# ============================================================================ +dependencias_externas: + backend: + framework: "NestJS" + version: "^10.3.0" + principales: + - nombre: "@nestjs/core" + version: "^10.3.0" + uso: "Framework core" + - nombre: "@nestjs/typeorm" + version: "^10.0.0" + uso: "ORM integration" + - nombre: "@nestjs/jwt" + version: "^10.2.0" + uso: "JWT authentication" + - nombre: "@nestjs/passport" + version: "^10.0.0" + uso: "Auth strategies" + - nombre: "stripe" + version: "^14.0.0" + uso: "Payment processing" + - nombre: "typeorm" + version: "^0.3.20" + uso: "Database ORM" + + frontend: + framework: "React" + version: "^19.2.0" + principales: + - nombre: "react" + version: "^19.2.0" + uso: "UI Framework" + - nombre: "vite" + version: "^7.2.4" + uso: "Build tool" + - nombre: "@tanstack/react-query" + version: "^5.0.0" + uso: "Data fetching" + - nombre: "zustand" + version: "^4.5.0" + uso: "State management" + + mobile: + framework: "React Native + Expo" + principales: + - nombre: "expo" + version: "^50.0.0" + uso: "Mobile development" + - nombre: "react-native" + version: "^0.73.0" + uso: "Mobile UI" + + database: + tipo: "PostgreSQL" + version: "16+" + orm: "TypeORM" + + cache: + tipo: "Redis" + version: "7+" + +# ============================================================================ +# DEPENDENCIAS INTERNAS (Entre modulos del proyecto) +# ============================================================================ +dependencias_internas: + modulos: + auth: + depende_de: [] + dependientes: ["users", "stores", "subscriptions"] + descripcion: "Modulo base de autenticacion" + + users: + depende_de: ["auth"] + dependientes: ["stores", "subscriptions"] + descripcion: "Gestion de usuarios" + + stores: + depende_de: ["auth", "users"] + dependientes: ["products", "sales", "customers", "orders", "fiados"] + descripcion: "Gestion de tiendas" + + products: + depende_de: ["stores"] + dependientes: ["sales", "orders", "predictions"] + descripcion: "Catalogo de productos" + + sales: + depende_de: ["stores", "products", "customers", "payments"] + dependientes: ["fiados", "analytics"] + descripcion: "Punto de venta" + + customers: + depende_de: ["stores"] + dependientes: ["sales", "orders", "fiados"] + descripcion: "Gestion de clientes" + + fiados: + depende_de: ["stores", "customers", "sales"] + dependientes: [] + descripcion: "Sistema de creditos" + + orders: + depende_de: ["stores", "products", "customers"] + dependientes: ["deliveries", "notifications"] + descripcion: "Pedidos" + + deliveries: + depende_de: ["orders"] + dependientes: ["notifications"] + descripcion: "Entregas a domicilio" + + payments: + depende_de: [] + dependientes: ["sales", "subscriptions"] + descripcion: "Procesamiento de pagos (Stripe)" + + subscriptions: + depende_de: ["users", "payments"] + dependientes: [] + descripcion: "Planes y suscripciones" + + notifications: + depende_de: ["orders", "deliveries"] + dependientes: [] + descripcion: "Sistema de notificaciones" + + whatsapp: + depende_de: ["llm"] + dependientes: ["orders", "notifications"] + descripcion: "Integracion WhatsApp" + + llm: + depende_de: [] + dependientes: ["whatsapp", "predictions"] + descripcion: "Integracion LLM/IA" + + predictions: + depende_de: ["products", "sales", "llm"] + dependientes: [] + descripcion: "Predicciones de inventario" + +# ============================================================================ +# DEPENDENCIAS DE WORKSPACE +# ============================================================================ +dependencias_workspace: + definiciones: + - "@WS_DEF_CCA" + - "@WS_DEF_VAL_BE" + - "@WS_DEF_VAL_FE" + - "@WS_DEF_VAL_DDL" + + catalogos: [] + # MiChangarrito no usa catalogos compartidos actualmente + +# ============================================================================ +# DEPENDENCIAS DE OTROS PROYECTOS +# ============================================================================ +dependencias_proyectos: + # MiChangarrito es proyecto independiente (nivel 0) + proyectos: [] + +# ============================================================================ +# GRAFO VISUAL +# ============================================================================ +grafo: + formato: "mermaid" + diagrama: | + graph TD + subgraph Foundation + AUTH[Auth] + USERS[Users] + STORES[Stores] + end + + subgraph Business + PROD[Products] + SALES[Sales/POS] + CUST[Customers] + FIADOS[Fiados] + ORDERS[Orders] + DELIV[Deliveries] + end + + subgraph Integrations + PAY[Payments] + WA[WhatsApp] + LLM[LLM/IA] + NOTIF[Notifications] + end + + subgraph SaaS + SUBS[Subscriptions] + PRED[Predictions] + end + + AUTH --> USERS + USERS --> STORES + STORES --> PROD + STORES --> CUST + STORES --> SALES + PROD --> SALES + CUST --> SALES + PAY --> SALES + CUST --> FIADOS + SALES --> FIADOS + CUST --> ORDERS + PROD --> ORDERS + ORDERS --> DELIV + ORDERS --> NOTIF + DELIV --> NOTIF + USERS --> SUBS + PAY --> SUBS + LLM --> WA + LLM --> PRED + PROD --> PRED + SALES --> PRED + + subgraph Workspace + WS[Definiciones WS] + end + + AUTH --> WS + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + total_dependencias_externas: 12 + total_dependencias_internas: 15 + total_dependencias_workspace: 4 + ultima_actualizacion: "2026-01-16" diff --git a/orchestration/TRACEABILITY.yml b/orchestration/TRACEABILITY.yml new file mode 100644 index 000000000..c70113e97 --- /dev/null +++ b/orchestration/TRACEABILITY.yml @@ -0,0 +1,225 @@ +# Trazabilidad del Proyecto - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# TRAZABILIDAD MODULO <-> OBJETOS +# ============================================================================ +trazabilidad_modulos: + MCH-M01: + nombre: "Authentication" + epica: "MCH-002" + documentacion: + especificacion: "docs/01-epicas/MCH-002-autenticacion.md" + requerimientos: ["RF-AUTH-001", "RF-AUTH-002"] + + objetos_bd: + tablas: ["users", "sessions", "refresh_tokens"] + schemas: ["public"] + + objetos_backend: + entities: ["User", "Session", "RefreshToken"] + services: ["AuthService", "JwtService", "SessionService"] + controllers: ["AuthController"] + guards: ["JwtAuthGuard", "RolesGuard"] + + objetos_frontend: + componentes: ["LoginForm", "RegisterForm"] + stores: ["authStore"] + hooks: ["useAuth"] + + MCH-M03: + nombre: "Stores" + epica: "MCH-001" + documentacion: + especificacion: "docs/01-epicas/MCH-001-infraestructura-base.md" + + objetos_bd: + tablas: ["stores", "store_settings", "store_hours"] + schemas: ["stores"] + + objetos_backend: + entities: ["Store", "StoreSettings", "StoreHours"] + services: ["StoresService", "StoreSettingsService"] + controllers: ["StoresController"] + + objetos_frontend: + componentes: ["StoreSelector", "StoreForm", "StoreSettings"] + stores: ["storeStore"] + + MCH-M05: + nombre: "Sales (POS)" + epica: "MCH-004" + documentacion: + especificacion: "docs/01-epicas/MCH-004-punto-venta.md" + requerimientos: ["RF-POS-001", "RF-POS-002", "RF-POS-003"] + + objetos_bd: + tablas: ["sales", "sale_items", "payments", "cash_registers"] + schemas: ["sales"] + + objetos_backend: + entities: ["Sale", "SaleItem", "Payment", "CashRegister"] + services: ["SalesService", "PaymentsService", "CashRegisterService"] + controllers: ["SalesController", "PaymentsController"] + + objetos_frontend: + componentes: ["POSTerminal", "ProductGrid", "Cart", "PaymentModal"] + stores: ["posStore"] + hooks: ["usePOS", "useCart"] + + MCH-M09: + nombre: "Fiados" + epica: "MCH-008" + documentacion: + especificacion: "docs/01-epicas/MCH-008-sistema-fiados.md" + + objetos_bd: + tablas: ["fiados", "fiado_payments", "credit_limits"] + schemas: ["fiados"] + + objetos_backend: + entities: ["Fiado", "FiadoPayment", "CreditLimit"] + services: ["FiadosService", "CreditService"] + controllers: ["FiadosController"] + + objetos_frontend: + componentes: ["FiadosList", "FiadoDetail", "PaymentForm"] + hooks: ["useFiados"] + + MCH-M15: + nombre: "Orders" + epica: "MCH-015" + documentacion: + especificacion: "docs/01-epicas/MCH-015-pedidos-whatsapp.md" + + objetos_bd: + tablas: ["orders", "order_items", "deliveries"] + schemas: ["orders"] + + objetos_backend: + entities: ["Order", "OrderItem", "Delivery"] + services: ["OrdersService", "DeliveriesService"] + controllers: ["OrdersController"] + + objetos_frontend: + componentes: ["OrdersList", "OrderDetail", "OrderStatus"] + +# ============================================================================ +# MATRIZ DE COBERTURA +# ============================================================================ +cobertura: + total_modulos: 18 + con_documentacion: 18 + con_tests: 0 + con_trazabilidad_completa: 5 + + detalle: + MCH-M01: + documentacion: true + especificacion: true + requerimientos: true + historias: false + tests_unitarios: false + tests_integracion: false + + MCH-M05: + documentacion: true + especificacion: true + requerimientos: true + historias: false + tests_unitarios: false + tests_integracion: false + + MCH-M09: + documentacion: true + especificacion: true + requerimientos: false + historias: false + tests_unitarios: false + tests_integracion: false + +# ============================================================================ +# REFERENCIAS CRUZADAS +# ============================================================================ +referencias_cruzadas: + por_documento: + "MCH-002-autenticacion.md": + modulos: ["MCH-M01"] + tablas: ["users", "sessions", "refresh_tokens"] + entities: ["User", "Session", "RefreshToken"] + + "MCH-004-punto-venta.md": + modulos: ["MCH-M05"] + tablas: ["sales", "sale_items", "payments"] + entities: ["Sale", "SaleItem", "Payment"] + + "MCH-008-sistema-fiados.md": + modulos: ["MCH-M09"] + tablas: ["fiados", "fiado_payments"] + entities: ["Fiado", "FiadoPayment"] + + por_modulo: + MCH-M01: + documentos: + - "MCH-002-autenticacion.md" + + MCH-M05: + documentos: + - "MCH-004-punto-venta.md" + + MCH-M09: + documentos: + - "MCH-008-sistema-fiados.md" + +# ============================================================================ +# IMPACTO DE CAMBIOS +# ============================================================================ +impacto: + users: + tipo: "tabla" + impacta: + entities: ["User"] + services: ["AuthService", "UsersService"] + controllers: ["AuthController", "UsersController"] + documentos: ["MCH-002-autenticacion.md"] + modulos: ["MCH-M01", "MCH-M02"] + + stores: + tipo: "tabla" + impacta: + entities: ["Store"] + services: ["StoresService", "ProductsService", "SalesService"] + documentos: ["MCH-001-infraestructura-base.md"] + modulos: ["MCH-M03", "MCH-M04", "MCH-M05"] + + sales: + tipo: "tabla" + impacta: + entities: ["Sale"] + services: ["SalesService", "FiadosService"] + documentos: ["MCH-004-punto-venta.md", "MCH-008-sistema-fiados.md"] + modulos: ["MCH-M05", "MCH-M09"] + +# ============================================================================ +# HISTORIAL DE CAMBIOS +# ============================================================================ +historial: + - fecha: "2026-01-16" + tipo: "creacion" + descripcion: "Trazabilidad inicial del proyecto" + autor: "Claude" + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + modulos_mapeados: 5 + tablas_mapeadas: 15 + entities_mapeadas: 15 + documentos_referenciados: 5 + ultima_actualizacion: "2026-01-16" diff --git a/orchestration/_refs/WS-REFERENCES.yml b/orchestration/_refs/WS-REFERENCES.yml new file mode 100644 index 000000000..7332eccd9 --- /dev/null +++ b/orchestration/_refs/WS-REFERENCES.yml @@ -0,0 +1,113 @@ +# Referencias a Workspace - MiChangarrito +# Proyecto: michangarrito +# Fecha: 2026-01-16 + +version: "1.0.0" +proyecto: "michangarrito" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# REFERENCIAS A DEFINICIONES GLOBALES +# ============================================================================ +definiciones_workspace: + protocolos: + CCA: + alias: "@WS_DEF_CCA" + archivo: "orchestration/_definitions/protocols/CCA-PROTOCOL.md" + uso: "Protocolo de Carga de Contexto Automatica" + + CCA_LIGHT: + alias: "@WS_DEF_CCA_LIGHT" + archivo: "orchestration/_definitions/protocols/CCA-LIGHT.md" + uso: "Version ligera para subagentes" + + validaciones: + backend: + alias: "@WS_DEF_VAL_BE" + archivo: "orchestration/_definitions/validations/VALIDATION-BACKEND.md" + comandos: ["npm run build", "npm run lint", "npm run test"] + + frontend: + alias: "@WS_DEF_VAL_FE" + archivo: "orchestration/_definitions/validations/VALIDATION-FRONTEND.md" + comandos: ["npm run build", "npm run lint", "npm run typecheck"] + + ddl: + alias: "@WS_DEF_VAL_DDL" + archivo: "orchestration/_definitions/validations/VALIDATION-DDL.md" + + devops: + alias: "@WS_DEF_VAL_DEVOPS" + archivo: "orchestration/_definitions/validations/VALIDATION-DEVOPS.md" + +# ============================================================================ +# REFERENCIAS A NAVEGACION RAPIDA GLOBAL +# ============================================================================ +navegacion_workspace: + indice: + alias: "@WS_QUICK_INDEX" + archivo: "orchestration/_quick/QUICK-INDEX.yml" + + perfiles: + alias: "@WS_QUICK_PERFILES" + archivo: "orchestration/_quick/QUICK-PERFILES.yml" + + directivas: + alias: "@WS_QUICK_DIRECTIVAS" + archivo: "orchestration/_quick/QUICK-DIRECTIVAS.yml" + +# ============================================================================ +# REFERENCIAS A CATALOGO COMPARTIDO +# ============================================================================ +catalogo_compartido: + indice: + alias: "@WS_CATALOG" + archivo: "shared/catalog/CATALOG-INDEX.yml" + + funcionalidades: + auth: "shared/catalog/auth/" + notifications: "shared/catalog/notifications/" + payments: "shared/catalog/payments/" + multi_tenancy: "shared/catalog/multi-tenancy/" + +# ============================================================================ +# HERENCIA DE PROYECTO (Independiente - Nivel 0) +# ============================================================================ +herencia: + padre: null + nivel: 0 + hereda_de: [] + descripcion: "Proyecto independiente sin herencia de otros proyectos" + +# ============================================================================ +# PROPAGACION +# ============================================================================ +propagacion: + mirror: "shared/mirrors/michangarrito/" + status: "shared/mirrors/michangarrito/PROPAGATION-STATUS.yml" + consumidores: [] + descripcion: "MiChangarrito no tiene proyectos consumidores actualmente" + +# ============================================================================ +# ALIASES LOCALES DEL PROYECTO +# ============================================================================ +aliases_locales: + definiciones: + database: "@MCH_DEF_DB" + entities: "@MCH_DEF_ENTITIES" + services: "@MCH_DEF_SERVICES" + modules: "@MCH_DEF_MODULES" + + navegacion: + quick_index: "@MCH_QUICK_INDEX" + quick_api: "@MCH_QUICK_API" + quick_db: "@MCH_QUICK_DB" + quick_modules: "@MCH_QUICK_MODULES" + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + referencias_ws: 10 + aliases_locales: 8 + ultima_actualizacion: "2026-01-16"