2013-05-23 22:48:32 -04:00
|
|
|
class EmailLog < ActiveRecord::Base
|
|
|
|
belongs_to :user
|
|
|
|
validates_presence_of :email_type
|
|
|
|
validates_presence_of :to_address
|
|
|
|
|
2013-06-13 18:11:10 -04:00
|
|
|
belongs_to :post
|
|
|
|
belongs_to :topic
|
|
|
|
|
2013-05-23 22:48:32 -04:00
|
|
|
after_create do
|
|
|
|
# Update last_emailed_at if the user_id is present
|
2013-07-01 14:45:52 -04:00
|
|
|
User.where(id: user_id).update_all("last_emailed_at = CURRENT_TIMESTAMP") if user_id.present?
|
2013-05-23 22:48:32 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.count_per_day(sinceDaysAgo = 30)
|
|
|
|
where('created_at > ?', sinceDaysAgo.days.ago).group('date(created_at)').order('date(created_at)').count
|
|
|
|
end
|
2013-06-13 18:11:10 -04:00
|
|
|
|
|
|
|
def self.for(reply_key)
|
|
|
|
EmailLog.where(reply_key: reply_key).first
|
|
|
|
end
|
|
|
|
|
2013-11-15 10:27:43 -05:00
|
|
|
def self.last_sent_email_address
|
|
|
|
where(email_type: 'signup').order('created_at DESC')
|
|
|
|
.first.try(:to_address)
|
|
|
|
end
|
|
|
|
|
2013-05-23 22:48:32 -04:00
|
|
|
end
|
|
|
|
|
2013-05-23 22:35:14 -04:00
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: email_logs
|
|
|
|
#
|
|
|
|
# id :integer not null, primary key
|
|
|
|
# to_address :string(255) not null
|
|
|
|
# email_type :string(255) not null
|
|
|
|
# user_id :integer
|
|
|
|
# created_at :datetime not null
|
|
|
|
# updated_at :datetime not null
|
2013-06-16 20:48:58 -04:00
|
|
|
# reply_key :string(32)
|
2013-06-20 03:42:15 -04:00
|
|
|
# post_id :integer
|
|
|
|
# topic_id :integer
|
2013-05-23 22:35:14 -04:00
|
|
|
#
|
|
|
|
# Indexes
|
|
|
|
#
|
|
|
|
# index_email_logs_on_created_at (created_at)
|
2013-06-16 20:48:58 -04:00
|
|
|
# index_email_logs_on_reply_key (reply_key)
|
2013-05-23 22:35:14 -04:00
|
|
|
# index_email_logs_on_user_id_and_created_at (user_id,created_at)
|
|
|
|
#
|
|
|
|
|