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>
338 lines
8.9 KiB
YAML
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"
|