digraph G { initial[label="", shape="circle"]; pending_query[label="pending(query)"]; pending_user[label="pending(user)"]; pending_pickup[label="pending(pickup)"]; pending_kyc[label="pending(kyc)"]; suspended_query[label="suspended(query)", shape="box"]; suspended_pickup[label="suspended(pickup)", shape="box"]; suspended_kyc[label="suspended(kyc)", shape="box"]; done[label="done", shape="box"]; failed[label="failed", shape="box"]; deleted[label="deleted", shape="box"]; initial->pending_query [color="blue", label="URI trigger"]; pending_query->pending_user; pending_query->suspended_query [color="blue", label="suspend"]; pending_query->deleted [color="red", label="failure"]; suspended_query->pending_query [color="blue", label="resume"]; suspended_query->deleted [color="blue", label="force-delete"]; pending_user->pending_pickup [color="blue", label="accept"]; pending_user->deleted [color="blue", label="force-delete"]; pending_user->failed [label="expired"]; pending_pickup->pending_kyc [label="kyc required"]; pending_pickup->suspended_pickup [color="blue", label="suspend"]; pending_pickup->done; pending_pickup->failed [color="red", label="failure"]; suspended_pickup->pending_pickup [color="blue", label="resume"]; suspended_pickup->failed [color="red", label="expired"]; suspended_pickup->deleted [color="blue", label="force-delete"]; pending_kyc->suspended_kyc [color="blue", label="suspend"]; pending_kyc->pending_pickup [color="purple", label="long-poll:kyc"]; suspended_kyc->pending_kyc [color="blue", label="resume"]; suspended_kyc->deleted [color="blue", label="force-delete"]; done->deleted [color="blue", label="delete"]; failed->deleted [color="blue", label="delete"]; }