# Log de cada mensagem disparada — quem recebeu, por qual canal, com que texto e # se deu certo. # # Hoje uma falha de envio só vira linha no log do Rails (NotificacaoService # engole a exceção de propósito, para um SMTP fora do ar não travar o # fechamento). Isso é certo, mas deixa o operador sem resposta para "o motorista # recebeu?". Com o WhatsApp por sessão QR — que cai sozinho e precisa # repareamento — essa pergunta passa a ser rotina. class CreateNotificacaoEnvios < ActiveRecord::Migration[7.1] def change create_table :notificacao_envios do |t| t.references :evento_notificacao, foreign_key: true, index: true t.references :contato, foreign_key: true, index: true t.references :user, foreign_key: true, index: true t.string :canal, null: false # whatsapp | email t.string :destino, null: false # telefone E.164 ou e-mail t.string :assunto t.text :corpo t.string :status, null: false, default: 'pendente' # pendente|enviado|falhou t.text :erro t.integer :tentativas, null: false, default: 0 t.datetime :enviado_em t.timestamps end add_index :notificacao_envios, %i[status created_at] add_index :notificacao_envios, :created_at end end