Skip to content

feat(wms): viaje — Shipment.vehicleId (modos excluyentes) + holder vehicle (Inc 7 flota) - #429

Merged
vgpastor merged 4 commits into
mainfrom
feature/wms-vehicles-inc7
Jul 22, 2026
Merged

feat(wms): viaje — Shipment.vehicleId (modos excluyentes) + holder vehicle (Inc 7 flota)#429
vgpastor merged 4 commits into
mainfrom
feature/wms-vehicles-inc7

Conversation

@vgpastor

Copy link
Copy Markdown
Contributor

Closes #428

Inc 7 del EPIC de flota (#409) — cierra el EPIC. Dominio puro en warehouse-core (logistics + containers), sin HTTP.

Qué entra

  • Shipment.vehicleId (opcional) — si está, la carga del viaje ES el inventario actual del vehículo (cero duplicación). Modos excluyentes: vehicleId presente ⇒ items/containerIds vacíos (invariante, VehicleShipmentCargoError); modo suelto (el actual, transportes ad-hoc) intacto. vehicleId se valida como UUID.
  • ContainerHolderType.Vehicle — un Container puede estar sostenido por un vehículo en ruta (distinto de resource = punto fijo). El agregado Container ya es agnóstico al tipo de holder → un solo valor de enum.

No-breaking para el host

vehicleId es opcional en ShipmentSnapshot (vehicleId?: string | null): el mapper del host (apps/api, drizzle-shipment.repository.ts) sigue compilando sin proveerlo (frontera 1:1, patrón #366/#367). No hay migración en esta rama. La persistencia de vehicle_id en ResponseGrid es un follow-up para cuando adopte envíos con vehículo.

Verificación (local)

  • warehouse-core build + test: 207/207 verde (+8: 3 container, 5 shipment).
  • api build + tsc --noEmit --incremental false: 0 errores — prueba de que el vehicleId opcional NO rompe el host.
  • prettier de paquetes: limpio.

EPIC de flota completo

Inc 1–7 entregados: peso/volumen + computeLoad · vehículo=Warehouse(kind) + maxCapacity · actorId · persistencia containers · operaciones (estado/manifiesto/exclusión FEFO) · kits de misión (LoadTemplate + gapAnalysis) · viaje (Shipment.vehicleId). Refinamientos futuros anotados en #409 (auto-descarga vía ShipmentDelivered, tara/strict/multi-bin, persistencia host de vehicle_id).

Spec: docs/superpowers/specs/2026-07-13-vehiculos-almacen-movil-design.md §6.

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
response-grid Ready Ready Preview, Comment Jul 22, 2026 9:29am

Request Review

@vgpastor
vgpastor enabled auto-merge (squash) July 22, 2026 09:29
@vgpastor
vgpastor merged commit 0aaa315 into main Jul 22, 2026
13 checks passed
@vgpastor
vgpastor deleted the feature/wms-vehicles-inc7 branch July 22, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Vehículos] Inc 7: viaje — Shipment.vehicleId (modos excluyentes) + holder vehicle (flota)

1 participant