import type { OptionalCategoryId } from "@/data/onboarding";
import { sanitizeCommerceCopy } from "@/lib/sanitizeCommerceCopy";
import type { Addon } from "@/types/plan";

const SLUG_CATEGORY: Record<string, OptionalCategoryId> = {
  "app-ios": "apis",
  "app-android": "apis",
  "admin-panel": "erp",
  whatsapp: "crm",
  "ai-integration": "ai",
  push: "marketing",
  chat: "crm",
  "multi-company": "marketplace",
  "white-label": "marketing",
  "custom-api": "apis",
  "hosting-premium": "apis",
  seo: "marketing",
  erp: "erp",
  delivery: "delivery",
  "digital-menu": "delivery",
  cashback: "financial",
  payments: "payments",
};

export function addonCategory(slug: string): OptionalCategoryId {
  return SLUG_CATEGORY[slug] ?? "automation";
}

export interface AddonDisplayItem {
  id: string;
  slug: string;
  name: string;
  description: string;
  category: OptionalCategoryId;
  price: number;
  recurring: boolean;
}

export function addonToDisplayItem(addon: Addon): AddonDisplayItem {
  return {
    id: addon.slug,
    slug: addon.slug,
    name: addon.name,
    description: sanitizeCommerceCopy(addon.description),
    category: addonCategory(addon.slug),
    price: addon.price,
    recurring: false,
  };
}
