# frozen_string_literal: true

discobot_username = 'discobot'

def seed_primary_email
  UserEmail.seed do |ue|
    ue.id = -2
    ue.email = "discobot_email"
    ue.primary = true
    ue.user_id = -2
  end
end

unless user = User.find_by(id: -2)
  suggested_username = UserNameSuggester.suggest(discobot_username)

  seed_primary_email

  User.seed do |u|
    u.id = -2
    u.name = discobot_username
    u.username = suggested_username
    u.username_lower = suggested_username.downcase
    u.password = SecureRandom.hex
    u.active = true
    u.approved = true
    u.trust_level = TrustLevel[4]
  end

  # TODO Pull the user avatar from that thread for now. In the future, pull it from a local file or from some central discobot repo.
  if !Rails.env.test?
    begin
      UserAvatar.import_url_for_user(
        "https://cdn.discourse.org/dev/uploads/default/original/2X/e/edb63d57a720838a7ce6a68f02ba4618787f2299.png",
        User.find(-2),
        override_gravatar: true
      )
    rescue
      # In case the avatar can't be downloaded, don't fail seed
    end
  end
end

bot = User.find(-2)

# ensure discobot has a primary email
unless bot.primary_email
  seed_primary_email
  bot.reload
end

bot.update!(admin: true, moderator: false)

bot.user_option.update!(
  email_messages_level: UserOption.email_level_types[:never],
  email_level: UserOption.email_level_types[:never]
)

if !bot.user_profile.bio_raw
  bot.user_profile.update!(
    bio_raw: I18n.t('discourse_narrative_bot.bio', site_title: SiteSetting.title, discobot_username: bot.username)
  )
end

Group.user_trust_level_change!(-2, TrustLevel[4])
