All files / src/sections/PayBuilder 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                                                                                                           
export type PaymentRecurringType = "once" | "monthly" | "quarterly" | "yearly";
 
export type ProductItemType = {
  id: string;
  title: string;
  amount: string | null;
  in_stock?: number | null;
  hideInventory?: boolean;
  hideSoldOut?: boolean;
  inventory?: number | null;
  display?: boolean;
  description: string;
  thumbnail?: string;
  paymentType: PaymentRecurringType;
  variantID?: string | number;
  allowCustomPrice?: boolean;
  featureList?: string;
  signupFee?: string | null;
  signupFeeCheckbox?: boolean;
  initialInventory?: number | null;
  numSold?: number;
  seatingRowIDs?: number[]; // AC006: rows this ticket sells (assigned seating)
};
export type PendingActionType = "back" | "forward" | "reload";
export type donorModalType = "most_recent" | "top_donors";
 
// --- Assigned seating (PAY Builder 031) ---
// Field names mirror the BE contract exactly (EventSeatingRowView / TakenSeatView /
// EventSeatingConfigView / order.SeatSelection).
 
export type SeatingRow = {
  id?: number; // present once persisted (read side)
  rowLabel: string; // any format: "A", "1", "A1"
  firstSeat: number;
  lastSeat: number;
  label?: string; // optional category, e.g. "VIP"
  displayOrder?: number;
  variantIDs?: number[]; // tickets that sell this row (read side)
};
 
export type TakenSeat = { rowLabel: string; seatNumber: number };
 
export type SeatingConfig = {
  assignSeating: boolean;
  rows: SeatingRow[];
  takenSeats?: TakenSeat[];
};
 
export type SeatSelection = {
  seatingRowID: number;
  rowLabel: string;
  seatNumber: number;
};