class Loa::OrcamentoTematico < ApplicationRecord
	has_paper_trail

	has_many :temas_do_orcamento, class_name: 'Loa::TemaDoOrcamento', dependent: :restrict_with_exception
	has_many :temas_da_subacao, class_name: 'Loa::TemaDaSubacao', dependent: :restrict_with_exception
	before_destroy :orcamento_tematico_padrao_nao_pode_ser_excluido

	before_update :orcamento_tematico_padrao_nao_pode_ser_editado

	validates_presence_of :descricao

	attr_default :padrao, false

	def orcamento_tematico_padrao_nao_pode_ser_excluido
		if self.padrao
			raise Exception.new('não é possível remover orçamento tématico padrão do sistema')
		end
	end

	def orcamento_tematico_padrao_nao_pode_ser_editado
		if self.padrao
			raise Exception.new('não é possível editar orçamento tématico padrão do sistema')
		end
	end

end
