iachat/db/migrate/20260301200000_change_notification_templates_to_inbox.rb
Rodrigo Borba 84fff38d94 refactor: move notification templates de units para inboxes
- Arquitetura corrigida: templates agora pertencem à inbox (WhatsApp),
  não à unidade PIX (que é uma config financeira, não de mensagens)
- Migration: troca FK captain_unit_id -> inbox_id (up/down explícito)
- Model: belongs_to :inbox; scope for_inbox
- Controller: escopo via account.inboxes.find(inbox_id)
- Rotas: move de captain/units/:id → inboxes/:id/notification_templates
- Scanner job: joins(:conversation).where(conversations: {inbox_id:})
- UI: página /captain/notifications com seletor de inbox no topo
  (chips clicáveis, templates carregam por watch no selectedInboxId)
- i18n PT/EN: novas keys INBOX_LABEL, SELECT_INBOX_HINT, EMPTY
2026-03-01 22:17:27 -03:00

27 lines
1.1 KiB
Ruby

class ChangeNotificationTemplatesToInbox < ActiveRecord::Migration[7.1]
def up
remove_index :captain_notification_templates,
column: %i[captain_unit_id active],
name: 'idx_notif_templates_unit_active',
if_exists: true
remove_column :captain_notification_templates, :captain_unit_id, :bigint
add_column :captain_notification_templates, :inbox_id, :bigint
add_foreign_key :captain_notification_templates, :inboxes, column: :inbox_id
add_index :captain_notification_templates, %i[inbox_id active],
name: 'idx_notif_templates_inbox_active'
end
def down
remove_index :captain_notification_templates,
name: 'idx_notif_templates_inbox_active',
if_exists: true
remove_foreign_key :captain_notification_templates, :inboxes
remove_column :captain_notification_templates, :inbox_id, :bigint
add_column :captain_notification_templates, :captain_unit_id, :bigint
add_index :captain_notification_templates, %i[captain_unit_id active],
name: 'idx_notif_templates_unit_active'
end
end