"use client"
import { useIntl } from "react-intl"

import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
import { formatPrice } from "@scandic-hotels/common/utils/numberFormatting"

import { calculateVat } from "../../../../utils/SelectRate"
import RegularRow from "./Regular"

import type { Price } from "../../../../types/price"

interface VatProps {
  totalPrice: Price
  vat: number
}

const noVatCurrencies = [
  CurrencyEnum.CC,
  CurrencyEnum.POINTS,
  CurrencyEnum.EUROBONUS,
  CurrencyEnum.Voucher,
  CurrencyEnum.Unknown,
]

export default function VatRow({ totalPrice, vat }: VatProps) {
  const intl = useIntl()

  if (noVatCurrencies.includes(totalPrice.local.currency)) {
    return null
  }

  const { vatAmount, priceExclVat } = calculateVat(totalPrice.local.price, vat)

  return (
    <>
      <RegularRow
        label={intl.formatMessage({
          id: "booking.priceExcludingVat",
          defaultMessage: "Price excluding VAT",
        })}
        value={formatPrice(intl, priceExclVat, totalPrice.local.currency)}
      />
      <RegularRow
        label={intl.formatMessage(
          { id: "priceDetails.VAT", defaultMessage: "VAT {vat}%" },
          { vat }
        )}
        value={formatPrice(intl, vatAmount, totalPrice.local.currency)}
      />
    </>
  )
}
