blob: 82bed0a16147522261f5b655d35506afd7aa1bf6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# frozen_string_literal: true
require_relative 'subscription_reminder_policy'
module SolidusSubscriptions
class Reminder
class << self
def run
SolidusSubscriptions::Subscription
.where(installments: SolidusSubscriptions::Installment.unfulfilled)
.or(SolidusSubscriptions::Subscription.where.not(state: ["canceled", "inactive"]))
.distinct
.find_each
.select { |subscription| SubscriptionReminderPolicy.new(subscription).send_reminder? }
.map do |subscription|
SolidusSubscriptions::ProcessReminderJob.perform_later(subscription)
end
end
end
end
end
|