export type UserStatus = 'ACTIVE' | 'CANCELLED' | 'SUSPENDED' | string;
import type { Role } from './role';

/**
 * Frontend User model.
 * Aligns with backend payload while keeping a convenient `role` object when available.
 */
export interface User {
  id: string;
  /** Nom (last name) */
  nom: string;
  /** Prénom (first name) */
  prenom: string;
  /** Identifiant de connexion (username/login) */
  identifiant: string;
  /** (Hashed) password – never filled from backend in UI, only for create/update. */
  password?: string;
  /** Matricule Agent */
  matriculeAgent: string;
  /** Foreign key vers le rôle */
  roleId: string;
  /** Rôle complet (chargé séparément) */
  role?: Role;
  /** Restriction de connexion (manual) */
  restrictionConnexion: boolean;
  /** Restriction automatique */
  restrictionAutomatique: boolean;
  /** Nombre d'IP autorisé (manual) */
  nombreIpAutorise: number;
  /** Nombre d'IP auto autorisé (automatic) */
  nombreIpAutoAutorise: number;
  /** Statut (from grid / backend) */
  statut: UserStatus;
  /** Date de dernière connexion (ISO) */
  derniereConnexion?: string;
  /** Timestamps */
  createdAt?: string;
  updatedAt?: string;
}
