Smart Events · Feature state machine

Planning Ahead

A single Day Summary entry as it moves between invitation, response, the live event window, and history — plus the loop that turns an empty day into a suggestion.

State diagram

stateDiagram-v2
    [*] --> NoPlan
    NoPlan --> Invited : organiser invites user
    Invited --> Accepted : user taps "Join"
    Invited --> Rejected : user declines invitation
    Accepted --> Ongoing : event day arrives, event underway
    Ongoing --> Past : event ends
    Rejected --> Accepted : user taps "Join" again
    Accepted --> Rejected : "Cancel RSVP" (confirmed)

    NoPlan --> Shipped : "Ship this day"
    Shipped --> [*]

    NoPlan --> OpenToSuggestions : sets available-from time (2pm/5pm/8pm)
    OpenToSuggestions --> Invited : matching plan found nearby

    Past --> [*]
    

States

StateMeaning
NoPlanThe day is empty — suggestions are offered.
InvitedShown in grey — awaiting the user's response.
AcceptedShown in black — user joined or accepted.
RejectedShown in grey with strikethrough.
OngoingToday's event, highlighted blue with a live countdown.
PastEvent has ended; available from group History.
ShippedEmpty day dismissed from the list — not an RSVP action.
OpenToSuggestionsUser declared availability via the /maps/availability call.

Reading the diagram