# frozen_string_literal: true

class UsernameSettingValidator
  include RegexSettingValidation

  def initialize(opts = {})
    @opts = opts
    initialize_regex_opts(opts)
  end

  def valid_value?(val)
    !val.present? || (User.where(username: val).exists? && regex_match?(val))
  end

  def error_message
    if @regex_fail
      I18n.t(@regex_error)
    else
      I18n.t("site_settings.errors.invalid_username")
    end
  end
end