class Contabilidade::Conciliacao < ApplicationRecord
  has_paper_trail

  attr_default :tipo_de_grupo, :nenhum

  belongs_to :transacao_da_conciliacao
  belongs_to :movimentacao_da_conta_bancaria

  validates_presence_of :transacao_da_conciliacao_id, :movimentacao_da_conta_bancaria_id

  after_create :atualiza_transacao_da_conciliacao, :atualiza_movimentacao_da_conta_bancaria
  after_destroy :tornar_trasacao_pendente

  enum tipo_de_grupo: {
    nenhum: 0,
    transacao: 1,
    movimento: 2
  }

  def atualiza_transacao_da_conciliacao
    self.transacao_da_conciliacao.update_column(:status, :conciliado)
  end

  def atualiza_movimentacao_da_conta_bancaria
    self.movimentacao_da_conta_bancaria.update_column(:conciliada, true)
  end

  def tornar_trasacao_pendente
    self.transacao_da_conciliacao.update_column(:status, :pendente)
  end

end
