feat(wms): viaje — Shipment.vehicleId (modos excluyentes) + holder vehicle (Inc 7 flota) - #429
Merged
Merged
Conversation
… a bordo de un vehículo — Inc 7 vehículos
… (modos excluyentes) — Inc 7 vehículos
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…(Inc 7 vehículos)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:vehicleIdpresente ⇒items/containerIdsvacíos (invariante,VehicleShipmentCargoError); modo suelto (el actual, transportes ad-hoc) intacto.vehicleIdse valida como UUID.ContainerHolderType.Vehicle— unContainerpuede estar sostenido por un vehículo en ruta (distinto deresource= punto fijo). El agregadoContainerya es agnóstico al tipo de holder → un solo valor de enum.No-breaking para el host
vehicleIdes opcional enShipmentSnapshot(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 devehicle_iden ResponseGrid es un follow-up para cuando adopte envíos con vehículo.Verificación (local)
warehouse-corebuild + test: 207/207 verde (+8: 3 container, 5 shipment).apibuild +tsc --noEmit --incremental false: 0 errores — prueba de que elvehicleIdopcional NO rompe el host.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.