Source: services/storageService.ts

const STORAGE_KEY = 'registered_users'

/** Utilisateur tel qu'enregistré dans le localStorage */
export type StoredUser = {
  lastName: string
  firstName: string
  email: string
  birthDate: string
  city: string
  postalCode: string
}

/**
 * Récupère la liste des utilisateurs enregistrés dans le localStorage.
 *
 * @returns Tableau des utilisateurs stockés, ou tableau vide si aucune donnée
 */
export function getUsers(): StoredUser[] {
  const data = localStorage.getItem(STORAGE_KEY)
  if (data === null) return []
  try {
    return JSON.parse(data) as StoredUser[]
  } catch {
    return []
  }
}

/**
 * Ajoute un utilisateur à la liste stockée et notifie les autres onglets.
 *
 * @param user - L'utilisateur à sauvegarder
 */
export function saveUser(user: StoredUser): void {
  const users = getUsers()
  users.push(user)
  localStorage.setItem(STORAGE_KEY, JSON.stringify(users))
  window.dispatchEvent(new CustomEvent('users-updated'))
}

/** Supprime tous les utilisateurs enregistrés du localStorage */
export function clearUsers(): void {
  localStorage.removeItem(STORAGE_KEY)
}