23 lines
755 B
Ruby
23 lines
755 B
Ruby
# 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
|