Implantação da geração de mensagem de forma livre e mudança na engine de mensagem
This commit is contained in:
41
db/migrate/20260824000001_create_notificacao_contatos.rb
Normal file
41
db/migrate/20260824000001_create_notificacao_contatos.rb
Normal file
@@ -0,0 +1,41 @@
|
||||
# Lista de destinatários das notificações, cadastrada à mão pelo ADM.
|
||||
#
|
||||
# Antes, "quem recebe" era implícito: o NotificacaoService procurava o User
|
||||
# motorista pelo NOME da consolidação. Quem não é usuário do sistema (diretoria,
|
||||
# cliente, terceiro) não tinha como ser avisado, e não havia tela nenhuma para
|
||||
# controlar isso.
|
||||
#
|
||||
# O contato pertence a UM grupo, e é o GRUPO que assina os eventos (ver
|
||||
# 20260824000002) — assim cadastrar alguém novo é escolher o grupo, não repetir
|
||||
# a configuração pessoa por pessoa.
|
||||
class CreateNotificacaoContatos < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
create_table :grupos_contato do |t|
|
||||
t.string :nome, null: false
|
||||
t.string :descricao
|
||||
t.boolean :ativo, null: false, default: true
|
||||
t.timestamps
|
||||
end
|
||||
add_index :grupos_contato, 'LOWER(nome)', unique: true, name: 'index_grupos_contato_nome_unico'
|
||||
|
||||
create_table :contatos do |t|
|
||||
t.references :grupo_contato, foreign_key: true, index: true
|
||||
|
||||
t.string :nome, null: false
|
||||
# E.164 normalizado (+5511920051157). Vazio = contato só de e-mail.
|
||||
t.string :telefone
|
||||
t.string :email
|
||||
t.boolean :ativo, null: false, default: true
|
||||
t.string :observacao
|
||||
|
||||
# Quando o contato É um usuário do sistema (motorista), guardar o vínculo
|
||||
# permite o disparo "avisar o envolvido" achar a pessoa certa sem depender
|
||||
# de casar nome por string, que é o que se faz hoje.
|
||||
t.references :user, foreign_key: true, index: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
add_index :contatos, :telefone
|
||||
add_index :contatos, :email
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user