class Licitacao::DocumentoDoApostilamento < ApplicationRecord
  include TradutorConcern
  has_paper_trail

  belongs_to :apostilamento, class_name: 'Licitacao::Apostilamento', required: true
  belongs_to :modelo_do_documento, class_name: "Licitacao::ModeloDeDocumento"

  validates_presence_of :apostilamento_id, :tipo_de_documento, :texto
  validates_presence_of :titulo_personalizado, if: Proc.new{ |documento_do_apostilamento| documento_do_apostilamento.tipo_de_documento == "personalizado" }
  validates :tipo_de_documento, immutable: true

  enum tipo_de_documento: {
    apostilamento: 21,
    personalizado: 98,
    outros_documentos: 99
  }

  def titulo_do_modelo
    if self.personalizado?
      self.titulo_personalizado.try(:upcase)
    else
      if self.modelo_do_documento && self.modelo_do_documento.titulo
        self.modelo_do_documento.try(:titulo)
      end
    end
  end
end
