Replace validations on models with ExactlyOnePresentValidator

Follow up on: #558129 (closed)

Summary

This task aims to replace custom validations on model with the ExactlyOnePresentValidator for some models.

Improvements

By replacing these custom validations with the ExactlyOnePresentValidator validator, the readability of the validations on these models will improve. Custom logic on models will be reduced.

Risks

TBD

Involved components

  • app/models/concerns/integrations/base_data_fields.rb
  • app/models/import/placeholders/membership.rb
  • app/models/import/source_user_placeholder_reference.rb
  • app/models/description_version.rb
  • app/models/label.rb
  • app/models/resource_event.rb
  • app/models/resource_label_event.rb
  • app/models/resource_state_event.rb
  • app/models/resource_timebox_event.rb
  • app/models/snippet_repository.rb
  • app/models/bulk_imports/entity.rb
  • app/models/protected_branch.rb
  • app/models/snippet.rb
  • app/models/wiki_page/meta.rb
  • ee/app/models/ai/catalog/item_consumer.rb
  • ee/app/models/ai/flow_trigger.rb
  • ee/app/models/merge_requests/approval_rule.rb
  • ee/app/models/ee/list.rb
  • ee/app/models/analytics/dashboards/dashboards_pointer.rb
  • app/models/internal_id.rb
  • app/models/timelog.rb
  • ee/app/models/incident_management/escalation_rule.rb
  • ee/app/models/protected_environments/deploy_access_level.rb
Edited by Jorge T