Sha256: a89b70a6771c92a18edd31d0223e74733ee75c409b22b049f40aa139d4591fb9

Contents?: true

Size: 1.12 KB

Versions: 26

Compression:

Stored size: 1.12 KB

Contents

##
## Sends a campaign.
## _vp_ 2023-02-02
##
class WcoEmail::Campaign
  include Mongoid::Document
  include Mongoid::Timestamps
  store_in collection: 'ish_email_campaigns'

  field :slug
  validates_uniqueness_of :slug, allow_nil: true

  PAGE_PARAM_NAME = 'email_contexts_page'

  field :from_email
  validates_presence_of :from_email

  belongs_to :email_template
  def tmpl; email_template; end

  field :subject
  field :body

  field :sent_at, type: DateTime
  field :send_at, type: DateTime

  has_many :unsubscribes, class_name: '::Ish::EmailUnsubscribe', inverse_of: :campaign

  def campaign_leads
    return ::EmailCampaignLead.where( email_campaign_id: self.id.to_s ).includes( :lead )
  end

  def leads
    ::Lead.joins( :email_campaign_leads ).where( 'email_campaign_leads.email_campaign_id' => self.id.to_s )
  end

  ##
  ## For tracking
  ##
  attr_reader :tid

  def do_send
    leads.each do |lead|
      ctx = Ctx.create!({
        email_template: tmpl,
        from_email:     tmpl.from_email,
        lead_id:        lead.id,
        send_at:        Time.now,
        subject:        tmpl.subject,
      })
    end
  end

end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
wco_models-3.1.0.37 app/models/wco_email/campaign.rb
wco_models-3.1.0.36 app/models/wco_email/campaign.rb
wco_models-3.1.0.35 app/models/wco_email/campaign.rb
wco_models-3.1.0.34 app/models/wco_email/campaign.rb
wco_models-3.1.0.33 app/models/wco_email/campaign.rb
wco_models-3.1.0.32 app/models/wco_email/campaign.rb
wco_models-3.1.0.31 app/models/wco_email/campaign.rb
ish_models-3.1.0.29 app/models/wco_email/campaign.rb
ish_models-3.1.0.28 app/models/wco_email/campaign.rb
ish_models-3.1.0.27 app/models/wco_email/campaign.rb
ish_models-3.1.0.26 app/models/wco_email/campaign.rb
ish_models-3.1.0.25 app/models/wco_email/campaign.rb
ish_models-3.1.0.24 app/models/wco_email/campaign.rb
ish_models-3.1.0.23 app/models/wco_email/campaign.rb
ish_models-3.1.0.22 app/models/wco_email/campaign.rb
ish_models-3.1.0.21 app/models/wco_email/campaign.rb
ish_models-3.1.0.20 app/models/wco_email/campaign.rb
ish_models-3.1.0.19 app/models/wco_email/campaign.rb
ish_models-3.1.0.18 app/models/wco_email/campaign.rb
ish_models-3.1.0.17 app/models/wco_email/campaign.rb