import fs from 'node:fs';

import { resolveMachineFingerprint } from './machineFingerprint';
import { deviceIdPath } from './paths';

/** Старый per-user UUID из userData/device.id (до привязки к железу). */
export function readLegacyDeviceId(userData: string): string | null {
  try {
    const existing = fs.readFileSync(deviceIdPath(userData), 'utf8').trim();
    if (existing.length >= 8) return existing;
  } catch {
    /* empty */
  }
  return null;
}

export function clearLegacyDeviceId(userData: string): void {
  try {
    fs.unlinkSync(deviceIdPath(userData));
  } catch {
    /* empty */
  }
}

/**
 * Идентификатор устройства для лицензии: отпечаток физической машины.
 * Одинаков для всех пользователей ОС на одном ПК (Windows/macOS/Linux).
 * `userData` — путь для дискового кэша fingerprint (без повторного reg/wmic).
 */
export function getOrCreateDeviceId(userData?: string): string {
  return resolveMachineFingerprint(userData ? { userData } : {});
}
