# app/models/serie_aparelho.rb
#
# Número de série da base (aparelho) de UMA visita do SimpliRoute, buscado na
# API pelo SincronizarSeriesAparelhoJob.
#
# Esta é uma tabela NOSSA (gravável) — existe porque o espelho read-only
# db_reem_simplerout_2026 tem a coluna `numero_de_serie_da_base_aparelho` mas
# nunca a preenche. Ver a migration para o histórico.
class SerieAparelho < ApplicationRecord
  self.table_name = 'series_aparelho'

  validates :tracking_id,  presence: true, uniqueness: true
  validates :numero_serie, presence: true

  # { tracking_id => numero_serie } das visitas informadas — uma consulta só,
  # para a planilha não fazer N+1 ao preencher a coluna.
  def self.por_tracking(tracking_ids)
    ids = Array(tracking_ids).compact.uniq
    return {} if ids.empty?

    where(tracking_id: ids).pluck(:tracking_id, :numero_serie).to_h
  end
end
