import { Answer } from './answer'; import { UserSettings } from 'types/userSettings'; import { PaymentMethod } from 'types/payment'; import { SelectedAddonInterface } from 'types/addon'; import { RCTeam } from 'types/coreEntites/Team'; export enum CheckoutArea { program = 'program', rental = 'rental', membership = 'membership', league = 'league', } export type Area = keyof typeof CheckoutArea; export interface CheckoutStore { // The last step the user visited. Enables back-to-cart feature. lastReachedStep?: string; // Teams step selectedTeam?: RCTeam; // Details step selectedFamilyMember?: UserSettings | UserSettings[]; // Payment step selectedPaymentMethod?: PaymentMethod; // Addon step selectedAddons?: SelectedAddonInterface[]; // selectedAnswers selectedAnswers?: Answer[] | { userId: number; answers: Answer[] }[]; // Amount to be payed as a deposit depositAmount?: number; selectedAnswersForInit?: { [x: string]: never }; } export interface RentalCartItem { type: 'package' | 'addon'; organizationId: number; id: number; spaceName: string; facilityName: string; picture: string; tags: string[]; date: string; startTime: string; endTime: string; startHour: string; endHour: string; hours: number; price: number; name?: string; resourcePackageAmount: number; resourcePackageId: number; } export interface FlowStep { tabName: string; urlPath: string; hidden?: boolean; } export interface Facility { facilityId: number; facilityName?: string; longDescription?: string; } export interface Space { spaceId?: number; spaceName?: string; }