diff --git a/src/app/[name]/(Dialogs)/order/checkout/types/Types.ts b/src/app/[name]/(Dialogs)/order/checkout/types/Types.ts index d517e90..6047e31 100644 --- a/src/app/[name]/(Dialogs)/order/checkout/types/Types.ts +++ b/src/app/[name]/(Dialogs)/order/checkout/types/Types.ts @@ -326,6 +326,8 @@ export interface OrderDetailRestaurant { vat: number; domain: string; score: RestaurantScore; + plan: string; + subscriptionId: string; } export interface OrderDetailDeliveryMethod { @@ -337,8 +339,8 @@ export interface OrderDetailDeliveryMethod { restaurant: string; deliveryFee: number; deliveryFeeType: "fixed" | "percentage"; - kilometerNumber: number | null; - deliveryFeeForKilometer: number | null; + perKilometerFee: number | null; + distanceBasedMinCost: number | null; minOrderPrice: number; description: string; enabled: boolean; @@ -396,6 +398,30 @@ export interface OrderDetailItem { totalPrice: number; } +export interface OrderDetailHistory { + status: string; + changedAt: string; +} + +export interface OrderDetailPayment { + id: string; + createdAt: string; + updatedAt: string; + deletedAt: string | null; + order: string; + amount: number; + referenceId: string | null; + method: string; + gateway: string | null; + transactionId: string | null; + status: string; + cardPan: string | null; + verifyResponse: unknown | null; + paidAt: string | null; + failedAt: string | null; + description: string | null; +} + export interface OrderDetail { id: string; createdAt: string; @@ -420,13 +446,15 @@ export interface OrderDetail { description: string | null; tableNumber: string; status: + | "pendingPayment" | "new" | "preparing" | "ready" | "delivering" | "delivered" | "cancelled"; - paymentStatus: "pending" | "paid" | "failed" | "refunded"; + history: OrderDetailHistory[]; + payments: OrderDetailPayment[]; items: OrderDetailItem[]; } diff --git a/src/app/[name]/(Dialogs)/order/track/[id]/page.tsx b/src/app/[name]/(Dialogs)/order/track/[id]/page.tsx index 2a0aabf..2574e1d 100644 --- a/src/app/[name]/(Dialogs)/order/track/[id]/page.tsx +++ b/src/app/[name]/(Dialogs)/order/track/[id]/page.tsx @@ -4,8 +4,6 @@ import { useParams, useRouter } from 'next/navigation'; import React from 'react'; import Button from '@/components/button/PrimaryButton'; import { Skeleton } from '@/components/ui/skeleton'; -import { HandPlatter, Package } from 'lucide-react'; -import AnimatedBar from '@/components/utils/AnimatedBar'; import { Clock } from 'iconsax-react'; import clsx from 'clsx'; import useToggle from '@/hooks/helpers/useToggle'; @@ -19,13 +17,13 @@ import { useQueryClient } from '@tanstack/react-query'; const getDeliveryMethodTitle = (method: string) => { switch (method) { case 'deliveryCourier': - return 'ارسال توسط پیک رستوران'; + return 'ارسال توسط پیک'; case 'deliveryCar': - return 'ارسال توسط خودرو'; + return 'تحویل به خودرو'; case 'pickup': return 'تحویل حضوری'; case 'dineIn': - return 'سرو در محل'; + return 'سرو در رستوران'; default: return 'روش ارسال'; } @@ -59,6 +57,23 @@ const getStatusText = (status: string): string => { return ordersTranslations.status[statusKey] || 'نامشخص'; }; +const formatDate = (dateString: string): string => { + const date = new Date(dateString); + return date.toLocaleDateString('fa-IR', { + year: 'numeric', + month: 'long', + day: 'numeric' + }); +}; + +// const formatTime = (dateString: string): string => { +// const date = new Date(dateString); +// return date.toLocaleTimeString('fa-IR', { +// hour: '2-digit', +// minute: '2-digit' +// }); +// }; + function OrderTrackingPage() { const { id } = useParams(); const router = useRouter(); @@ -102,16 +117,34 @@ function OrderTrackingPage() { {getDeliveryMethodTitle(orderDetail.data.deliveryMethod.method)} -