Cross-role lifecycle handoff

배출자 신청 완료가 배차담당자 배차 확정 이후 운전자 assignment와 처리자 inbound로 이어지는 mock API first spine입니다.

전체 flow로 돌아가기
Entry
Emitter request
Store
MobileLifecycleHandover
Projection
Driver / Processor
Maestro
lifecycle-emission-dispatch

진입점

한 dev-client session에서 role을 바꿔가며 같은 mock lifecycle store를 확인합니다.

emitter.request.complete.screen dispatcher.dispatch.complete.screen driver.home.assignment.driver-emission-request-20260515-001.card processor.inbound.item.processor-emission-request-20260515-001.cta

업무 lifecycle

배출 신청 완료 배출자 wizard가 `createMobileLifecycleEmissionRequest`로 handover를 upsert
배차 미배정 `listMobileLifecycleDispatcherOrders`가 dispatcher 미배차 목록에 projection
배차 확정 `assignMobileLifecycleDispatcherOrder`가 handover를 `assigned`로 전환
운전자 배차 `listMobileLifecycleDriverAssignments`가 driver home card로 projection
운전자 확인 mutation `confirmMobileLifecycleDriverAssignment`는 mock store에 연결되어 있고, modal UX는 driver 전용 flow에서 검증
처리자 입고 `listMobileLifecycleProcessorInbounds`가 inbound list/detail에 projection
입고 승인 `approveMobileLifecycleProcessorInbound`가 `weighing_pending` CTA로 전환

Deterministic flow

pnpm --filter @zerro/mobile e2e:maestro:lifecycle-emission-dispatch가 배출자, 배차담당자, 운전자, 처리자 화면을 순서대로 조작합니다.

Evidence paths

결과는 artifacts/mobile/maestro/lifecycle-emission-dispatch/latest.jsonlatest-after-flow.png, lifecycle-flow-pass.png를 기준으로 확인합니다.

Latest pass screenshot

Maestro full flow 통과 후 처리자 입고 승인 detail 화면입니다.

lifecycle flow pass screenshot

Runner note

이 flow는 여러 role을 한 세션에서 순회하므로 wrapper의 --maestro-timeout-ms 기준을 사용합니다. 최신 pass는 maestroTimeoutMs=600000, command 67개 실패 0개입니다.

검증 기준