import { formatCurrency } from "@/utils/format";

export function calcDiscountPercent(current: number, compareAt?: number | null): number | null {
  if (!compareAt || compareAt <= 0 || current >= compareAt) {
    return null;
  }

  return Math.round(((compareAt - current) / compareAt) * 100);
}

export interface PriceDisplayModel {
  current: number;
  compareAt?: number | null;
  periodLabel?: string;
}

export function formatPriceLine(model: PriceDisplayModel): {
  currentLabel: string;
  compareLabel: string | null;
  discountPercent: number | null;
} {
  return {
    currentLabel: formatCurrency(model.current),
    compareLabel:
      model.compareAt && model.compareAt > model.current
        ? formatCurrency(model.compareAt)
        : null,
    discountPercent: calcDiscountPercent(model.current, model.compareAt),
  };
}
