Skip to content

[EPIC] Vehículos como almacén móvil: capacidad de carga, kits de misión y viaje (WMS) #409

Description

@vgpastor

Objetivo

Los vehículos de carga de Protección Civil son almacenes móviles: se cargan/descargan/inspeccionan con capacidad máxima (carga útil) y estado de carga en vivo; la carga se verifica contra kits de misión (dotación tipo PSA/incendio/inundación → qué falta/qué sobra); y cuando el vehículo viaja, la expedición lo referencia sin duplicar la carga. Todo movimiento registra quién lo hizo (cadena de custodia).

WMS-first (producto OSS de #355, Fase 3): todo aterriza en @globalemergency/warehouse-core + @globalemergency/warehouse-postgres (dominio + persistencia, sin HTTP/auth — los pone cada host). ResponseGrid = futuro consumidor. Alimenta el alcance v1 (#385).

Diseño completo: spec local docs/superpowers/specs/2026-07-13-vehiculos-almacen-movil-design.md (v2, con la exploración exhaustiva de casuísticas de PC). Decisiones clave: vehículo = Warehouse(kind=vehicle) + maxCapacity (carga útil, parcial ok) · peso/volumen híbrido (catálogo unitario + override del container, regla del nodo más alto anti doble-conteo, honestidad con flags de dato incompleto) · capacidad soft-warn · LoadTemplate + gap analysis (checklist con dotación fija vs carga) · Shipment.vehicleId (modos excluyentes) · stock de vehículos excluido de la auto-asignación · no archivar con carga.

Incrementos

  • Inc 1 — Peso/volumen del material: Supply.unitWeightKg/unitVolumeM3 + computeLoad puro
  • Inc 2 — Vehículo: WarehouseKind + maxCapacity (+ Capacity→kernel) + invariante no-archivar-con-carga + wms_0002
  • Inc 3actorId en el kardex (wms_0003) — cadena de custodia (transversal WMS)
  • Inc 4 — Persistencia de containers en el paquete (wms.containers + repo + UoW) — pre-paso para palets
  • Inc 5 — Operaciones: cargar/descargar (UoW+holder+idempotencia+actor), vehicleLoadStatus (soft-warn), getVehicleLoad (manifiesto), política de asignación
  • Inc 6 — Kits de misión: LoadTemplate (+permanent) + gapAnalysis + wms_0004
  • Inc 7 — Viaje: Shipment.vehicleId (excluyentes) + holder vehicle

Por composición (sin modelo nuevo, documentar en Fase 3): caducidad en flota (#393 sobre vehículos), ciclo de misión (consumo issue / retorno con triaje damaged/quarantine / diff de manifiesto), recuento pre-salida (#388), dotación fija = carga de larga duración.

Futuro anotado: remolques · estado operativo del vehículo · ADR/cadena de frío como compatibilidad · conversiones de empaquetado · bin-packing · plantillas de vehículo-tipo · booking · préstamo cross-scope · auto-descarga (ShipmentDelivered) · tara explícita · modo strict · multi-bin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1area:inventoryepicin-progressClaim activo: una sesion trabaja esta issue (protocolo en AGENTS.md)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions