# Motoristas fazem login por PIN/QR e podem não ter e-mail. A coluna email era
# NOT NULL com default "" e índice único — então criar o 2º motorista sem e-mail
# colidia em "" (RecordNotUnique → 500 ao salvar pela tela de usuários).
#
# Solução: permitir NULL e converter os "" existentes em NULL. No Postgres o
# índice único trata múltiplos NULL como distintos, então vários motoristas sem
# e-mail convivem sem conflito.
class AllowNullEmailForMotoristas < ActiveRecord::Migration[7.1]
  def up
    change_column_null    :users, :email, true
    change_column_default :users, :email, from: '', to: nil
    execute "UPDATE users SET email = NULL WHERE email = ''"
  end

  def down
    execute "UPDATE users SET email = '' WHERE email IS NULL"
    change_column_default :users, :email, from: nil, to: ''
    change_column_null    :users, :email, false
  end
end
