/** انتخاب درگاه پرداخت بر اساس PAYMENT_GATEWAY */
import "server-only";
import { env } from "@/lib/env";
import type { PaymentGateway } from "./gateway";
import { mockGateway } from "./mock";
import { zarinpalGateway } from "./zarinpal";

export function paymentGateway(): PaymentGateway {
  const e = env();
  if (e.PAYMENT_GATEWAY === "zarinpal") {
    if (!e.ZARINPAL_MERCHANT_ID) throw new Error("ZARINPAL_MERCHANT_ID تنظیم نشده است");
    return zarinpalGateway(e.ZARINPAL_MERCHANT_ID, e.ZARINPAL_SANDBOX);
  }
  return mockGateway;
}

/** درگاه بر اساس شناسه ذخیره‌شده در پرداخت (برای مسیر بازگشت) */
export function gatewayById(id: string): PaymentGateway | undefined {
  const g = paymentGateway();
  return g.id === id ? g : undefined;
}
