import type { IntervalLimitUnit, IntervalLimitKey } from "./intervalLimitSchema";

export const ascendingLimitKeys: IntervalLimitKey[] = ["PER_DAY", "PER_WEEK", "PER_MONTH", "PER_YEAR"];

export const descendingLimitKeys = [...ascendingLimitKeys].reverse();

function isIntervalLimitUnit(value: string): value is IntervalLimitUnit {
  return ["day", "week", "month", "year"].includes(value); // Replace with actual values
}
/**
 * Turns `PER_DAY` into `day`, `PER_WEEK` into `week` etc.
 */
export function intervalLimitKeyToUnit(key: IntervalLimitKey): IntervalLimitUnit {
  const extracted = key.split("_")[1].toLowerCase();
  if (isIntervalLimitUnit(extracted)) return extracted;
  throw new Error(`Invalid interval limit key: ${key}`);
}
