class Obra::VerificacoesDaFiscalizacaoController < ApplicationController
	include ControllerConcern
	include ObraControllersConcern

	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_verificacao, only: [:show, :edit, :update, :destroy]
	before_action :set_fiscalizacao, only: [:new]
	before_action :disponibiliza_dependencias, only: [:new, :edit]

	# GET /obra/verificacoes_da_fiscalizacao/1
	def show
	end

	# GET /obra/verificacoes_da_fiscalizacao/new
	def new
		@verificacao_da_fiscalizacao = @fiscalizacao.verificacoes_da_fiscalizacao.new
	end

	# GET /obra/verificacoes_da_fiscalizacao/1/edit
	def edit
	end

	# POST /obra/verificacoes_da_fiscalizacao
	def create
		@verificacao_da_fiscalizacao = Obra::VerificacaoDaFiscalizacao.new(verificacao_params)
		if @verificacao_da_fiscalizacao.save
			redirect_to obra_fiscalizacao_path(@verificacao_da_fiscalizacao.fiscalizacao) + "?tab=verificacoes_da_fiscalizacao", notice: 'Verificação foi criado(a) com sucesso.'
		else
			disponibiliza_dependencias
			render :new
		end
	end

	# PATCH/PUT /obra/verificacoes_da_fiscalizacao/1
	def update
		if @verificacao_da_fiscalizacao.update( verificacao_params )
			redirect_to obra_fiscalizacao_path(@verificacao_da_fiscalizacao.fiscalizacao) + "?tab=verificacoes_da_fiscalizacao", notice: 'Verificação foi atualizado(a) com sucesso.'
		else
			disponibiliza_dependencias
			render :edit
		end
	end

	# DELETE /obra/verificacoes_da_fiscalizacao/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@verificacao_da_fiscalizacao)
		redirect_to obra_fiscalizacao_path(@verificacao_da_fiscalizacao.fiscalizacao) + "?tab=verificacoes_da_fiscalizacao", mensagem
	end

	private

	def set_verificacao
		@verificacao_da_fiscalizacao = Obra::VerificacaoDaFiscalizacao.find( params[:id] )
	end

	def set_fiscalizacao
		@fiscalizacao = Obra::Fiscalizacao.find( params[:fiscalizacao_id] )
	end

	def disponibiliza_dependencias
		@tipos = Obra::VerificacaoDaFiscalizacao.tipos
		@situacoes = Obra::VerificacaoDaFiscalizacao.situacoes
	end

	def verificacao_params
		params.require(:obra_verificacao_da_fiscalizacao).permit(:id, :fiscalizacao_id, :tipo, :situacao, :data_do_cadastro, :descricao,
			fotos_da_verificacao_attributes: [:id, :verificacao_da_fiscalizacao_id, :descricao, :file, :_destroy])
	end
end
