Lizandro Guarnizo 93db76897d feat: audit & sync with documentacion.html v1.1 — schema, tests, modules, web
Schema (packages/database/prisma/schema.prisma):
- Add SenaeCategory, B2BRequestStatus, NotificationChannel enums
- Add Package fields: lengthCm, widthCm, heightCm, hasDiscrepancy, photos[],
  senaeCategory, senaeAuthNumber, senaeDeclarationId
- Add userId field to PreAlert
- Add RefreshToken model (JWT auth — Fase 1)
- Add Tariff model (configurable rates: pricePerLb, insurancePct, etc.)
- Add B2BRequest model (heavy cargo imports — doc §13)
- Add Notification model (multi-channel: email, whatsapp, sms, push — doc §16)
- Add userAgent to AuditLog

API (apps/api):
- Add CalculatorModule: calculates SENAE cost breakdown (flete, seguro,
  FODINFA, arancel, IVA) per formulas in doc §15
- Add TrackingModule: public GET /api/tracking/:id endpoint (doc §07)
- Register both modules in AppModule
- Add Jest config + test scripts (test, test:watch, test:cov, test:ci)

Tests (80 tests, 97.45% coverage):
- calculator.util.spec.ts: 35 tests — SENAE formulas, volumetric weight,
  4x4 regime, tariff rates, error validation, breakdown
- tracking-id.util.spec.ts: 13 tests — format, uniqueness, validation
- suite-code.util.spec.ts: 13 tests — generation, parsing, address builder
- health.controller.spec.ts: 5 tests — ok/degraded/timestamp
- calculator.spec.ts: 8 tests — controller + service unit tests
- tracking.controller.spec.ts: 9 tests — public search, 404, no sensitive data

Web (apps/web):
- page.tsx: Full landing page matching documentation (Hero, Services,
  8 Modules, Tracking states, SENAE calculator preview, 6 Roles, Companies)
- /calculadora: SENAE categories + API usage guide
- /tracking: Tracking ID format + 11 states reference

Seed (packages/database/prisma/seed.ts):
- Creates all 6 roles (SUPER_ADMIN, ADMIN_EMPRESA, OPERADOR_BODEGA,
  AGENTE_ADUANERO, CLIENTE, SOPORTE)
- Assigns Suite EC-00001 to demo client
- Creates demo Package EC-20260506-000001 with status history
- Creates demo PreAlert and B2BRequest

.env.example: Added all 9 integrations from doc §18:
  Amazon SP-API, SENAE WebService, Stripe/PayPhone, WhatsApp Business API,
  SendGrid/SES, SMS/Twilio, FedEx/DHL/UPS couriers, S3/MinIO, Sentry

migration.sql: Updated to reflect all new models and fields
turbo.json + package.json: Added test, test:cov, test:ci tasks + db:seed script
2026-06-01 08:25:01 -05:00

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).

S
Description
No description provided
Readme
521 KiB
Languages
TypeScript 60.5%
HTML 35.7%
CSS 3.6%
Dockerfile 0.2%