class Patrimonio::LocalizacaoDoBem < ApplicationRecord
  has_paper_trail

  enum status: { solicitado: 1, confirmado: 2 }

  attr_default :status, :confirmado

  belongs_to :bem_patrimonial, class_name: 'Patrimonio::BemPatrimonial'
  belongs_to :centro_de_custo, class_name: 'Controladoria::CentroDeCusto'
  belongs_to :agente_publico_municipal, class_name: 'Base::AgentePublicoMunicipal'

  validates_presence_of :descricao, :agente_publico_municipal_id, unless: proc { self.centro_de_custo.present? }
  validates_presence_of :data_de_inicio_na_localizacao

  validate :data_de_inicio_na_localizacao_e_data_atual

  def data_de_inicio_na_localizacao_e_data_atual
    errors.add(:data_de_inicio_na_localizacao, "Data de Início na Localização não pode ser maior que o hoje.") if self.data_de_inicio_na_localizacao > Date.today
  end

  def endereco_completo_do_bem
		if numero.present? && complemento.present? && bairro.present? && cep.present?
			"#{endereco}, #{numero}, #{complemento}, #{bairro}, #{Configuracao.last.cidade.try(:nome)} - #{Configuracao.last.cidade.try(:estado).try(:nome)}, CEP: #{cep}"
		elsif numero.present? && bairro.present? && cep.present?
			"#{endereco}, #{numero}, #{bairro}, #{Configuracao.last.cidade.try(:nome)} - #{Configuracao.last.cidade.try(:estado).try(:nome)}, CEP: #{cep}"
		elsif numero.present? && cep.present?
			"#{endereco}, #{numero}, #{Configuracao.last.cidade.try(:nome)} - #{Configuracao.last.cidade.try(:estado).try(:nome)}, CEP: #{cep}"
		else
			"#{endereco}, #{Configuracao.last.cidade.try(:nome)} - #{Configuracao.last.cidade.try(:estado).try(:nome)}"
		end
	end
end
