All files / src/features/Events/EventDetail/host host.types.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

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;
};