class OpenAPI::V1::EventsController < OpenAPI::V1::BaseController
  extend OpenAPI::ApiDoc
  expose_doc
  
  def index
    
	if upcoming
      @events = Event.includes(:event_image, :event_files, :availability, :category)
				.where('availabilities.end_at >= ?', DateTime.current)
                .order('availabilities.start_at ASC').references(:availabilities)
    else
	  @events = Event.includes(:event_image, :event_files, :availability, :category).order(created_at: :desc)
    end

    if params[:id].present?
      @events = @events.where(id: params[:id])
	end	

    if params[:page].present?
      @events = @events.page(params[:page]).per(per_page)
      paginate @events, per_page: per_page
    end
  end

  private
    def per_page
      params[:per_page] || 20
    end
	def upcoming
	  params[:upcoming] || false
	end
end