class GestaoDeEstoque::ControleDePraga < ApplicationRecord
	has_paper_trail

	include TradutorConcern
	include IncrementadorDeCodigoConcern

	belongs_to :empresa_responsavel, class_name: "Base::Pessoa", foreign_key: "empresa_responsavel_id"
	belongs_to :almoxarifado, class_name: "GestaoDeEstoque::Almoxarifado", foreign_key: "almoxarifado_id"

	validates :numero, presence: true
	validates :data_da_dedetizacao, presence: true
	validates :empresa_responsavel_id, presence: true
	validates :tipo_de_praga, presence: true
	validates :frequencia_media, presence: true
	validates :almoxarifado_id, presence: true

	after_initialize :atribui_numero_disponivel, unless: :possui_numero?

	def possui_numero?
		self.numero.present?
	end

	def atribui_numero_disponivel
		if self.data_da_dedetizacao.present?
			gerar_codigo(self.data_da_dedetizacao, :numero, :data_da_dedetizacao, :id, self.id)
		end
	end
end
