import TextLoading from "@/app/component/loading/Text";
import { convertTimestampToJalali } from "@/helper";
import { formatToman } from "@/lib/money";
import Link from "next/link";

const PAYMENT_STATUS = {
  success: { label: "پرداخت شده", cls: "bg-[#E8FADD] text-[#75E22E]" },
  pending: { label: "در انتظار", cls: "bg-[#FFF3DD] text-[#FDBA35]" },
  failed: { label: "ناموفق", cls: "bg-[#FFE3E2] text-[#FF5450]" },
  canceled: { label: "لغو شده", cls: "bg-[#FFE3E2] text-[#FF5450]" },
  refunded: { label: "بازگشت وجه", cls: "bg-[#EFEFEF] text-[#616161]" },
};

const TYPE_LABELS = {
  appointment: "نوبت",
  subscription: "اشتراک",
  sms_wallet: "کیف پول پیامک",
};

function Card({ data, loading }) {
  const status = PAYMENT_STATUS[data.status] || { label: data.status, cls: "bg-[#FFE3E2] text-[#FF5450]" };

  return (
    <li className="p-[12px] shadow-[0px_1px_24.8px_0px_rgba(204,_204,_204,_0.18)] bg-[#FFF] rounded-[8px]">
      <div className="flex items-center justify-between w-full">
        <TextLoading width={120} height={18} loading={loading}>
          <p className="text-[#616161] text-[14px] font-medium">
            {TYPE_LABELS[data.type] || data.type || "--"}
          </p>
        </TextLoading>
        <TextLoading loading={loading} width={95} height={25}>
          <Link href={`/payment/${data.uuid}`}>
            <div className={`w-[100px] p-[4px] rounded-[4px] text-center text-[14px] font-medium cursor-pointer select-none ${status.cls}`}>
              {status.label}
            </div>
          </Link>
        </TextLoading>
      </div>
      <ul className="flex flex-col mt-[16px]">
        <li className="flex items-center justify-between gap-[12px]">
          <TextLoading loading={loading} width={60} height={18}>
            <p className="text-[#7E7E7E] text-[14px] font-normal">شناسه:</p>
          </TextLoading>
          <TextLoading loading={loading} width={90} height={18}>
            <p className="text-[#616161] text-[14px] font-medium">{data.order_id || "--"}</p>
          </TextLoading>
        </li>
        <span className="block h-px w-[calc(100%-20px)] mx-auto bg-[#EFEFEF] my-[8px]"></span>
        <li className="flex items-center justify-between gap-[12px]">
          <TextLoading loading={loading} width={90} height={18}>
            <p className="text-[#7E7E7E] text-[14px] font-normal">تاریخ:</p>
          </TextLoading>
          <TextLoading loading={loading} width={80} height={18}>
            <p className="text-[#616161] text-[14px] font-medium">
              {convertTimestampToJalali(data.created_at)}
            </p>
          </TextLoading>
        </li>
        <span className="block h-px w-[calc(100%-20px)] mx-auto bg-[#EFEFEF] my-[8px]"></span>
        <li className="flex items-center justify-between gap-[12px]">
          <TextLoading loading={loading} width={110} height={18}>
            <p className="text-[#7E7E7E] text-[14px] font-normal">مبلغ:</p>
          </TextLoading>
          <TextLoading loading={loading} width={80} height={18}>
            <p className="text-[#616161] text-[14px] font-medium">
              {data.amount_rials ? formatToman(data.amount_rials) : "--"} تومان
            </p>
          </TextLoading>
        </li>
      </ul>
    </li>
  );
}

export default Card;
