const UUID_REGEX =
  /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

export function toHyphenatedUuid(value: string): string {
  return value.trim().replace(/_/g, '-');
}

export function planFiUuidVariants(value: string): string[] {
  const trimmed = value.trim();
  return [
    ...new Set([
      trimmed,
      toHyphenatedUuid(trimmed),
      trimmed.replace(/-/g, '_'),
    ]),
  ];
}

export function isPlanFiUuidLike(value: unknown): value is string {
  return typeof value === 'string' && UUID_REGEX.test(toHyphenatedUuid(value));
}
