class Patrimonio::ValorDoLoteDoLeilao < ApplicationRecord
  has_paper_trail

  belongs_to :lote_do_leilao, class_name: 'Patrimonio::LoteDoLeilao'
  belongs_to :comissao, class_name: 'Patrimonio::Comissao'

  validates_presence_of :valor_do_lote, :tipo_de_valor, :lote_do_leilao_id, :data_do_valor
  validates_uniqueness_of :tipo_de_valor, scope: :lote_do_leilao_id

  after_save :destroy_if_value_is_zero

  scope :inicial, -> { where(tipo_de_valor: :valor_inicial) }
  scope :definido, -> { where(tipo_de_valor: :valor_definido) }
  scope :da_venda, -> { where(tipo_de_valor: :valor_venda) }

  enum tipo_de_valor: {
    valor_inicial: 1,
    valor_definido: 2,
    valor_venda: 3
  }

  def destroy_if_value_is_zero
    if self.valor_do_lote == nil || self.valor_do_lote == 0
      self.destroy!
    end
  end
end
