Maintenance::ChangeNoneToPatternCustomFieldsTask

Source code
# frozen_string_literal: true

class Maintenance::ChangeNoneToPatternCustomFieldsTask < MaintenanceTasks::Task
  collection_batch_size(100)

  def collection
    CustomField.validation_type_none
  end

  def process(custom_field)
    validation_regex = custom_field.validation_regex.presence || CustomField::DEFAULT_REGEXP

    # Use update_all by id to avoid validations; CustomFields with no mbo_profiles
    # fail validation on save/update.
    CustomField.where(id: custom_field.id).update_all( # rubocop:disable Rails/SkipsModelValidations
      validation_type: CustomFields::ValidationStrategies::PATTERN,
      validation_regex: validation_regex,
      updated_at: Time.current
    )
  end
end