export type TipoMacchina = "macchina" | "gruppo" | "parte";

export interface Macchina {
  id: number;
  nome: string;
  tipo: TipoMacchina;
  id_padre: number | null;
  id_stabilimento: number | null;
  colore_testo: string;
}

export interface MacchinaWithDetails extends Macchina {
  stabilimento_nome?: string;
  padre_nome?: string;
}

export interface MacchinaCreateInput {
  nome: string;
  tipo: TipoMacchina;
  id_padre?: number | null;
  id_stabilimento?: number | null;
  colore_testo?: string;
}

export interface MacchinaUpdateInput {
  nome?: string;
  tipo?: TipoMacchina;
  id_padre?: number | null;
  id_stabilimento?: number | null;
  colore_testo?: string;
}

export interface ArticoloAssegnato {
  id: number;
  id_articolo: number;
  id_macchina: number;
  descrizione: string;
  codice: string;
  barcode?: string;
  quantita: number;
  qtain: number;
  qtaout: number;
}

export interface ArticoliPerMacchina {
  [macchinaId: number]: ArticoloAssegnato[];
}
