class Admin::CastingCallInterviewsController < Admin::ApplicationController before_action :set_casting_call_interview, only: [:edit, :update, :show, :complete] before_action :build_casting_call_interview, only: [:new, :create] before_action :set_accounts, only: %i[new create edit] def index @casting_call_interviews = casting_call_interviews.order_by_recent.paginate(page: params[:page]) end def create @casting_call_interview.attributes = casting_call_interview_params if @casting_call_interview.save redirect_to [:admin, :casting_call_interviews], notice: t(".notice") else render :new end end def update if @casting_call_interview.update(casting_call_interview_params) redirect_to [:admin, :casting_call_interviews], notice: t(".notice") else render :edit end end def complete if @casting_call_interview.update(interviewed_at: Time.zone.now) redirect_to [:admin, :casting_call_interviews], notice: t(".notice") else redirect_to [:admin, :casting_call_interviews], notice: t(".alert") end end private def set_accounts @accounts = accounts end def casting_call_interview_params params.require(:casting_call_interview).permit(:casting_call_id, :performer_name, :interview_date, :zoom_meeting_url, :interview_recording) end def casting_call_interviews policy_scope CastingCallInterview end def set_casting_call_interview @casting_call_interview = authorize policy_scope(CastingCallInterview).find(params[:id]) end def accounts policy_scope Account end def build_casting_call_interview @casting_call_interview = authorize policy_scope(CastingCallInterview).build end end