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

defmodule AshPostgres.TestRepo.Migrations.MigrateResources28 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
    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"
      )
    )

    drop_if_exists(
      unique_index(:post_links, ["destination_post_id", "source_post_id"],
        name: "post_links_unique_link_index"
      )
    )

    create(
      unique_index(:post_links, ["source_post_id", "destination_post_id"],
        name: "post_links_unique_link_index"
      )
    )
  end

  def down do
    drop_if_exists(
      unique_index(:post_links, ["source_post_id", "destination_post_id"],
        name: "post_links_unique_link_index"
      )
    )

    create(
      unique_index(:post_links, ["destination_post_id", "source_post_id"],
        name: "post_links_unique_link_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"
      )
    )
  end
end
