Class: Returns::SendFirstReminder

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/returns/send_first_reminder.rb

Overview

First advance-replacement reminder — 10 days after an unpaid invoice, while
the RMA is still awaiting the customer's return.

See ReminderLadder for why this matches a date RANGE rather than
an exact day.

Defined Under Namespace

Classes: Result

Constant Summary collapse

AFTER_DAYS =

Days after the invoice date this stage fires.

10

Instance Method Summary collapse

Instance Method Details

#process(_options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'app/services/returns/send_first_reminder.rb', line 17

def process(_options = {})
  ladder = Returns::ReminderLadder.new(
    days: AFTER_DAYS,
    sent_column: :reminder_1_sent_at,
    system_code: 'RMA_REMINDER_1'
  )
  outcome = ladder.deliver_all(logger:)
  logger.warn "[RMA_REMINDER_1] #{outcome.failed.size} RMA(s) failed: #{outcome.failed.join(', ')}" unless outcome.complete?

  Result.new(rmas: outcome.delivered)
end