michangarrito/orchestration/inventarios/BACKEND_INVENTORY.yml
rckrdmrd 3bba4ce6d7 feat: Add complete epic documentation and orchestration inventories
Sprint 3-4 deliverables:
- 28 epics documented (MCH-001 to MCH-028)
- 7 development phases fully documented
- DATABASE_INVENTORY.yml, BACKEND_INVENTORY.yml, FRONTEND_INVENTORY.yml
- Task traces for database and frontend

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:40:13 -06:00

338 lines
8.9 KiB
YAML

# 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"