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
| State | Meaning |
|---|---|
| BenefitSelected | User chose a star tier from "Sponsor this event". |
| MethodSelected | A Sponsoring Method matching that tier (or untyped) is chosen. |
| ValueEntered | Amount set at or above the method's minimum value. |
| PaymentPending / Active / Failed | The external payment outcome and resulting sponsorship state. |
| Expired | Sponsorship period elapsed (EndDate reached). |
| Added / Edited / Rated / Reordered | Organiser administration actions on a sponsor entry. |
| RemovalConfirm / Removed | Confirmation-gated deletion of a sponsor entry. |
Reading the diagram
- The star rating (1–5) selected during
BenefitSelecteddetermines which Sponsoring Method entries are offered inMethodSelected— methods tagged with that benefit type, plus any untyped ones. PaymentPendingalways resolves outside the app — Any.Company never processes the payment itself, only records the outcome.AdminManagedruns independently of the payment path: an organiser can edit, re-rate, reorder or remove a sponsor entry at any time, each action gated by its own confirmation step.