class GestaoDeEstoque::Comissao < ApplicationRecord
  has_paper_trail

  include IncrementadorDeCodigoConcern
  include TradutorConcern

  has_many :membros_da_comissao, dependent: :destroy

  after_initialize :atribui_codigo_disponivel, unless: :possui_codigo?

  validates :codigo, presence: :true
  validates :data_da_portaria, presence: :true
  validates :numero_da_portaria, presence: :true
  validates :nome_da_comissao, presence: :true
  validates :tipo_de_comissao, presence: :true

  enum tipo_de_comissao: {
    inventario: 0,
    desfazimento_de_bens_de_consumo: 1,
    desfazimento_de_bens_permanentes: 2
  }

  def ativa?
    self.numero_da_portaria_de_extincao.nil? && self.data_de_extincao.nil?
  end

  def possui_codigo?
    self.codigo.present?
  end

  def atribui_codigo_disponivel
		self.codigo = gerar_sugestao_codigo(:codigo, 3, nil)
  end

  def codigo_e_nome
    "#{self.codigo} - #{self.nome_da_comissao}"
  end

  def portaria_e_nome
    "#{self.numero_da_portaria} - #{self.nome_da_comissao}"
  end
end
