export type StockOrigin = 'client' | 'installer' | 'both';
export type ProductLine = 'FMB' | 'FMC' | 'FMT' | 'other';

/** Avancement du provisionnement (task Teltonika + Flespi) joué en tâche de fond. */
export type ProvisioningStatus = 'pending' | 'processing' | 'provisioned' | 'failed';

/** Statut de provisionnement renvoyé par l'API ; `error` = cause d'un échec. */
export interface ProvisioningState {
  status: ProvisioningStatus | null;
  error: string | null;
}

export interface SimCard {
  iccid?: string;
  operator?: string;
  apn?: string;
}

export interface Device {
  stock_origin: StockOrigin;
  /** Produit du catalogue fleet.telematics_boxes (référence distante). */
  telematics_box_id?: number | null;
  /** Gamme/modèle : snapshots dérivés du produit du catalogue choisi. */
  product_line: ProductLine;
  model?: string;
  imei: string;
  /** Renseigné par le backend (lecture seule) : suivi du provisionnement. */
  provisioning_status?: ProvisioningStatus | null;
  has_can_module: boolean;
  can_module_type_id?: number;
  sim_card?: SimCard;
  accessory_ids?: number[];
}
