class AddOnDeleteConstraintForUserKeys < ActiveRecord::Migration[6.0]
  def change
    remove_foreign_key :admission_applicant_checkboxes, column: :user_id
    add_foreign_key :admission_applicant_checkboxes, :Users, column: :user_id, primary_key: :UserID,
      on_delete: :nullify

    remove_foreign_key :employee_positions, column: :employee_id
    add_foreign_key :employee_positions, :Users, column: :employee_id, primary_key: :UserID,
      on_delete: :cascade

    remove_foreign_key :menus, column: :user_id
    add_foreign_key :menus, :Users, column: :user_id, primary_key: :UserID, on_delete: :cascade

    remove_foreign_key :google_oauth_tokens, column: :user_id
    add_foreign_key :google_oauth_tokens, :Users, column: :user_id, primary_key: :UserID,
      on_delete: :cascade

    remove_foreign_key :notification_messages, column: :user_id
    add_foreign_key :notification_messages, :Users, column: :user_id, primary_key: :UserID,
      on_delete: :cascade

    remove_foreign_key :push_notification_subscribers, column: :user_id
    add_foreign_key :push_notification_subscribers, :Users, column: :user_id, primary_key: :UserID,
      on_delete: :cascade

    remove_foreign_key :tokens, column: :user_id
    add_foreign_key :tokens, :Users, column: :user_id, primary_key: :UserID, on_delete: :cascade
  end
end
