diff options
Diffstat (limited to 'app/models/namespace_onboarding_action.rb')
-rw-r--r-- | app/models/namespace_onboarding_action.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/models/namespace_onboarding_action.rb b/app/models/namespace_onboarding_action.rb new file mode 100644 index 00000000000..43dd872673c --- /dev/null +++ b/app/models/namespace_onboarding_action.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class NamespaceOnboardingAction < ApplicationRecord + belongs_to :namespace, optional: false + + validates :action, presence: true + + ACTIONS = { + subscription_created: 1, + git_write: 2, + merge_request_created: 3, + git_read: 4, + user_added: 6 + }.freeze + + enum action: ACTIONS + + class << self + def completed?(namespace, action) + where(namespace: namespace, action: action).exists? + end + + def create_action(namespace, action) + NamespaceOnboardingAction.safe_find_or_create_by(namespace: namespace, action: action) + end + end +end |