# frozen_string_literal: true

class UpdateAvatarServiceDomain < ActiveRecord::Migration[6.1]
  def up
    existing_value =
      DB.query_single(
        "SELECT value FROM site_settings WHERE name = 'external_system_avatars_url'",
      )&.[](0)

    if existing_value&.include?("avatars.discourse.org")
      new_value = DB.query_single(<<~SQL)&.[](0)
        UPDATE site_settings
        SET value = REPLACE(value, 'avatars.discourse.org', 'avatars.discourse-cdn.com')
        WHERE name = 'external_system_avatars_url'
        AND value LIKE '%avatars.discourse.org%'
        RETURNING value
      SQL

      DB.exec <<~SQL, previous: existing_value, new: new_value
        INSERT INTO user_histories
        (action, subject, previous_value, new_value, admin_only, updated_at, created_at, acting_user_id)
        VALUES (3, 'external_system_avatars_url', :previous, :new, true, NOW(), NOW(), -1)
      SQL
    end
  end

  def down
    # Nothing to do
  end
end