import type { PlanCatalogId } from "@/lib/planCatalogs";
import { parsePlanCatalog } from "@/lib/planCatalogs";

export type ContractService = "planning" | "website-app";

export function isWebsiteAppService(service: ContractService | string | null | undefined): boolean {
  return service === "website-app";
}

export function parseContractService(
  value: string | null | undefined,
): ContractService {
  return value === "website-app" ? "website-app" : "planning";
}

/** Mapeia catálogo da API para o fluxo legado do configurador. */
export function contractServiceFromCatalog(catalog: PlanCatalogId): ContractService {
  return catalog === "app-website" ? "website-app" : "planning";
}

export function resolveContractContext(
  catalogParam: string | null | undefined,
  legacyServico: string | null | undefined,
): { catalog: PlanCatalogId; service: ContractService } {
  const catalog = parsePlanCatalog(catalogParam, legacyServico);
  return {
    catalog,
    service: contractServiceFromCatalog(catalog),
  };
}
