export type CheckoutMode = "manual" | "woocommerce";

const clean = (value: string) => value.replace(/\/+$/, "");

export function getCheckoutMode(): CheckoutMode {
  const mode = (process.env.NEXT_PUBLIC_MPC_CHECKOUT_MODE || "manual").toLowerCase();
  return mode === "woocommerce" ? "woocommerce" : "manual";
}

export function getWooCommerceBaseUrl() {
  return clean(process.env.NEXT_PUBLIC_SHOP_BASE_URL || "https://shop.marlothparkcentral.com");
}

export function getWooCommerceProductPrefix() {
  return clean(process.env.NEXT_PUBLIC_WOO_PRODUCT_PATH_PREFIX || "/product");
}

export function getManualOrderUrl(slug: string) {
  return `/order-pack?product=${encodeURIComponent(slug)}`;
}

export function getWooCommerceProductUrl(slug: string) {
  const base = getWooCommerceBaseUrl();
  const prefix = getWooCommerceProductPrefix();
  const productSlug = encodeURIComponent(slug);
  return `${base}${prefix}/${productSlug}/`;
}

export function getProductCheckoutUrl(slug: string) {
  return getCheckoutMode() === "woocommerce" ? getWooCommerceProductUrl(slug) : getManualOrderUrl(slug);
}

export function getCheckoutButtonLabel() {
  return getCheckoutMode() === "woocommerce" ? "Get My Planning Pack" : "Request My Planning Pack";
}

export const woocommerceDeliveryRule =
  "Gateway-paid WooCommerce orders can release digital downloads automatically after verified payment. Manual EFT, PayShap, Capitec/PayShap or proof-of-payment orders must stay on hold until MPC confirms the money has cleared, then WooCommerce may release the download.";
