summaryrefslogtreecommitdiff
path: root/app/models/analytics/devops_adoption/segment_selection.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/analytics/devops_adoption/segment_selection.rb')
-rw-r--r--app/models/analytics/devops_adoption/segment_selection.rb36
1 files changed, 0 insertions, 36 deletions
diff --git a/app/models/analytics/devops_adoption/segment_selection.rb b/app/models/analytics/devops_adoption/segment_selection.rb
deleted file mode 100644
index 6b70c13a773..00000000000
--- a/app/models/analytics/devops_adoption/segment_selection.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-class Analytics::DevopsAdoption::SegmentSelection < ApplicationRecord
- ALLOWED_SELECTIONS_PER_SEGMENT = 20
-
- belongs_to :segment
- belongs_to :project
- belongs_to :group
-
- validates :segment, presence: true
- validates :project, presence: { unless: :group }
- validates :project_id, uniqueness: { scope: :segment_id, if: :project }
- validates :group, presence: { unless: :project }
- validates :group_id, uniqueness: { scope: :segment_id, if: :group }
-
- validate :exclusive_project_or_group
- validate :validate_selection_count
-
- private
-
- def exclusive_project_or_group
- if project.present? && group.present?
- errors.add(:group, s_('DevopsAdoptionSegmentSelection|The selection cannot be configured for a project and for a group at the same time'))
- end
- end
-
- def validate_selection_count
- return unless segment
-
- selection_count_for_segment = self.class.where(segment: segment).count
-
- if selection_count_for_segment >= ALLOWED_SELECTIONS_PER_SEGMENT
- errors.add(:segment, s_('DevopsAdoptionSegmentSelection|The maximum number of selections has been reached'))
- end
- end
-end