cutoff date for test gear reminder email

add cutoff date config to limit the selection after a certain date
add batch_size:100 to loops
This commit is contained in:
Nuwan 2025-07-25 20:14:48 +05:30
parent b732442932
commit 6e0a86af40
4 changed files with 15 additions and 10 deletions

View File

@ -5,7 +5,7 @@ module JamRuby
def self.send_reminders
begin
cutoff_date = Date.parse(Rails.application.config.signup_survey_cutoff_date) # Define a cutoff date for the survey/gear setup emails
cutoff_date = Date.parse(Rails.application.config.gear_setup_reminders_effective_from_date) # Define a cutoff date for the survey/gear setup emails
reminder1_users(cutoff_date).find_each do |user|
UserMailer.gear_setup_reminder1(user).deliver_now

View File

@ -5,17 +5,18 @@ module JamRuby
def self.send_reminders
begin
reminder1_users.find_each do |user|
cutoff_date = Date.parse(Rails.application.config.test_gear_reminders_effective_from_date) # Define a cutoff date for the test gear setup emails
reminder1_users.find_each(batch_size:100) do |user|
UserMailer.test_gear_reminder1(user).deliver_now
User.where(id: user.id).update_all(test_gear_reminder1_sent_at: Time.now)
end
reminder2_users.find_each do |user|
reminder2_users.find_each(batch_size:100) do |user|
UserMailer.test_gear_reminder2(user).deliver_now
User.where(id: user.id).update_all(test_gear_reminder2_sent_at: Time.now)
end
reminder3_users.find_each do |user|
reminder3_users.find_each(batch_size:100) do |user|
UserMailer.test_gear_reminder3(user).deliver_now
User.where(id: user.id).update_all(test_gear_reminder3_sent_at: Time.now)
end
@ -29,16 +30,16 @@ module JamRuby
User.where("users.first_music_session_at IS NULL")
end
def self.reminder1_users
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.test_gear_reminder1_sent_at IS NULL", 1.day.ago)
def self.reminder1_users(cutoff_date)
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.created_at >= ? AND users.test_gear_reminder1_sent_at IS NULL", 1.day.ago, cutoff_date)
end
def self.reminder2_users
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.test_gear_reminder1_sent_at IS NOT NULL AND users.test_gear_reminder2_sent_at IS NULL", 3.days.ago)
def self.reminder2_users(cutoff_date)
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.created_at >= ? AND users.test_gear_reminder1_sent_at IS NOT NULL AND users.test_gear_reminder2_sent_at IS NULL", 3.days.ago, cutoff_date)
end
def self.reminder3_users
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.test_gear_reminder2_sent_at IS NOT NULL AND users.test_gear_reminder3_sent_at IS NULL", 5.days.ago)
def self.reminder3_users(cutoff_date)
TestGearReminder.prospect_users.where("users.first_certified_gear_at < ? AND users.created_at > ? AND users.test_gear_reminder2_sent_at IS NOT NULL AND users.test_gear_reminder3_sent_at IS NULL", 5.days.ago, cutoff_date)
end
end
end

View File

@ -522,6 +522,8 @@ if defined?(Bundler)
config.send_user_match_mail_only_to_jamkazam_team = true
config.signup_survey_url = "https://www.surveymonkey.com/r/WVBKLYL"
config.signup_survey_cutoff_date = "2025-06-10"
config.gear_setup_reminders_effective_from_date = "2025-06-10"
config.test_gear_reminders_effective_from_date = "2025-07-24"
config.action_mailer.asset_host = config.action_controller.asset_host
end
end

View File

@ -128,4 +128,6 @@ SampleApp::Application.configure do
config.send_user_match_mail_only_to_jamkazam_team = false
config.signup_survey_url = "https://www.surveymonkey.com/r/WVBKLYL"
config.signup_survey_cutoff_date = "2025-06-10"
config.gear_setup_reminders_effective_from_date = "2025-06-10"
config.test_gear_reminders_effective_from_date = "2025-07-24"
end