# WhatsApp por sessão pareada com QR code (Baileys), no lugar do Twilio.
#
# `whatsapp_provedor` decide quem envia. Nasce com o valor que a instalação já
# usa ('twilio' se havia credencial configurada), então o deploy não muda o
# comportamento até o ADM parear o QR e trocar o provedor na tela.
#
# ⚠️ O envio por QR é a porta do WhatsApp Web (engenharia reversa), fora dos
#    Termos do WhatsApp: a Meta PODE banir o número. Por isso o intervalo entre
#    mensagens é configurável e nasce em 5s — disparo em rajada para dezenas de
#    contatos é a forma mais rápida de perder o número.
class AddBaileysToConfiguracaoNotificacoes < ActiveRecord::Migration[7.1]
  def up
    change_table :configuracao_notificacoes, bulk: true do |t|
      t.string  :whatsapp_provedor, null: false, default: 'twilio' # twilio | baileys
      t.string  :baileys_url
      t.text    :baileys_token_cifrado
      t.string  :whatsapp_numero_conectado
      t.datetime :whatsapp_conectado_em
      t.integer :whatsapp_intervalo_segundos, null: false, default: 5
    end
  end

  def down
    change_table :configuracao_notificacoes, bulk: true do |t|
      t.remove :whatsapp_provedor, :baileys_url, :baileys_token_cifrado,
               :whatsapp_numero_conectado, :whatsapp_conectado_em,
               :whatsapp_intervalo_segundos
    end
  end
end
