const STORAGE_KEY = 'mv_device_fingerprint';

function generateFingerprint(): string {
  const parts = [
    navigator.userAgent,
    navigator.language,
    String(screen.width),
    String(screen.height),
    Intl.DateTimeFormat().resolvedOptions().timeZone ?? '',
  ];

  return parts.join('|');
}

export function getDeviceFingerprint(): string {
  try {
    const existing = localStorage.getItem(STORAGE_KEY);
    if (existing) {
      return existing;
    }

    const fingerprint = generateFingerprint();
    localStorage.setItem(STORAGE_KEY, fingerprint);

    return fingerprint;
  } catch {
    return generateFingerprint();
  }
}
