export interface ReferenceItem {
  id: number;
  label: string;
  code: string;
  is_active: boolean;
}

export type CanModuleType = ReferenceItem;
export type Accessory = ReferenceItem;
export type WireAccessory = ReferenceItem;

/**
 * Produit boîtier du catalogue fleet (source de vérité distante), enrichi par
 * le backend installer de la gamme/modèle technique pour le brochage.
 */
export interface TelematicsBox {
  id: number;
  code: string | null;
  name: string | null;
  install_method: string | null;
  /** Gamme dérivée du modèle technique (FMB, FMC, FMT, other). */
  product_line: string;
  /** Libellé du modèle technique (ex. FMC130). */
  model: string | null;
  /** Le boîtier embarque un bus CAN (présélectionne le module CAN « Lecteur CAN »). */
  has_can: boolean;
}

export interface DeviceModel extends ReferenceItem {
  /** Gamme de boîtier à laquelle ce modèle appartient (FMB, FMC, FMT). */
  product_line?: string;
  /** Ids des fils (brochage) de ce modèle, servis par le backend. */
  wire_ids?: number[];
}

export interface Wire extends ReferenceItem {
  /** Gamme de boîtier à laquelle ce fil appartient (FMB, FMC, FMT, other). */
  product_line?: string;
  /** Couleur officielle du câble (hex), servie par le backend. */
  color?: string | null;
}
