7682b11dffe7b58db4b0472a0042761666bd6fe9
## Bugs corregidos - bodega/page.tsx: estados correctos §08 (RECIBIDO_BODEGA, EN_VERIFICACION, EN_TRANSITO_ECUADOR) - admin/page.tsx: carga paquetes reales, alertas de incidencias/B2B/cobros pendientes, barras de estado ## Nuevos portales y páginas - /aduanero/ — portal propio para AGENTE_ADUANERO (layout + dashboard §11 + declaraciones DSI) - /aduanero/declaraciones — cola de declaraciones con formulario DSI y detección DAI automática - /admin/pagos — gestión de cobros: KPIs, filtros por estado, tabla con breakdown - /portal/consolidacion — cliente crea/gestiona consolidaciones §21 - /bodega/consolidacion — operador cierra y despacha consolidaciones (→ EN_TRANSITO_ECUADOR) ## API nueva (ConsolidationsModule) - GET/POST /consolidations - GET /consolidations/:id - POST /consolidations/:id/packages - DELETE /consolidations/:id/packages/:packageId - POST /consolidations/:id/close - POST /consolidations/:id/dispatch (→ actualiza paquetes a EN_TRANSITO_ECUADOR) ## Prisma schema v0.5 - ConsolidationStatus enum (ABIERTA, CERRADA, DESPACHADA, ENTREGADA, CANCELADA) - Consolidation model con totales calculados (totalWeightLb, totalValue) - ConsolidationPackage (tabla intermedia, un paquete = una consolidación) - db push aplicado a remote DB (46.202.93.92) ## Navegación - Login: AGENTE_ADUANERO → /aduanero (ya no /bodega) - Bodega nav: añadido Consolidaciones - Portal nav: añadido Consolidar - Admin nav: añadido Cobros ## Tests (104 total, 8 suites) - payments.service.spec.ts: 16 tests (createIntent, confirm, list, findByPackageForUser) - notifications.service.spec.ts: 12 tests (getTemplates, updateTemplate, seedDefaultTemplates, notifyStatusChange, findByUser) ## Legal §21 - Registro: aviso LOPDP Ecuador + normativa NJ en footer del formulario - Landing footer: aviso detallado de protección de datos LOPDP/NJ ## api.ts: consolidations.* client methods
Moraworld Imports — Software
Casillero internacional (EE.UU. → Ecuador). Monorepo con Next.js, NestJS, PostgreSQL y Redis.
Requisitos
- Node.js 20+
- pnpm 9+ (ver instalación abajo si sale
command not found) - Postgres + Redis — en Coolify (recomendado) o Docker local
Instalar pnpm (si no lo tienes)
npm install -g pnpm@9.15.0
Cierra y abre la terminal, luego:
pnpm -v # debe mostrar 9.15.x
Alternativa sin instalar global (usa npx):
npx pnpm@9.15.0 install
npx pnpm@9.15.0 dev
Desarrollo local (paso a paso)
1. Variables de entorno
cp .env.example .env
Pega DATABASE_URL y REDIS_URL de Coolify. Guía: docs/VARIABLES-COOLIFY.md
2. Infraestructura (solo si NO usas Coolify para BD)
pnpm docker:up
Levanta PostgreSQL (localhost:5432) y Redis (localhost:6379).
Si Postgres/Redis ya están en Coolify, omite este paso.
3. Instalar dependencias
pnpm install
4. Base de datos
pnpm db:generate
pnpm db:migrate
Nombre sugerido para la primera migración: init.
5. Arrancar apps
pnpm dev
| Servicio | URL |
|---|---|
| Web (Next.js) | http://localhost:3000 |
| API (NestJS) | http://localhost:3001/api/health |
| Estado | http://localhost:3000/status |
Estructura
apps/
api/ # NestJS REST API
web/ # Next.js (landing + futuro portal)
packages/
database/ # Prisma + PostgreSQL
Coolify
Ver docs/COOLIFY.md para desplegar API y Web en Coolify (Postgres/Redis como servicios del panel o externos).
Roadmap
Ver ROADMAP.md — Fase 0 en curso.
Prototipos HTML (legacy)
Los archivos index.html, portal-cliente.html, etc. en la raíz del repo son maquetas de referencia hasta completar la migración a Next.js (Fase 1).
Languages
TypeScript
60.5%
HTML
35.7%
CSS
3.6%
Dockerfile
0.2%