class Admins::CompetitionsController < Admins::BaseController
  include CustomSortable
  before_action :find_competition, except: [:index]

  def index
    params[:sort_by] = params[:sort_by].presence || 'created_on'
    params[:sort_direction] = params[:sort_direction].presence || 'desc'
    @competitions = custom_sort Competition.all, params[:sort_by], params[:sort_direction]
    @params_page = params[:page] || 1
    @competitions = paginate @competitions
    ids = @competitions.map(&:id)
    @member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count

    respond_to do |format|
      format.js
      format.html
    end
  end

  def publish
    @competition.update_attributes!(:published_at, Time.now)
  end

  def unpublish
    @competition.update_attributes!(:published_at, nil)
  end

  def online_switch
    if @competition.status
      @competition.update_attributes!(status: false)
    else
      @competition.update_attributes!(status: true, online_time: Time.now)
    end
  end

  def enroll_list

  end

  private

  def find_competition
    @competition = Competition.find_by(id: params[:id])
  end

end