class Contabilidade::EventoContabilPorGerador < ApplicationRecord
	has_paper_trail

	belongs_to :gerador, polymorphic: true, required: true
	belongs_to :evento_contabil, required: true

	delegate :configuracao_do_evento_contabil, to: :evento_contabil, allow_nil: true

	validates_presence_of :evento_contabil_id

	validates :gerador_id, immutable: true
	validates :gerador_type, immutable: true

	def evento_de_conta_bancaria?
		configuracao_do_evento_contabil.conta_pcasp_da_conta_bancaria_id.present?
	end

	def evento_de_pagamento_com_conta_bancaria?
		evento_contabil.pagamento? && evento_de_conta_bancaria?
	end
end
