class AssumeUserDetail < ActiveRecord::Base
  belongs_to :user
  has_many :sessions, dependent: :destroy
  before_create :generate_token
  include PublicActivity::Model

  tracked owner: ->(controller, model) {controller && controller.tracked_current_user}, params: {:attributes => proc {|controller, model_instance| {"generate_token(#{model_instance.token})" => model_instance.changes}}}, organisation_id: -> (controller, model) {controller && controller.tracked_current_user.organisation_id}, :location_network_id => nil

  tracked assumed_by: proc {|controller, model| controller.user_assumed_by if controller}

  def generate_token
		self.token = (SecureRandom.random_number * (10**12)).round.to_s
		generate_token if AssumeUserDetail.exists?(token: self.token)
	end
end
