# frozen_string_literal: true

class AddComponentToThemes < ActiveRecord::Migration[5.2]
  def up
    add_column :themes, :component, :boolean, null: false, default: false

    execute(
      "
      UPDATE themes
      SET component = true, color_scheme_id = NULL, user_selectable = false
      WHERE id IN (SELECT child_theme_id FROM child_themes)
    ",
    )

    execute(
      "
      UPDATE site_settings
      SET value = -1
      WHERE name = 'default_theme_id' AND value::integer IN (SELECT id FROM themes WHERE component)
    ",
    )

    execute(
      "
      DELETE FROM child_themes
      WHERE parent_theme_id IN (SELECT id FROM themes WHERE component)
    ",
    )
  end

  def down
    remove_column :themes, :component
  end
end