const MODULE = 'phase3-order-splitting' const SCENARIO = 'parent-child-multi-container-consolidation' export async function run(context) { const fixture = context.createdResources?.phase3Loading || context.createdResources?.phase3ContainerLoading const metadata = { fixture: { available: Boolean(fixture?.inboundId && fixture?.containerBookingId), marker: fixture?.marker || null, inboundId: fixture?.inboundId || null, containerBookingId: fixture?.containerBookingId || null, }, activation: { state: 'pending-public-contract', assertions: [ '父单与自动剩余子单关系可由 HTTP 查询', '已装数量 + 自动子单剩余数量 = 拆分前数量', '同一订单可分配多个柜次且同柜可包含多个订单', '子单仅允许一层且继续拆分被拒绝', ], }, } context.addCoverageGap(MODULE, SCENARIO, '父/子订单拆分、装载数量守恒与剩余自动子订单', 'PDA partial/skip 内部结算已实现,但公开 InboundOrderSummary/Detail 未返回 inboundRole、parentInboundId、rootInboundId、splitStatus 或拆分批次,HTTP 总控无法证明父子关系和守恒,不能用同 orderId 的记录数量伪造成功', 'contract-gap', metadata) context.addCoverageGap(MODULE, SCENARIO, '一单多柜与多单拼柜', 'SmartLoadingController 支持按明细分配,但当前公开契约没有订单-多柜/柜次-多订单关系聚合,也没有本轮安全 fixture 一次生成两个可装柜入库单;待真实查询 DTO 与专用 fixture 接口公开后转为断言', 'contract-gap', metadata) }