class Ppa::EixosController < ApplicationController
	include ControllerConcern
	include PpaControllersConcern

	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_ppa_eixo, only: [:show, :edit, :update, :destroy]

	# GET /ppa/eixos
	def index
		@q = Ppa::Eixo.where(ppa_id: ppa_atual.id).order(:id).ransack(query_params)
		@ppa_eixos = @q.result.paginate(page: params[:page], per_page: 10)
	end

	# GET /ppa/eixos/1
	def show
	end

	# GET /ppa/eixos/new
	def new
		@ppa_eixo = Ppa::Eixo.new
	end

	# GET /ppa/eixos/1/edit
	def edit
	end

	# POST /ppa/eixos
	def create
		eixo = ppa_eixo_params
		eixo[:diretrizes] = params[:ppa_eixo][:diretrizes].delete_if(&:blank?) if params[:ppa_eixo][:diretrizes].present?

		@ppa_eixo = Ppa::Eixo.new(eixo)

		@ppa_eixo.ppa_id = ppa_atual.id

		if @ppa_eixo.save
			redirect_to ppa_eixos_path, notice: 'Eixo foi criado com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /ppa/eixos/1
	def update
		eixo = ppa_eixo_params
		eixo[:diretrizes] = params[:ppa_eixo][:diretrizes].delete_if(&:blank?) if params[:ppa_eixo][:diretrizes].present?
		eixo[:diretrizes] = [] if eixo[:diretrizes].blank?

		if @ppa_eixo.update(eixo)
			redirect_to ppa_eixos_path, notice: 'Eixo foi atualizado com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /ppa/eixos/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@ppa_eixo)
		redirect_to ppa_eixos_url, mensagem
	end

	private
	def set_ppa_eixo
		@ppa_eixo = Ppa::Eixo.find(params[:id])
	end

	def ppa_eixo_params
		params.require(:ppa_eixo).permit(:nome, :ppa_id)
	end
end
