class Family::Legacy::StudentsController < Family::Controller
  def index
    data = students.current_status(current_school, :current).ordered.decorate
    render_success :ok, json: data.map { |s| student_props(s) }
  end

  def show
    render_success :ok, json: student_props(student.decorate)
  end

  private
    def student_props(student)
      {}.tap do |props|
        props[:id] = student.id
        props[:first_name] = student.first_name
        props[:middle_name] = student.middle_name
        props[:last_name] = student.last_name
        props[:suffix] = student.suffix
        props[:full_name] = student.full_name
        props[:full_name_reverse] = student.full_name(:reverse)
        props[:grade] = student.grade
        props[:date_of_birth] = student.date_of_birth
        props[:age] = student.decorate.age
        props[:grade_level] = student.grade_level
        props[:ethnicity] = student.ethnicity
        props[:families] = student.families.map { |f| family_props(f) }
        return props unless action_name.to_sym == :show

        props[:homeroom_teacher_id] =
          student.homeroom_teacher_id? ? student.homeroom_teacher_id : nil
        props[:homeroom_teacher_name] = student.decorate.homeroom_teacher_full_name
        props[:races] = student.races.map(&:name)
      end
    end

    def family_props(family)
      { id: family.id, name: family.name }
    end
end
