# SPDX-FileCopyrightText: 2020 Zach Daniel
#
# SPDX-License-Identifier: MIT

defmodule AshPostgres.TestRepo.Migrations.MigrateResources26 do
  @moduledoc """
  Updates resources based on their most recent snapshots.

  This file was autogenerated with `mix ash_postgres.generate_migrations`
  """

  use Ecto.Migration

  def up do
    alter table(:posts) do
      add(:uniq_if_contains_foo, :text)
    end

    drop_if_exists(
      unique_index(:posts, [:"UPPER(uniq_on_upper)"], name: "posts_uniq_on_upper_index")
    )

    create(
      unique_index(:posts, ["UPPER(uniq_on_upper)"],
        where: "type = 'sponsored'",
        name: "posts_uniq_on_upper_index"
      )
    )

    create(
      unique_index(:posts, [:uniq_if_contains_foo],
        name: "posts_uniq_if_contains_foo_index",
        where: "((uniq_if_contains_foo LIKE '%foo%')) AND (type = 'sponsored')"
      )
    )
  end

  def down do
    drop_if_exists(
      unique_index(:posts, [:uniq_if_contains_foo], name: "posts_uniq_if_contains_foo_index")
    )

    drop_if_exists(
      unique_index(:posts, ["UPPER(uniq_on_upper)"], name: "posts_uniq_on_upper_index")
    )

    create(
      unique_index(:posts, [:"UPPER(uniq_on_upper)"],
        where: "type = 'sponsored'",
        name: "posts_uniq_on_upper_index"
      )
    )

    alter table(:posts) do
      remove(:uniq_if_contains_foo)
    end
  end
end
