# app/models/grupo_evento_assinatura.rb # # "O grupo X recebe o evento Y por WhatsApp/e-mail/ambos." class GrupoEventoAssinatura < ApplicationRecord CANAIS = %w[ambos whatsapp email].freeze CANAL_LABEL = { 'ambos' => 'WhatsApp e e-mail', 'whatsapp' => 'Só WhatsApp', 'email' => 'Só e-mail' }.freeze belongs_to :grupo_contato belongs_to :evento_notificacao validates :canal, inclusion: { in: CANAIS } validates :grupo_contato_id, uniqueness: { scope: :evento_notificacao_id, message: 'já assina este evento' } scope :ativas, -> { where(ativo: true) } def cobre_canal?(canal) self.canal == 'ambos' || self.canal == canal.to_s end def canal_label = CANAL_LABEL[canal] || canal end