class Ppa::Regiao < ApplicationRecord
	has_paper_trail

	belongs_to :ppa
	has_many :micro_regioes, dependent: :destroy
	has_many :propostas, through: :micro_regioes

	validates_uniqueness_of :nome, scope: :ppa_id
	validates_presence_of :nome, :ppa_id
	validates :ppa_id, immutable: true

	def micro_regioes_texto
		micro_regioes.map(&:nome).join(', ')
	end

	def total_de_votos_das_propostas_por_regiao
		return self.propostas.votaveis.inject(0) { |total, proposta| total + proposta.total_de_votos.to_i }
	end

	def percentual_de_votos_da_regiao
		return self.ppa.total_de_votos_das_propostas_do_ppa_participativo.to_i > 0 ? ( (self.total_de_votos_das_propostas_por_regiao * 100) / self.ppa.total_de_votos_das_propostas_do_ppa_participativo.to_f ).round(2) : 0.0
	end
end
