Growth · Feature state machine

Sponsors

Two intertwined lifecycles: a member sponsoring an event through a tiered benefit and payment path, and an organiser administering the sponsor list itself.

State diagram

stateDiagram-v2
    [*] --> BenefitSelected : user taps "Sponsor this event"
    BenefitSelected --> MethodSelected : matching Sponsoring Method chosen
    MethodSelected --> ValueEntered : amount set (≥ MinValue)
    ValueEntered --> PaymentPending : redirected to payment link
    PaymentPending --> Active : payment confirmed
    PaymentPending --> Failed : payment abandoned / declined
    Failed --> MethodSelected : retry

    Active --> Expired : EndDate reached
    Expired --> [*]

    state AdminManaged {
        [*] --> Added
        Added --> Edited
        Added --> Rated : star rating (max 5)
        Added --> Reordered
        Edited --> Edited
        Rated --> Edited
        Reordered --> Reordered
        Added --> RemovalConfirm : delete requested
        RemovalConfirm --> Removed : confirmed
        RemovalConfirm --> Added : cancelled
        Removed --> [*]
    }
    

States

StateMeaning
BenefitSelectedUser chose a star tier from "Sponsor this event".
MethodSelectedA Sponsoring Method matching that tier (or untyped) is chosen.
ValueEnteredAmount set at or above the method's minimum value.
PaymentPending / Active / FailedThe external payment outcome and resulting sponsorship state.
ExpiredSponsorship period elapsed (EndDate reached).
Added / Edited / Rated / ReorderedOrganiser administration actions on a sponsor entry.
RemovalConfirm / RemovedConfirmation-gated deletion of a sponsor entry.

Reading the diagram