diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb
index 1d23e2a63..6fbd9c649 100644
--- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb
+++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb
@@ -51,6 +51,29 @@ module JamRuby
end
end
+ def notify_admin_plan(user)
+ if user.admin_override_plan_code.nil?
+ puts "INVALID NOTIFY ADMIN SUBSCRIPTION FOR USER #{user.email}"
+ return nil
+ end
+
+ @user = user
+ @subscription_rules = SubscriptionDefinitions.rules(user.subscription_plan_code)
+ @plan_end_at = user.admin_override_ends_at.strftime("%B %-d, %Y")
+
+ sendgrid_category "Subscription"
+ sendgrid_unique_args :type => "admin_subscription"
+
+ sendgrid_recipients([user.email])
+ sendgrid_substitute('@USERID', [user.id])
+ sendgrid_substitute(EmailBatchProgression::VAR_FIRST_NAME, [user.first_name])
+
+ mail(:to => user.email, :cc => APP_CONFIG.email_support_alias, :subject => "Enjoy your free #{@subscription_rules[:name]} plan until #{@plan_end_at}") do |format|
+ format.text
+ format.html
+ end
+ end
+
def take_paid_lesson(user)
@user = user
@lesson = user.taken_lessons.order(:created_at).last
diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb
new file mode 100644
index 000000000..3e8d8866f
--- /dev/null
+++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.html.erb
@@ -0,0 +1,14 @@
+<% provide(:title, @subject) %>
+
+
+<% if !@user.anonymous? %>
+
Hi <%= @user.first_name %>,
+
+<% end %>
+
+
+ JamKazam has given you a <%= @subscription_rules[:name] %> plan for free until <%= @plan_end_at %>! After that date, your plan will automatically switch back to the Free plan.
+
+
+Best Regards,
+ Team JamKazam
\ No newline at end of file
diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb
new file mode 100644
index 000000000..00fa6e6bd
--- /dev/null
+++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/notify_admin_plan.text.erb
@@ -0,0 +1,11 @@
+<% provide(:title, @subject) %>
+
+
+<% if !@user.anonymous? %>
+Hi <%= @user.first_name %>,
+<% end %>
+
+JamKazam has given you the <%= @subscription_rules[:name] %> for free until <%= @plan_end_at %>. When the plan ends, your plan will automatically switch back to the Free plan.
+
+Best Regards,
+Team JamKazam
\ No newline at end of file
diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb
index 9088063dc..7010e5927 100644
--- a/ruby/lib/jam_ruby/models/user.rb
+++ b/ruby/lib/jam_ruby/models/user.rb
@@ -2883,8 +2883,11 @@ module JamRuby
self.subscription_plan_code_set_at = DateTime.now
if plan_code.nil?
self.admin_override_ends_at = nil
+ else
+ UserMailer.notify_admin_plan(self).deliver_now
end
+
self.save(validate: false)
end
diff --git a/ruby/lib/jam_ruby/subscription_definitions.rb b/ruby/lib/jam_ruby/subscription_definitions.rb
index c5d5e46e3..7683d3706 100644
--- a/ruby/lib/jam_ruby/subscription_definitions.rb
+++ b/ruby/lib/jam_ruby/subscription_definitions.rb
@@ -36,7 +36,8 @@ module JamRuby
can_broadcast: false,
broadcasting_type: 3,
max_players: 4,
- pro_audio: false
+ pro_audio: false,
+ name: 'Free'
}
@@ -52,7 +53,8 @@ module JamRuby
can_broadcast: true,
broadcasting_type: 3,
max_players: 6,
- pro_audio: false
+ pro_audio: false,
+ name: 'Silver'
}
GOLD_PLAN = {
@@ -67,7 +69,8 @@ module JamRuby
can_broadcast: true,
broadcasting_type: 3,
max_players: nil,
- pro_audio: true
+ pro_audio: true,
+ name: 'Gold'
}
PLATINUM_PLAN = {
@@ -82,7 +85,8 @@ module JamRuby
can_broadcast: true,
broadcasting_type: 3,
max_players: nil,
- pro_audio: true
+ pro_audio: true,
+ name: 'Platinum'
}
def self.rules(plan_code)