import { getBookingConfirmation } from "@/lib/trpc/memoizedRequests" import { CoffeeIcon, DiscountIcon, DoorClosedIcon, PriceTagIcon, } from "@/components/Icons" import Divider from "@/components/TempDesignSystem/Divider" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { getIntl } from "@/i18n" import styles from "./totalPrice.module.css" import type { BookingConfirmationProps } from "@/types/components/hotelReservation/bookingConfirmation/bookingConfirmation" import { BreakfastPackageEnum } from "@/types/enums/breakfast" export default async function TotalPrice({ confirmationNumber, }: BookingConfirmationProps) { const intl = await getIntl() const { booking } = await getBookingConfirmation(confirmationNumber) const totalPrice = intl.formatNumber(booking.totalPrice, { currency: booking.currencyCode, style: "currency", }) const breakfastPackage = booking.packages.find( (p) => p.code === BreakfastPackageEnum.REGULAR_BREAKFAST ) return (
{intl.formatMessage({ id: "Total price" })} {totalPrice} (~ EUR)
{`${intl.formatMessage({ id: "Room" })}, ${intl.formatMessage({ id: "booking.nights" }, { totalNights: 1 })}`} {totalPrice}
{intl.formatMessage({ id: "Breakfast" })} {breakfastPackage ? intl.formatNumber(breakfastPackage.totalPrice, { currency: breakfastPackage.currency, style: "currency", }) : intl.formatMessage({ id: "No breakfast" })}
{intl.formatMessage({ id: "Member discount" })} N/A
{intl.formatMessage({ id: "Points used" })} N/A
{intl.formatMessage({ id: "Price excl VAT" })} {intl.formatNumber(booking.totalPriceExVat, { currency: booking.currencyCode, style: "currency", })}
{intl.formatMessage({ id: "VAT" })} {booking.vatPercentage}%
{intl.formatMessage({ id: "VAT amount" })} {intl.formatNumber(booking.vatAmount, { currency: booking.currencyCode, style: "currency", })}
{intl.formatMessage({ id: "Price incl VAT" })} {intl.formatNumber(booking.totalPrice, { currency: booking.currencyCode, style: "currency", })}
{intl.formatMessage({ id: "Payment method" })} N/A
{intl.formatMessage({ id: "Payment status" })} N/A
) }