module Base
	class TipoDeUnidadeAdministrativa < ApplicationRecord
		has_paper_trail

		belongs_to :modulo, polymorphic: :true, required: true

		enum poder_associado: {
			legislativo: 0,
			executivo: 1
		}

		has_many :orgaos, dependent: :restrict_with_exception, class_name: 'Loa::Orgao'
		has_many :unidades_orcamentarias, dependent: :restrict_with_exception, class_name: 'Loa::UnidadeOrcamentaria'

		validates_presence_of :codigo, :descricao, :modulo_id, :modulo_type
		validates_uniqueness_of :codigo, :descricao, scope: [:modulo_id, :modulo_type]

		def codigo_e_descricao
			"#{codigo} - #{descricao}"
		end
	end
end