class Obra::FotoDaFiscalizacao < ApplicationRecord
	has_paper_trail
	include IncrementadorDeCodigoConcern

	belongs_to :fiscalizacao, required: true, class_name: 'Obra::Fiscalizacao'

	has_many :anexos_da_fiscalizacao, class_name: "Obra::AnexoDaFiscalizacao", dependent: :destroy

	validates_presence_of :data_do_cadastro

	accepts_nested_attributes_for :anexos_da_fiscalizacao, reject_if: :all_blank, allow_destroy: true
	validates_associated :anexos_da_fiscalizacao

	before_create :atualiza_codigo_sequencial
	after_destroy :reordenar_numero

	private
	def atualiza_codigo_sequencial
		gerar_sugestao_codigo( :codigo, 4, { fiscalizacao_id: self.fiscalizacao_id }, true )
	end

	def reordenar_numero
		proximo_numero = 1
		if fiscalizacao.fotos_da_fiscalizacao.any?
			fiscalizacao.fotos_da_fiscalizacao.order(:codigo).each do |foto|
				foto.update_column(:codigo, proximo_numero)
				proximo_numero += 1
			end
		end
	end

end
