defmodule Pleroma.Repo.Migrations.CreateRegistrations do
  use Ecto.Migration

  def change do
    create_if_not_exists table(:registrations, primary_key: false) do
      add(:id, :uuid, primary_key: true)
      add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))
      add(:provider, :string)
      add(:uid, :string)
      add(:info, :map, default: %{})

      timestamps()
    end

    create_if_not_exists(unique_index(:registrations, [:provider, :uid]))
    create_if_not_exists(unique_index(:registrations, [:user_id, :provider, :uid]))
  end
end