Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /**
* PayBuilder — the Host tab on the Event Detail view.
*
* A "host" is the product's brand for the backend `operator` role: an account
* member confined to the events assigned to them, who works the door on the
* GiveCash app. The portal never sends the word "host" over the wire — the API
* speaks `operator` / `memberStatus`.
*/
/** One row of `GET /merchants/{merchantID}/products/{productID}/members`. */
export type EventHostApiRow = {
accID: number;
productID: number;
userAccID: number;
assignedByID: number;
assignedAt: string;
memberStatus: string;
joinedAt: string | null;
userEmail: string;
userFirstName: string;
userLastName: string;
userAvatarImageURL: string;
};
/**
* A host is "assigned" once they have activated on the app (`joined`) and
* "invited" while their invitation is still outstanding. The API models this on
* the membership, not the event assignment, so a host can be assigned to the
* event while still pending.
*/
export type EventHostStatus = "assigned" | "invited";
export type EventHostRow = {
/**
* The member's user account id — the `{member_id}` path segment. Named `id`
* because the V2 table keys rows on it (`useIdForRows`).
*/
id: number;
name: string;
email: string;
imageURL: string;
status: EventHostStatus;
};
/**
* One row of the Assign Host modal: a host on the merchant's bench, plus
* whether they are already assigned to the event the modal was opened from.
*/
export type AssignableHostRow = {
/** The member's user account id — the `{member_id}` path segment. */
id: number;
name: string;
email: string;
imageURL: string;
isAssigned: boolean;
};
|