/** نتیجه پرداخت (بازگشت از درگاه) */
import type { Metadata } from "next";
import Link from "next/link";
import { z } from "zod";
import { Icon } from "@/components/ui/Icon";
import { faDigits } from "@/lib/format";

export const metadata: Metadata = { title: "نتیجه پرداخت", robots: { index: false } };

const params = z.object({
  status: z.enum(["success", "failed"]).catch("failed"),
  order: z.string().regex(/^ZH-[\d-]{4,20}$/).optional().catch(undefined),
});

export default async function ResultPage({ searchParams }: { searchParams: Promise<Record<string, string | undefined>> }) {
  const { status, order } = params.parse(await searchParams);
  const ok = status === "success" && order;
  return (
    <div className="container-z flex max-w-lg flex-col items-center gap-4 py-20 text-center">
      <span className={`grid size-16 place-items-center rounded-full ${ok ? "bg-ink text-paper" : "bg-mist"}`}>
        <Icon name={ok ? "check" : "close"} size={30} />
      </span>
      <h1 className="text-2xl font-extrabold">{ok ? "سفارش شما ثبت شد" : "پرداخت ناموفق بود"}</h1>
      {ok ? (
        <p className="text-sm leading-7 text-muted">
          شماره سفارش: <bdi className="font-bold text-ink">{faDigits(order)}</bdi>
          <br />
          پیامک تأیید و کد رهگیری مرسوله برایتان ارسال می‌شود.
        </p>
      ) : (
        <p className="text-sm leading-7 text-muted">اگر مبلغی از حساب شما کسر شده باشد، حداکثر تا ۷۲ ساعت بازگردانده می‌شود.</p>
      )}
      <div className="mt-4 flex gap-2">
        {ok ? <Link href="/account/orders" className="btn-primary">سفارش‌های من</Link> : <Link href="/checkout" className="btn-primary">تلاش دوباره</Link>}
        <Link href="/" className="btn-outline">صفحه اصلی</Link>
      </div>
    </div>
  );
}
