import type { RoleName } from '@siop/shared';

/** Barre d'onglets ADAPTATIVE (maquette « mobile ouvert à tous les rôles »,
 *  D1) : le Technicien/Technicien limité gardent exactement leurs onglets
 *  terrain R4 ; les autres rôles reçoivent Accueil/OT/Menu (ou une variante
 *  plus étroite selon leurs droits). Décidé une fois ici, pas éparpillé. */

const ROLES_TERRAIN: RoleName[] = ['Technicien', 'Technicien limité'];

export function estRoleTerrain(role: RoleName | undefined): boolean {
  return !role || ROLES_TERRAIN.includes(role);
}

export function ongletsVisibles(role: RoleName | undefined): ReadonlySet<string> {
  if (estRoleTerrain(role)) {
    return new Set(['journee', 'scanner', 'preventif', 'synchro', 'menu']);
  }
  if (role === 'Demandeur') return new Set(['accueil', 'nouvelle-demande']);
  if (role === 'Vue seule') return new Set(['accueil', 'menu']);
  return new Set(['accueil', 'ot', 'menu']); // Administrateur, Gestionnaire, Dispatcher
}

/** Onglet sur lequel router.replace() après connexion (voir app/index.tsx). */
export function ongletAccueil(role: RoleName | undefined): 'journee' | 'accueil' {
  return estRoleTerrain(role) ? 'journee' : 'accueil';
}
