class Admins::SalesmanChannelsController < Admins::BaseController
  before_action :set_salesman

  def index
    @channels = @salesman.salesman_channels
    if params[:keyword].present?
      @channels = @channels.joins(:school).where("schools.name like ?", "%#{params[:keyword]}%")
    end
    @start_time = params[:start_date]
    @end_time = params[:end_date].blank? ? Time.now : params[:end_date]
  end

  def batch_add
    channel_ids = @salesman.salesman_channels.pluck(:school_id)
    school_ids = params[:school_ids] - channel_ids
    school_ids.each do |school_id|
      school = School.find_by(id: school_id)
      next if school.blank? || @salesman.salesman_channels.where(school_id: school.id).exists?
      @salesman.salesman_channels.create!(school_id: school.id)
    end
    render_ok
  rescue Exception => ex
    render_error(ex.message)
  end

  def destroy
    @salesman.salesman_channels.find_by!(id: params[:id]).destroy
  end

  private

  def set_salesman
    @salesman = Salesman.find params[:salesman_id]
  end
end