class Cooperative::LaboratoryShixunsController < Cooperative::BaseController
  before_action :check_shixun_ownership!, only: [:edit, :update]

  helper_method :current_laboratory_shixun

  def index
    laboratory_shixuns = Admins::LaboratoryShixunQuery.call(current_laboratory, params)
    @laboratory_shixuns = paginate laboratory_shixuns.includes(shixun: %i[tag_repertoires user])
  end

  def edit
  end

  def update

  end

  def destroy
    return render_js_error('不能删除自建实训', type: :notify) if current_laboratory_shixun.ownership?
    current_laboratory_shixun.destroy!

    render_delete_success
  end

  def homepage
    current_laboratory_shixun.update!(homepage: true)
    render_ok
  end

  def cancel_homepage
    current_laboratory_shixun.update!(homepage: false)
    render_ok
  end

  private

  def current_laboratory_shixun
    @_current_laboratory_shixun ||= current_laboratory.laboratory_shixuns.find(params[:id])
  end

  def check_shixun_ownership!
    return if current_laboratory_shixun.ownership?

    render_forbidden
  end
end