# BACKEND INVENTORY - MiChangarrito # Version: 1.0.0 # Ultima actualizacion: 2026-01-07 # Sistema: SIMCO - NEXUS v4.0 metadata: proyecto: "michangarrito" componente: "backend" framework: "NestJS" lenguaje: "TypeScript" puerto: 3141 estado: "100% modulos completados" # ============================================================================ # RESUMEN # ============================================================================ resumen: total_modulos: 14 total_controllers: 14 total_services: 14 total_entities: 29 arquitectura: "modular" orm: "TypeORM" auth: "JWT" # ============================================================================ # ESTRUCTURA DE CARPETAS # ============================================================================ estructura: root: "apps/backend" src: "apps/backend/src" modules: "apps/backend/src/modules" shared: "apps/backend/src/shared" config: "apps/backend/src/config" # ============================================================================ # MODULOS # ============================================================================ modulos: - nombre: auth ruta: "modules/auth" descripcion: "Autenticacion JWT y sesiones" estado: completado archivos: - auth.module.ts - auth.controller.ts - auth.service.ts - strategies/jwt.strategy.ts - guards/jwt-auth.guard.ts - guards/roles.guard.ts - dto/login.dto.ts - dto/register.dto.ts endpoints: - POST /auth/login - POST /auth/register - POST /auth/logout - GET /auth/me - POST /auth/refresh - nombre: billing ruta: "modules/billing" descripcion: "Facturacion y reportes fiscales" estado: completado archivos: - billing.module.ts - billing.controller.ts - billing.service.ts endpoints: - GET /billing/invoices - POST /billing/invoices - GET /billing/reports - nombre: categories ruta: "modules/categories" descripcion: "Categorias de productos" estado: completado archivos: - categories.module.ts - categories.controller.ts - categories.service.ts - entities/category.entity.ts - dto/create-category.dto.ts endpoints: - GET /categories - GET /categories/:id - POST /categories - PUT /categories/:id - DELETE /categories/:id - nombre: customers ruta: "modules/customers" descripcion: "Clientes y cuentas de credito" estado: completado archivos: - customers.module.ts - customers.controller.ts - customers.service.ts - entities/customer.entity.ts - entities/credit-account.entity.ts - dto/create-customer.dto.ts endpoints: - GET /customers - GET /customers/:id - POST /customers - PUT /customers/:id - DELETE /customers/:id - GET /customers/:id/credit - POST /customers/:id/credit/payment - nombre: integrations ruta: "modules/integrations" descripcion: "Integraciones externas por tenant" estado: completado archivos: - integrations.module.ts - integrations.controller.ts - integrations.service.ts - entities/tenant-integration.entity.ts - providers/whatsapp.provider.ts - providers/llm.provider.ts - providers/stripe.provider.ts endpoints: - GET /integrations - GET /integrations/:provider - POST /integrations/:provider/configure - DELETE /integrations/:provider - POST /integrations/:provider/test - nombre: inventory ruta: "modules/inventory" descripcion: "Control de inventario" estado: completado archivos: - inventory.module.ts - inventory.controller.ts - inventory.service.ts - entities/stock-movement.entity.ts - entities/inventory-count.entity.ts - dto/stock-adjustment.dto.ts endpoints: - GET /inventory/products/:productId - POST /inventory/adjust - POST /inventory/count - GET /inventory/movements - GET /inventory/low-stock - nombre: messaging ruta: "modules/messaging" descripcion: "Mensajeria WhatsApp" estado: completado archivos: - messaging.module.ts - messaging.controller.ts - messaging.service.ts - entities/conversation.entity.ts - entities/message.entity.ts - gateways/whatsapp.gateway.ts endpoints: - GET /messaging/conversations - GET /messaging/conversations/:id - POST /messaging/send - POST /messaging/webhook - nombre: orders ruta: "modules/orders" descripcion: "Pedidos" estado: completado archivos: - orders.module.ts - orders.controller.ts - orders.service.ts - entities/order.entity.ts - entities/order-item.entity.ts - dto/create-order.dto.ts endpoints: - GET /orders - GET /orders/:id - POST /orders - PUT /orders/:id/status - DELETE /orders/:id - nombre: payments ruta: "modules/payments" descripcion: "Integracion con proveedores de pago" estado: completado archivos: - payments.module.ts - payments.controller.ts - payments.service.ts - providers/stripe.provider.ts - providers/mercadopago.provider.ts endpoints: - POST /payments/intent - POST /payments/confirm - GET /payments/:id - POST /payments/webhook - nombre: products ruta: "modules/products" descripcion: "Catalogo de productos" estado: completado archivos: - products.module.ts - products.controller.ts - products.service.ts - entities/product.entity.ts - entities/product-variant.entity.ts - dto/create-product.dto.ts endpoints: - GET /products - GET /products/:id - POST /products - PUT /products/:id - DELETE /products/:id - GET /products/search - GET /products/barcode/:code - nombre: sales ruta: "modules/sales" descripcion: "Punto de venta" estado: completado archivos: - sales.module.ts - sales.controller.ts - sales.service.ts - entities/sale.entity.ts - entities/sale-item.entity.ts - dto/create-sale.dto.ts endpoints: - GET /sales - GET /sales/:id - POST /sales - POST /sales/:id/void - GET /sales/daily-report - GET /sales/by-date - nombre: subscriptions ruta: "modules/subscriptions" descripcion: "Planes y suscripciones" estado: completado archivos: - subscriptions.module.ts - subscriptions.controller.ts - subscriptions.service.ts - entities/plan.entity.ts - entities/subscription.entity.ts - entities/token-usage.entity.ts endpoints: - GET /subscriptions/plans - GET /subscriptions/current - POST /subscriptions/subscribe - POST /subscriptions/cancel - GET /subscriptions/tokens - POST /subscriptions/tokens/purchase # ============================================================================ # SHARED # ============================================================================ shared: guards: - jwt-auth.guard.ts - roles.guard.ts - tenant.guard.ts decorators: - current-user.decorator.ts - current-tenant.decorator.ts - roles.decorator.ts interceptors: - transform.interceptor.ts - logging.interceptor.ts - tenant.interceptor.ts filters: - http-exception.filter.ts - validation.filter.ts pipes: - validation.pipe.ts middleware: - tenant.middleware.ts - logger.middleware.ts # ============================================================================ # CONFIGURACION # ============================================================================ config: database: archivo: "config/database.config.ts" tipo: "TypeORM" jwt: archivo: "config/jwt.config.ts" expiracion: "7d" redis: archivo: "config/redis.config.ts" db: 8 # ============================================================================ # COMANDOS # ============================================================================ comandos: build: "npm run build" start_dev: "npm run start:dev" lint: "npm run lint" test: "npm run test" # ============================================================================ # DEPENDENCIAS PRINCIPALES # ============================================================================ dependencias: nestjs: "^10.x" typeorm: "^0.3.x" passport: "^0.7.x" passport-jwt: "^4.x" class-validator: "^0.14.x" class-transformer: "^0.5.x" # ============================================================================ # NOTAS # ============================================================================ notas: - "Todos los endpoints requieren JWT excepto /auth/login y /auth/register" - "Multi-tenant via header X-Tenant-ID o JWT claim" - "Rate limiting configurado por tenant" - "Swagger disponible en /api/docs"