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