# Permite que um destinatário seja um GRUPO do WhatsApp, e não só uma pessoa.
#
# O grupo entra como Contato de propósito: assim ele herda tudo que já existe —
# pertence a um grupo de contatos, recebe os eventos que o grupo assina e cada
# envio fica registrado em notificacao_envios. Uma tabela separada duplicaria
# essa máquina inteira.
#
# `whatsapp_grupo_jid` guarda o identificador do WhatsApp (ex.:
# "120363012345678901@g.us"). NÃO é telefone: não tem DDD, não normaliza, e a
# validação de número não se aplica — daí a coluna própria em vez de reaproveitar
# `telefone`.
#
# ⚠️ Nome: `grupo_contato_id` é o GRUPO INTERNO (Diretoria, Motoristas...);
#    `whatsapp_grupo_*` é o grupo lá no WhatsApp. Coisas diferentes.
class AddGrupoWhatsappToContatos < ActiveRecord::Migration[7.1]
  def change
    change_table :contatos, bulk: true do |t|
      t.string :tipo, null: false, default: 'pessoa'  # pessoa | grupo_whatsapp
      t.string :whatsapp_grupo_jid
      # Nome do grupo no momento do cadastro: o JID é opaco e a tela precisa
      # mostrar algo legível mesmo com a ponte fora do ar.
      t.string :whatsapp_grupo_nome
    end

    add_index :contatos, :whatsapp_grupo_jid
  end
end
