class ConflictsTable
  include ActiveModel::Model

  attr_accessor :talk_id, :other_talks_ids

  def other_talks_ids
    @other_talks_ids ||= []
  end

  def conflicts
    other_talks_ids.map do |right|
      {
       talk_id: right,
       number_of_conflicts: conflicts_hash[right] || 0
      }
    end
  end

  private

  def conflicts_hash
    @conflicts_hash ||= Conflicts.where(left: talk_id, right: other_talks_ids).map do |conflicts|
      [conflicts.right, conflicts.conflicts]
    end.to_h
  end
end