export function getLastPaymentDateBeforeDiscountExpiry()

in handlers/discount-expiry-notifier/src/handlers/getOldPaymentAmount.ts [211:237]


export function getLastPaymentDateBeforeDiscountExpiry(
	firstPaymentDateAfterDiscountExpiry: string,
	paymentFrequency: string,
): string {
	const date = new Date(firstPaymentDateAfterDiscountExpiry);

	//if the date is a leap year, set the last day of February
	if (date.getMonth() === 1 && date.getDate() === 29) {
		date.setDate(28);
	}

	switch (paymentFrequency.toLowerCase()) {
		case 'annual':
			date.setFullYear(date.getFullYear() - 1);
			break;
		case 'quarter':
			date.setMonth(date.getMonth() - 3);
			break;
		case 'month':
			date.setMonth(date.getMonth() - 1);
			break;
		default:
			throw new Error('Invalid payment frequency');
	}

	return date.toISOString().split('T')[0] ?? '';
}