in src/main/scala/com/gu/invoicing/nextinvoicedate/Program.scala [17:24]
def program(input: NextInvoiceDateInput): NextInvoiceDateOutput = retryUnsafe {
val NextInvoiceDateInput(subscriptionName) = input
val accountId = getAccountId(subscriptionName)
val allInvoiceItems = getBillingPreview(accountId)
val invoiceItems = collectRelevantInvoiceItems(subscriptionName, allInvoiceItems)
val nextInvoiceDate = findNextInvoiceDate(invoiceItems)
NextInvoiceDateOutput(nextInvoiceDate)
}