Listing lifecycle
No diagram code provided
LegendLiveWaitingCompletedClosed / inactive
Reading guide
| Area | States | Primary owner |
|---|---|---|
| Listing | draft, available | seller / admin |
| Transaction | reserved, sold | checkout + order orchestration |
| Fulfillment | shipped, delivered | seller / system / buyer |
Boundaries
| Concern | Location | Why |
|---|---|---|
New listing creation (∅ → draft) | create-draft-listing.action.ts | Creation is a command boundary, not a machine transition |
New listing + publish (∅ → available) | publish-listing.action.ts | Creation + publish is command handling outside applyListingTransition() |
| Publish guard | publish-listing.action.ts | NSFW validation can force the listing back to draft |
Hard delete (draft/cancelled → ∅) | delete-listing.action.ts | Deletion is a command boundary, not a machine transition |
| Transaction-driven states | checkout + order orchestration | reserved onward should be read as commerce flow, not seller editing flow |