Files
web/apps/scandic-web/constants/booking.ts
2025-03-07 09:08:19 +00:00

154 lines
3.9 KiB
TypeScript

import {
ExtraBunkBedIcon,
ExtraPullOutBedIcon,
ExtraSofaBedIcon,
ExtraWallBedIcon,
KingBedIcon,
QueenBedIcon,
SingleBedIcon,
TwinBedsIcon,
} from "@/components/Icons"
import type { IconProps } from "@/types/components/icon"
export enum BookingStatusEnum {
BookingCompleted = "BookingCompleted",
Cancelled = "Cancelled",
CheckedOut = "CheckedOut",
ConfirmedInScorpio = "ConfirmedInScorpio",
CreatedInOhip = "CreatedInOhip",
PaymentAuthorized = "PaymentAuthorized",
PaymentCancelled = "PaymentCancelled",
PaymentError = "PaymentError",
PaymentFailed = "PaymentFailed",
PaymentRegistered = "PaymentRegistered",
PaymentSucceeded = "PaymentSucceeded",
PendingAcceptPriceChange = "PendingAcceptPriceChange",
PendingGuarantee = "PendingGuarantee",
PendingPayment = "PendingPayment",
}
export enum ChildBedTypeEnum {
Crib = "Crib",
ExtraBed = "ExtraBed",
ParentsBed = "ParentsBed",
Unknown = "Unknown",
}
export const REDEMPTION = "redemption"
export const SEARCHTYPE = "searchtype"
export const BOOKING_CONFIRMATION_NUMBER = "confirmationNumber"
export const MEMBERSHIP_FAILED_ERROR = "MembershipFailedError"
export enum PaymentMethodEnum {
card = "card",
swish = "swish",
vipps = "vipps",
mobilePay = "mobilePay",
applePay = "applePay",
googlePay = "googlePay",
alipayPlus = "alipayPlus",
weChatPay = "weChatPay",
payPal = "payPal",
klarna = "klarna",
americanExpress = "americanExpress",
dankort = "dankort",
dinersClub = "dinersClub",
jcb = "jcb",
masterCard = "masterCard",
visa = "visa",
maestro = "maestro",
chinaUnionPay = "chinaUnionPay",
discover = "discover",
}
export enum PaymentErrorCodeEnum {
Abandoned = 5,
Cancelled = 6,
Failed = 7,
}
export const PAYMENT_METHOD_TITLES: Record<
keyof typeof PaymentMethodEnum,
string
> = {
card: "Credit card",
swish: "Swish",
vipps: "Vipps",
mobilePay: "MobilePay",
applePay: "Apple Pay",
googlePay: "Google Pay",
alipayPlus: "Alipay+",
weChatPay: "WeChat Pay",
payPal: "PayPal",
klarna: "Klarna",
americanExpress: "American Express",
dankort: "Dankort",
dinersClub: "Diners Club",
jcb: "JCB",
masterCard: "Mastercard",
visa: "Visa",
maestro: "Maestro",
chinaUnionPay: "China UnionPay",
discover: "Discover",
}
export const PAYMENT_METHOD_ICONS: Record<
keyof typeof PaymentMethodEnum,
string
> = {
card: "/_static/icons/payment/mastercard.svg",
swish: "/_static/icons/payment/swish.svg",
vipps: "/_static/icons/payment/vipps.svg",
mobilePay: "/_static/icons/payment/mobilepay.svg",
applePay: "/_static/icons/payment/apple-pay.svg",
googlePay: "/_static/icons/payment/google-pay.svg",
alipayPlus: "/_static/icons/payment/alipay-plus.svg",
weChatPay: "/_static/icons/payment/wechat-pay.svg",
payPal: "/_static/icons/payment/paypal.svg",
klarna: "/_static/icons/payment/klarna.svg",
americanExpress: "/_static/icons/payment/american-express.svg",
dankort: "/_static/icons/payment/dankort.svg",
dinersClub: "/_static/icons/payment/diners-club.svg",
jcb: "/_static/icons/payment/jcb.svg",
masterCard: "/_static/icons/payment/mastercard.svg",
visa: "/_static/icons/payment/visa.svg",
maestro: "/_static/icons/payment/maestro.svg",
chinaUnionPay: "/_static/icons/payment/china-union-pay.svg",
discover: "/_static/icons/payment/discover.svg",
}
export enum BedTypeEnum {
King = "King",
Queen = "Queen",
Single = "Single",
Twin = "Twin",
Other = "Other",
}
export enum ExtraBedTypeEnum {
SofaBed = "SofaBed",
WallBed = "WallBed",
PullOutBed = "PullOutBed",
BunkBed = "BunkBed",
}
type BedTypes = keyof typeof BedTypeEnum | keyof typeof ExtraBedTypeEnum
export const BED_TYPE_ICONS: Record<
BedTypes,
(props: IconProps) => JSX.Element
> = {
King: KingBedIcon,
Queen: QueenBedIcon,
Single: SingleBedIcon,
Twin: TwinBedsIcon,
SofaBed: ExtraSofaBedIcon,
WallBed: ExtraWallBedIcon,
BunkBed: ExtraBunkBedIcon,
PullOutBed: ExtraPullOutBedIcon,
Other: SingleBedIcon,
}