jam-cloud/ruby/lib/jam_ruby/models/email_batch_set.rb

88 lines
2.2 KiB
Ruby
Raw Permalink Normal View History

2014-04-04 10:08:00 +00:00
module JamRuby
class EmailBatchSet < ActiveRecord::Base
self.table_name = "email_batch_sets"
belongs_to :email_batch, :class_name => 'JamRuby::EmailBatch'
2014-05-18 00:12:01 +00:00
belongs_to :user, :class_name => 'JamRuby::User'
2014-04-04 10:08:00 +00:00
# def self.load_set(batch, user_ids)
# bset = self.new
# bset.email_batch_id = batch.id
# bset.user_ids = user_ids.join(',')
# bset.started_at = Time.now
# bset.batch_count = user_ids.size
# bset.save!
# bset
# end
def self.sent_email(batch, user_id)
2014-04-04 10:08:00 +00:00
bset = self.new
2014-05-16 07:58:06 +00:00
bset.email_batch_id = batch.id
bset.user_id = user_id
2014-04-04 10:08:00 +00:00
bset.started_at = Time.now
bset.batch_count = 1
2014-04-04 10:08:00 +00:00
bset.save!
bset
end
2014-05-16 07:58:06 +00:00
2014-05-18 00:12:01 +00:00
def self.progress_set(batch, user, trigger_idx)
bset = self.new
bset.email_batch = batch
bset.user = user
bset.started_at = Time.now
bset.batch_count = 1
bset.trigger_index = trigger_idx
bset.sub_type = batch.sub_type
bset.save!
bset
end
2014-05-29 09:15:46 +00:00
def self.scheduled_session_set(batch, receiver, sessions)
bset = self.new
bset.email_batch = batch
bset.user = receiver
bset.user_ids = sessions.map(&:id).join(',')
bset.started_at = Time.now
bset.batch_count = 1
bset.save!
bset
end
2014-05-31 19:09:18 +00:00
def self.new_musician_set(batch, receiver, new_musicians)
bset = self.new
bset.email_batch = batch
bset.user = receiver
bset.user_ids = new_musicians.map(&:id).join(',')
bset.started_at = Time.now
bset.batch_count = 1
bset.save!
bset
end
2014-05-18 00:12:01 +00:00
def subject
unless sub_type.blank?
2014-05-19 15:12:59 +00:00
return EmailBatchProgression.subject(self.sub_type.to_sym)
2014-05-18 00:12:01 +00:00
end
''
end
def title
unless sub_type.blank?
2014-05-19 15:12:59 +00:00
return EmailBatchProgression.title(self.sub_type.to_sym)
2014-05-18 00:12:01 +00:00
end
''
end
2014-05-19 00:43:37 +00:00
def previous_trigger_date
return nil if 0 == self.trigger_index.to_i || self.user_id.nil?
self.class
.where(['email_batch__id = ? AND user_id = ? AND sub_type = ? AND trigger_index = ?',
self.email_batch_id, self.user_id, self.sub_type, self.trigger_index - 1])
.pluck(:created_at)
.limit(1)
.first
end
2014-04-04 10:08:00 +00:00
end
end