class V1::LearningObjectsComplaintsController < ApplicationController

    include ::DeletedObjectsController
    include ::Paginator

    before_action :set_complaint, only: [:show, :show_related , :reject, :accept]

    # GET v1/learning_objects_complaints
    def index
        complaints_curator = paginate Complaint

        base_date = Date.new(2022, 1, 1)

        complaints_priority = ComplaintReason.joins(:complaints).select("complainable_id, SUM(complaint_reasons.priority)")
        .where("complaints.created_at >= ?", base_date).group("complainable_id").order("sum DESC")
      
        complaints_curator = []
        
        complaints_priority.each do |complainable|

            # Select all complaints related to the complainable_id (attributes that have been sumed)
            complaints_curator << ComplaintReason.joins(:complaints).select("*")
            .where("complaints.complainable_id = ? AND complaints.created_at >=?", complainable.complainable_id, base_date).order("complaint_reasons.priority DESC")
        end

        render json: complaints_curator

    end

end