import { formatFaNumber, formatPrice } from "@/helpers/func"; import { PaymentMethodEnum } from "@/pages/paymentMethods/enum/Enum"; import { DeliveryMethodEnum } from "@/pages/shipmentMethod/enum/Enum"; import type { FC } from "react"; import type { Order } from "../types/Types"; interface PaymentInfoProps { order: Order; getPaymentStatusColor: (status: string) => string; getPaymentStatusTextColor: (status: string) => string; getPaymentStatusText: (status: string) => string; } const PaymentInfo: FC = ({ order, getPaymentStatusColor, getPaymentStatusTextColor, getPaymentStatusText }) => { const paymentStatus = order.payments?.[0]?.status; const getDeliveryMethodText = (method: string): string => { const methodMap: Record = { [DeliveryMethodEnum.DineIn]: "سرو در رستوران", [DeliveryMethodEnum.CustomerPickup]: "دریافت از محل", [DeliveryMethodEnum.DeliveryCar]: "تحویل به خودرو", [DeliveryMethodEnum.DeliveryCourier]: "بیرون بر", }; return methodMap[method] || method; }; const getPaymentMethodText = (method: string): string => { const methodMap: Record = { [PaymentMethodEnum.Cash]: "پرداخت نقدی", [PaymentMethodEnum.Online]: "پرداخت آنلاین", [PaymentMethodEnum.CreditCard]: "پرداخت کارت به کارت", [PaymentMethodEnum.Wallet]: "کیف پول", }; return methodMap[method] || method; }; return (
اطلاعات پرداخت
{getPaymentStatusText(paymentStatus)}
روش ارسال
{order.deliveryMethod ? getDeliveryMethodText(order.deliveryMethod.method) : "-"}
{order.deliveryMethod?.description && (
توضیحات روش ارسال
{order.deliveryMethod.description}
)}
روش پرداخت
{order.paymentMethod ? getPaymentMethodText(order.paymentMethod.method) : "-"}
{order.paymentMethod?.description && (
توضیحات روش پرداخت
{order.paymentMethod.description}
)} {order.paymentMethod?.gateway && (
درگاه پرداخت
{order.paymentMethod.gateway}
)} {order.paymentId && (
شناسه پرداخت
{order.paymentId}
)}
جمع آیتم‌ها
{formatPrice(order.subTotal)}
{order.itemsDiscount > 0 && (
تخفیف آیتم‌ها
-{formatPrice(order.itemsDiscount)}
)} {order.couponDiscount > 0 && (
تخفیف کوپن
-{formatPrice(order.couponDiscount)}
)} {order.totalDiscount > 0 && (
جمع تخفیف‌ها
-{formatPrice(order.totalDiscount)}
)}
هزینه ارسال
{formatPrice(order.deliveryFee)}
{order.tax > 0 && (
مالیات
{formatPrice(order.tax)}
)}
تعداد آیتم‌ها
{formatFaNumber(order.totalItems)}
مبلغ کل
{formatPrice(order.total)}
); }; export default PaymentInfo;