Skip to content

Commit

Permalink
Set up sms reminders in Bangladesh for Feb to Apr (#5382)
Browse files Browse the repository at this point in the history
**Story card:**
[sc-11826](https://app.shortcut.com/simpledotorg/story/11826/set-up-sms-reminders-in-bangladesh)

This PR sets up sms reminders in Bangladesh for February to April 2024.

---------

Co-authored-by: Priyanga P Kini <priyangapkini99@gmail.com>
  • Loading branch information
qptr and PriyangaPKini committed Feb 21, 2024
1 parent e35fae4 commit 7c9b7ca
Showing 1 changed file with 57 additions and 0 deletions.
57 changes: 57 additions & 0 deletions db/data/20240125122939_set_up_sms_reminders_bd_feb_apr_2024.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
class SetUpSmsRemindersBdFebApr2024 < ActiveRecord::Migration[6.1]
EXPERIMENTS_DATA = (2..4).map do |month_number|
month = Date::ABBR_MONTHNAMES[month_number]
{
current_experiment_name: "Current patients #{month} 2024",
stale_experiment_name: "Stale patients #{month} 2024",
start_time: DateTime.new(2024, month_number).beginning_of_month,
end_time: DateTime.new(2024, month_number).end_of_month
}
end
MAX_PATIENTS_PER_DAY = 5000
REGION_FILTERS = {
"districts" => {"include" => ["Sylhet", "Moulvibazar", "Habiganj", "Sunamganj", "Barishal", "Jhalokathi", " Feni",
"Chattogram", "Bandarban", "Pabna", "Rajshahi", "Sirajganj", "Sherpur", "Jamalpur"]}
}.freeze

def up
return unless CountryConfig.current_country?("Bangladesh") && SimpleServer.env.production?

EXPERIMENTS_DATA.each do |experiment_data|
ActiveRecord::Base.transaction do
Experimentation::Experiment.current_patients.create!(
name: experiment_data[:current_experiment_name],
start_time: experiment_data[:start_time],
end_time: experiment_data[:end_time],
max_patients_per_day: MAX_PATIENTS_PER_DAY,
filters: REGION_FILTERS
).tap do |experiment|
treatment_group = experiment.treatment_groups.create!(description: "cascade_free")
treatment_group.reminder_templates.create!(message: "notifications.set03.free", remind_on_in_days: 1)
treatment_group.reminder_templates.create!(message: "notifications.set03.free", remind_on_in_days: 3)
end
end

ActiveRecord::Base.transaction do
Experimentation::Experiment.stale_patients.create!(
name: experiment_data[:stale_experiment_name],
start_time: experiment_data[:start_time],
end_time: experiment_data[:end_time],
max_patients_per_day: MAX_PATIENTS_PER_DAY,
filters: REGION_FILTERS
).tap do |experiment|
treatment_group = experiment.treatment_groups.create!(description: "cascade_free")
treatment_group.reminder_templates.create!(message: "notifications.set02.free", remind_on_in_days: 0)
treatment_group.reminder_templates.create!(message: "notifications.set03.free", remind_on_in_days: 3)
end
end
end
end

def down
EXPERIMENTS_DATA.each do |experiment_data|
Experimentation::Experiment.current_patients.find_by_name(experiment_data[:current_experiment_name])&.cancel
Experimentation::Experiment.stale_patients.find_by_name(experiment_data[:stale_experiment_name])&.cancel
end
end
end

0 comments on commit 7c9b7ca

Please sign in to comment.