class Obra::AditivoDoConvenio < ApplicationRecord
  has_paper_trail

  include TradutorConcern

  belongs_to :transferencia, class_name: "Obra::Transferencia"

  validates :inicio_da_vigencia, :fim_da_vigencia, presence: true, if: Proc.new { self.por_prazo? }
  validates :valor, presence: true, if: Proc.new { self.valor? }

  validates :data_do_aditivo, :modalidade, presence: true

  enum modalidade: {
    por_prazo: 1,
    valor: 2
  }

  # VALIDAÇÕES
  def valida_data_do_aditivo
    if self.data_do_aditivo.present?
      errors.add(:data_do_aditivo, "não pode ser anterior à data do convênio (#{transferencia.fim_da_vigencia})") if self.data_do_aditivo < transferencia.fim_da_vigencia
    end
  end

  def valida_inicio_da_vigencia_do_prazo_com_data_final_do_contrato
    if self.inicio_da_vigencia.present?
      errors.add(:inicio_da_vigencia, "deve ser posterior ao fim da vigência do convênio principal ou do último aditivo de prazo (#{transferencia.data_final_de_acordo_com_aditivos})") if self.inicio_da_vigencia <= transferencia.data_final_de_acordo_com_aditivos
    end
  end

  def valida_fim_da_vigencia_por_prazo
    if self.inicio_da_vigencia.present? && self.fim_da_vigencia.present?
      errors.add(:fim_da_vigencia, "deve ser posterior ao início da vigência") if self.fim_da_vigencia <= self.inicio_da_vigencia
    end
  end

end
