class Admin::FinancialAid::ApplicationsController < Admin::Controller
  def index
    data = applications.eager_load(:family)
    render_success :ok, json: data.map { |f| props(f) }
  end

  def show
    render_success :ok, json: props(application)
  end

  def update
    if application.update(application_params)
      render_success :ok, json: props(application)
    else
      render_error :unprocessable_entity, json: config
    end
  end

  private
    def applications
      current_school.find_or_build_admission_config.school_year.financial_aid_applications
    end

    def application
      @application ||= applications.find_by(id: params[:id])
    end

    def application_params
      params.permit(:score, :calculate, :awarded)
    end

    def props(application)
      {
        id: application.id,
        family_id: application.family.id,
        family_name: application.family.name,
        status: application.status,
        submitted_at: application.submitted_at,
        financial_contribution: application.financial_contribution,
        score: application.score,
        scored_at: application.scored_at,
        awarded: application.awarded || 0
      }
    end
end
