## 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
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { Module } from "@nestjs/common";
|
|
import { ConfigModule } from "@nestjs/config";
|
|
import { HealthModule } from "./health/health.module";
|
|
import { PrismaModule } from "./prisma/prisma.module";
|
|
import { CalculatorModule } from "./calculator/calculator.module";
|
|
import { TrackingModule } from "./tracking/tracking.module";
|
|
import { AuthModule } from "./auth/auth.module";
|
|
import { UsersModule } from "./users/users.module";
|
|
import { PackagesModule } from "./packages/packages.module";
|
|
import { PreAlertsModule } from "./pre-alerts/pre-alerts.module";
|
|
import { B2BModule } from "./b2b/b2b.module";
|
|
import { StorageModule } from "./storage/storage.module";
|
|
import { AuditLogModule } from "./audit-log/audit-log.module";
|
|
import { NotificationsModule } from "./notifications/notifications.module";
|
|
import { TariffsModule } from "./tariffs/tariffs.module";
|
|
import { ProductsModule } from "./products/products.module";
|
|
import { WarehousesModule } from "./warehouses/warehouses.module";
|
|
import { IntegrationsModule } from "./integrations/integrations.module";
|
|
import { PaymentsModule } from "./payments/payments.module";
|
|
import { ConsolidationsModule } from "./consolidations/consolidations.module";
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
envFilePath: ["../../.env", ".env"],
|
|
}),
|
|
PrismaModule,
|
|
HealthModule,
|
|
CalculatorModule,
|
|
TrackingModule,
|
|
AuthModule,
|
|
UsersModule,
|
|
PackagesModule,
|
|
PreAlertsModule,
|
|
B2BModule,
|
|
StorageModule,
|
|
AuditLogModule,
|
|
NotificationsModule,
|
|
TariffsModule,
|
|
ProductsModule,
|
|
WarehousesModule,
|
|
IntegrationsModule,
|
|
PaymentsModule,
|
|
ConsolidationsModule,
|
|
],
|
|
})
|
|
export class AppModule {}
|