class Obra::MedicaoDaCaixaDaObra < ApplicationRecord
  has_paper_trail

  belongs_to :medicao_da_obra, class_name: 'Contabilidade::MedicaoDaObra'

  validates :data_de_envio, :data_de_liberacao, :medicao_da_obra, presence: true

  validate :data_de_liberacao_nao_pode_ser_anterior_a_data_de_envio

  def data_de_liberacao_nao_pode_ser_anterior_a_data_de_envio
    unless data_de_envio.nil? || data_de_liberacao.nil?
      errors.add(:data_de_liberacao, "deve ser maior que a data de envio") if data_de_liberacao < data_de_envio
      errors.add(:data_de_envio, "deve ser menor que a data de liberação") if data_de_liberacao < data_de_envio
    end
  end

  def retorna_periodo_da_liberacao
    ((self.data_de_liberacao - self.data_de_envio) + 1).to_whole
  end

end
