One of the RegenCHOICE [[ch:fields:here]] ====== ContactStatus==== my contact [[ch:t:status]] with candidate; displayed as [[StatusLabel]]. ===== Permitted values ===== (unclear about whether these are OK as strings, or whether they should represent integers.) * UNKNOWN (default) * UNINVITED * BLOCKED * INVITEDBYME * INVITINGME * CONNECTED * THEYBREAK * IBREAK * BROKEN ===== Transition rules ===== * ContactStatus start off UNKNOWN * When a [[ch:fields:CanNum]] is assigned to a new candidate, ContactStatus = UNINVITED * On the [[ch:uix:candidate]] page, * (un)blocking UNINVITED ←→ BLOCKED * withdrawing invitation: INVITEDBYME → UNINVITED * When I change ContactStatus to BLOCKED: * [[ch:fields:CanProps]] are erased, if they were stored * On the [[ch:uix:Candidate]] page * accepting invitation: INVITINGME → CONNECTED * creating invitation: UNINVITED → INVITEDBYME * When the other chooser changes ContactStatus to BLOCKED * ContactStatus UNINVITED or INVITEDBYME → UNKNOWN * to stay there blocklisted, need to check results every time against blocklist * When either chooser accepts an invitation from the other, ContactStatus → CONNECTED * On the [[ch:uix:Break contact]] page, * I can ask to break: CONNECTED → IBREAK * I can cancel that: IBREAK → CONNECTED * If they want to break: THEYBREAK → BROKEN * The other chooser can change CONNECTED → IBREAK (for them) = THEYBREAK (for me) * If ContactStatus becomes BROKEN, * [[ch:fields:CoChannels]] and [[ch:fields:CoMyChannels]] are erased ===== A function of ===== * [[CanNum]] ===== Commentary ===== ---- === see also === * [[ch:uix:Candidates]] page * [[ch:uix:Candidate]] page * [[ch:uix:Contacts]] page * [[ch:uix:Break contact]] page * [[https://www.simongrant.org/RegenCHOICE/infoarch/field-index.html#ContactStatus|on the HTML site]] === backlinks === {{backlinks>.}}