# 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
