24 lines
875 B
Ruby
24 lines
875 B
Ruby
# 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
|