39 lines
942 B
Ruby
39 lines
942 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Clusters
|
|
module Agents
|
|
class ActivityEvent < ApplicationRecord
|
|
include EachBatch
|
|
include NullifyIfBlank
|
|
|
|
self.table_name = 'agent_activity_events'
|
|
|
|
belongs_to :agent, class_name: 'Clusters::Agent', optional: false
|
|
belongs_to :user
|
|
belongs_to :agent_token, class_name: 'Clusters::AgentToken'
|
|
|
|
scope :in_timeline_order, -> { order(recorded_at: :desc, id: :desc) }
|
|
scope :recorded_before, -> (cutoff) { where('recorded_at < ?', cutoff) }
|
|
|
|
validates :recorded_at, :kind, :level, presence: true
|
|
|
|
nullify_if_blank :detail
|
|
|
|
enum kind: {
|
|
token_created: 0,
|
|
token_revoked: 1,
|
|
agent_connected: 2,
|
|
agent_disconnected: 3
|
|
}, _prefix: true
|
|
|
|
enum level: {
|
|
debug: 0,
|
|
info: 1,
|
|
warn: 2,
|
|
error: 3,
|
|
fatal: 4,
|
|
unknown: 5
|
|
}, _prefix: true
|
|
end
|
|
end
|
|
end
|