class Base::FontesDeRecursos::FonteStn < ApplicationRecord
	has_paper_trail
	belongs_to :orcamento
	has_many :fontes_de_recursos, class_name: '::Base::FonteDeRecursos'

	attr_default :codigo_tipo_exercicio, :recursos_do_exercicio_corrente

	enum codigo_tipo_exercicio: {
		recursos_do_exercicio_corrente: 1,
		recursos_dos_exercicios_anteriores: 2,
		recursos_condicionados: 9
	}

	validates_presence_of :codigo_principal, :codigo_tipo_exercicio, :detalhamento_sintetico, :nomenclatura_sintetica

	validates_uniqueness_of :detalhamento_sintetico, scope: [:codigo_principal, :codigo_tipo_exercicio, :orcamento_id], case_sensitive: false

	def codigo_completo
		"#{read_attribute_before_type_cast(:codigo_tipo_exercicio)}#{codigo_principal}#{detalhamento_sintetico}"
	end
end
