import type { FC } from 'react' import type { Order } from '../types/Types' import { DeliveryMethodEnum } from '@/pages/shipmentMethod/enum/Enum' import { PaymentMethodEnum } from '@/pages/paymentMethods/enum/Enum' import { formatPrice, formatFaNumber } from '@/helpers/func' 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