← back to Open Seo

src/client/features/billing/plan-detection.ts

18 lines

import { AUTUMN_PAID_PLAN_ID } from "@/shared/billing";

export type PlanStatus = "free" | "paid";

export function getCustomerPlanStatus(
  customer:
    | { subscriptions?: Array<{ planId: string; status: string }> }
    | undefined,
): PlanStatus {
  if (!customer?.subscriptions) return "free";

  const hasActivePaid = customer.subscriptions.some(
    (sub) => sub.planId === AUTUMN_PAID_PLAN_ID && sub.status === "active",
  );

  return hasActivePaid ? "paid" : "free";
}