How these were drawn
States come from the status enums; transitions are reconstructed from the controller actions and abilities that move records between them. The API may enforce additional rules not visible in the frontend.
Proposal
Source: enums/proposal-status.js + publish/request/reject/unpublish/expire actions · see Proposal list & publication workflow
stateDiagram-v2 direction LR [*] --> draft draft --> pending: request publication pending --> draft: reject publication pending --> scheduled: publish (future start) pending --> active: publish (start reached) draft --> scheduled: publish (manager) draft --> active: publish (manager) scheduled --> active: start date active --> draft: unpublish scheduled --> draft: unpublish active --> expired: expire (end date = today) active --> expired: end date expired --> [*]
Activity (campaign)
Source: enums/campaign-status.js + campaign abilities · see Activity list & duplication
stateDiagram-v2 direction LR [*] --> planned planned --> active: start date active --> finished: end date finished --> closed: close with rating note right of finished : report available (canShow) note right of closed : only root/admin may edit or delete
Receipt
Source: enums/receipt-status.js + validate/reject/unreject · see Receipt verification queue
stateDiagram-v2 direction LR [*] --> draft draft --> pending: automatic checks inconclusive draft --> redeemable: automatic validation pending --> redeemable: moderator validates pending --> not_yet_redeemable: validated, entitlement later pending --> not_redeemable: validated, cannot redeem pending --> rejected: moderator rejects (reason) redeemable --> redeemed: entitlement issued not_yet_redeemable --> redeemable rejected --> redeemable: unreject (re-validate) redeemed --> [*]
Store sales month
Source: enums/shop-month-states.js + close/confirm/reject/reopen · see Store sales declaration & month closing
stateDiagram-v2 direction LR [*] --> without_sales without_sales --> unclosed: first sale entered unclosed --> closed: store closes month closed --> validated: management confirms closed --> unclosed: management rejects (communication sent) validated --> unclosed: admin/manager reopens note right of validated : store users can only request reopening
Annual sales statement
Source: enums/intranet-sales-years-states.js · see Annual sales statement
stateDiagram-v2 direction LR [*] --> unrequested unrequested --> pending: statement enabled pending --> validated: every month validated + manager validates pending --> rejected: manager rejects (communication sent) rejected --> pending: store resubmits
Email campaign
Source: enums/emailing-campaign-status.js · see Email campaign list, duplication & stop
stateDiagram-v2 direction LR [*] --> draft draft --> scheduled: publish scheduled --> active: start datetime active --> archived: end / single send done scheduled --> archived: stop active --> archived: stop
Push notification
Source: enums/push-notification-status.js · see Push notification list & publishing
stateDiagram-v2 direction LR [*] --> draft draft --> scheduled: publish (start in future) scheduled --> active: start datetime active --> archived: end datetime / single send