# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

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

  def up do
    execute("UPDATE users SET pinned_objects = '{}' WHERE pinned_objects IS NULL")

    alter table("users") do
      modify(:pinned_objects, :map, null: false, default: %{})
    end
  end

  def down do
    alter table("users") do
      modify(:pinned_objects, :map, null: true, default: nil)
    end
    
    execute("UPDATE users SET pinned_objects = NULL WHERE pinned_objects = '{}'")
  end
end
