class Family::Legacy::Students::AssignmentsController < Family::Controller
  include DateRangeHelper

  def index
    render_success :ok, json: assignments.map { |a| assignment_props(a) }
  end

  private
    def assignments
      student.class_assignments
        .preload(:class_subject, :class_grade_category, :classroom)
        .exclude_future
        .by_status(params[:status])
        .by_parent_viewable
        .by_subject(params[:subject_id])
        .by_quarter(params[:quarter])
        .by_due_date(current_week_range(params[:due_date]))
    end

    def assignment_props(assignment)
      {
        classroom: assignment.classroom.name,
        id: assignment.id,
        name: assignment.name,
        due_date: assignment.due_date,
        class_id: assignment.class_id? ? assignment.class_id : nil,
        subject: assignment.class_subject&.name,
        subject_id: assignment.class_subject&.id,
        possible: assignment.possible,
        category: assignment.class_grade_category&.name,
        status: assignment.status
      }
    end
end
