47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import type { CalculatePricesPerNightProps } from "@/types/components/hotelReservation/selectRate/roomCard"
|
|
|
|
export function calculatePricesPerNight({
|
|
publicLocalPrice,
|
|
memberLocalPrice,
|
|
publicRequestedPrice,
|
|
memberRequestedPrice,
|
|
petRoomLocalPrice,
|
|
petRoomRequestedPrice,
|
|
nights,
|
|
}: CalculatePricesPerNightProps) {
|
|
const totalPublicLocalPricePerNight = publicLocalPrice
|
|
? petRoomLocalPrice
|
|
? Number(publicLocalPrice.pricePerNight) +
|
|
Number(petRoomLocalPrice.price) / nights
|
|
: Number(publicLocalPrice.pricePerNight)
|
|
: undefined
|
|
|
|
const totalMemberLocalPricePerNight = memberLocalPrice
|
|
? petRoomLocalPrice
|
|
? Number(memberLocalPrice.pricePerNight) +
|
|
Number(petRoomLocalPrice.price) / nights
|
|
: Number(memberLocalPrice.pricePerNight)
|
|
: undefined
|
|
|
|
const totalPublicRequestedPricePerNight = publicRequestedPrice
|
|
? petRoomRequestedPrice
|
|
? Number(publicRequestedPrice.pricePerNight) +
|
|
Number(petRoomRequestedPrice.price) / nights
|
|
: Number(publicRequestedPrice.pricePerNight)
|
|
: undefined
|
|
|
|
const totalMemberRequestedPricePerNight = memberRequestedPrice
|
|
? petRoomRequestedPrice
|
|
? Number(memberRequestedPrice.pricePerNight) +
|
|
Number(petRoomRequestedPrice.price) / nights
|
|
: Number(memberRequestedPrice.pricePerNight)
|
|
: undefined
|
|
|
|
return {
|
|
totalPublicLocalPricePerNight,
|
|
totalMemberLocalPricePerNight,
|
|
totalPublicRequestedPricePerNight,
|
|
totalMemberRequestedPricePerNight,
|
|
}
|
|
}
|