"use client"; import { useEffect, useState } from "react"; import { useParams, useRouter } from "next/navigation"; import { request } from "@/services/response"; import Cookies from "js-cookie"; import Layout from "@/components/layout"; export default function PaymentDetailsPage() { const params = useParams(); const router = useRouter(); const [payment, setPayment] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { // بررسی لاگین بودن کاربر const userInfo = Cookies.get("userInfo"); if (!userInfo) { router.push("/login"); return; } const fetchPaymentDetails = async () => { try { setLoading(true); const response = await request.getPayment(params.uuid); setPayment(response); } catch (err) { setError("خطا در دریافت اطلاعات پرداخت"); console.error("Payment fetch error:", err); } finally { setLoading(false); } }; if (params.uuid) { fetchPaymentDetails(); } }, [params.uuid, router]); const getStatusLabel = (status) => { const statusMap = { pending: "در انتظار پرداخت", completed: "پرداخت موفق", failed: "پرداخت ناموفق", canceled: "لغو شده", }; return statusMap[status] || status; }; const getStatusColor = (status) => { const colorMap = { pending: "text-yellow-600 bg-yellow-50", completed: "text-green-600 bg-green-50", failed: "text-red-600 bg-red-50", canceled: "text-gray-600 bg-gray-50", }; return colorMap[status] || "text-gray-600 bg-gray-50"; }; const getPaymentMethodLabel = (method) => { const methodMap = { mellat: "بانک ملت", saman: "سامان کیش", }; return methodMap[method] || method; }; const formatDate = (timestamp) => { const date = new Date(parseInt(timestamp) * 1000); return new Intl.DateTimeFormat("fa-IR", { year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit", }).format(date); }; const formatAmount = (amount) => { return new Intl.NumberFormat("fa-IR").format(parseInt(amount)); }; if (loading) { return (

در حال بارگذاری...

); } if (error) { return (

{error}

); } if (!payment) { return null; } return (

جزئیات پرداخت

{/* وضعیت پرداخت */}
وضعیت: {getStatusLabel(payment.status)}
{/* مبلغ */}
مبلغ: {formatAmount(payment.amount)} تومان
{/* روش پرداخت */}
روش پرداخت: {getPaymentMethodLabel(payment.payment_method)}
{/* شناسه پرداخت */}
شناسه پرداخت: {payment.uuid}
{/* شماره مرجع */} {payment.reference_id && (
شماره مرجع: {payment.reference_id}
)} {/* تاریخ ایجاد */}
تاریخ ایجاد: {formatDate(payment.created)}
{/* تاریخ آخرین تغییر */}
آخرین بروزرسانی: {formatDate(payment.changed)}
{/* نوع سرویس */}
نوع سرویس: {payment.bundle === "appointment" ? "رزرو نوبت" : payment.bundle}
{/* دکمه‌ها */}
{payment.status === "pending" ? ( <> ) : null}
); }