/* ===== Frota real: sincroniza o Quadro de Espaço (13/11) ============
   POR QUE ESTE ARQUIVO EXISTE
   A reunião com o Paulo mostrou que a frota é de SETE caminhões iguais
   de 50.000 L, não os 12 variados que eu tinha inventado. A troca foi
   feita em core.jsx.

   Só que o Quadro de Espaço (js/espaco.jsx) traz a situação do dia
   escrita dentro dele, com 11 caminhões — e esse arquivo tem 31 KB,
   acima do limite que eu consigo republicar sem errar a transcrição
   (ver iunes-estoque-e-agentes-12-11.md).

   Em vez de reescrever 31 KB, este arquivo é carregado DEPOIS dele e
   substitui o conteúdo do array pelo quadro dos 7 caminhões reais.
   `initialEspaco` é const, mas o array é mutável: splice troca o
   conteúdo sem reatribuir a variável.

   QUANDO O espaco.jsx FOR REESCRITO, ESTE ARQUIVO SOME. É uma ponte,
   não arquitetura.

   Os estados do dia seguem os que o Paulo descreveu:
   - carregado e SEM DESTINO ("o caminhão vai carregar antes de vender,
     eu não sei nem para onde ele vai")
   - na FILA da usina
   - em rota, com espaço sobrando
   - na garagem

   Caminhão em MANUTENÇÃO não entra no quadro: ele não está disponível
   para carregar nada. O arquivo original já fazia assim (a frota tinha
   12 e o quadro, 11). O contador "na oficina" do cabeçalho lê a frota,
   então ele continua aparecendo lá.
   ================================================================== */
(function(){
  if(typeof initialEspaco === 'undefined' || typeof initialFleet === 'undefined') return;

  /* Visualizacao real: o quadro nasce vazio, como tudo o mais. */
  if(typeof REAL !== 'undefined' && REAL){
    initialEspaco.splice(0, initialEspaco.length);
    if(typeof QE_PRODUTOS !== 'undefined') QE_PRODUTOS.splice(0, QE_PRODUTOS.length, 'Etanol');
    return;
  }

  const quadro = [
    {id:'TRK-04',pos:'Bebedouro',saidaH:12.6,modo:'rota',local:'Em rota · saiu 09:50',base:'Base Barretos',rota:['Bebedouro','Monte Azul Paulista'],cargas:[
      {posto:'Posto Avenida',cidade:'Bebedouro',prod:'Etanol',litros:30000,janela:'até 14:00',st:'entregue'},
      {posto:'Posto Santa Rita',cidade:'Monte Azul Paulista',prod:'Etanol',litros:15000,janela:'até 16:00',st:'a caminho'}]},
    {id:'TRK-05',pos:'Bebedouro',saidaH:12.3,modo:'rota',local:'Em rota · saiu 10:40',base:'Base Barretos',rota:['Bebedouro','Monte Azul Paulista'],cargas:[
      {posto:'Posto Avenida',cidade:'Bebedouro',prod:'Etanol',litros:40000,janela:'até 14:00',st:'a caminho'}]},
    {id:'TRK-06',pos:'Guaíra',saidaH:11.8,modo:'semdestino',local:'Carregado na Usina Mandu · aguardando destino',base:'Usina Mandu',rota:['Guaíra','Barretos','Colina'],cargas:[],produtoCarregado:'Etanol',carregado:50000},
    {id:'TRK-01',pos:'Buritizal',saidaH:14.5,modo:'fila',local:'Fila da Usina Buritizal · 4º da fila',base:'Usina Buritizal',rota:['Buritizal','Franca','Barretos'],cargas:[],produtoCarregado:'Etanol',carregado:0},
    {id:'TRK-07',pos:'Barretos',saidaH:15,modo:'rota',local:'Carregando na base · saída 15:00',base:'Base Barretos',rota:['Colina','Terra Roxa'],cargas:[
      {posto:'Posto Nogueira',cidade:'Colina',prod:'Etanol',litros:30000,janela:'até 17:00',st:'programado'}]},
    {id:'TRK-02',pos:'Barretos',saidaH:13.3,modo:'rota',local:'Carregando na base · saída 13:20',base:'Base Barretos',rota:['Guaíra'],cargas:[
      {posto:'Auto Posto Guaíra',cidade:'Guaíra',prod:'Etanol',litros:50000,janela:'sem restrição',st:'programado'}]},
  ];

  /* troca o conteúdo do array sem reatribuir a const */
  initialEspaco.splice(0, initialEspaco.length, ...quadro);

  /* 13/11: a Iunes so trabalha com etanol. O filtro de produto do Quadro vive
     dentro de espaco.jsx (31 KB, acima do limite de publicacao por transcricao),
     entao e trocado aqui pelo mesmo truque: const, mas array mutavel. */
  if(typeof QE_PRODUTOS !== 'undefined') QE_PRODUTOS.splice(0, QE_PRODUTOS.length, 'Etanol');

  /* rede de segurança: se algum dia sobrar caminhão que não existe mais
     no cadastro da frota, ele sai do quadro em vez de aparecer com
     placa "—" e capacidade errada. */
  const existe = new Set(initialFleet.map(t=>t.id));
  for(let i=initialEspaco.length-1;i>=0;i--){
    if(!existe.has(initialEspaco[i].id)) initialEspaco.splice(i,1);
  }
})();
