Files
Training-VehicleService-May26/Trenser.VehicleServiceSystem
joelthomastrenser b9be43acca Implement Payment Reminder functionality
<UserStory>
NOT005: Payment Reminder
</UserStory>

<Changes>
    1. Added payment reminder check in Controller::runSystemChecks() to trigger reminder processing during system startup.
    2. Implemented PaymentManagementService::sendPaymentReminders() to identify unpaid invoices that exceed the pending payment threshold and send reminder notifications to customers.
    3. Added reminder notification logic to include invoice details and stop reminders once invoice payment status changes from Pending to Paid.
</Changes>

<Test>
    Precondition:
    1. Customer has an invoice with PaymentStatus::PENDING.
    2. Invoice age exceeds the configured payment reminder threshold.
    3. Application is started and system checks execute.

    Steps:
    1. Start the application.
    2. Allow system checks to run during startup.
    3. Navigate to View Notifications.
       - Verify that a payment reminder notification is displayed.
    4. Open the generated notification.
       - Verify that the notification includes the invoice ID and due date.
    5. Complete payment for the invoice and restart the application.
       - Verify that no further reminder notifications are generated for the paid invoice.
</Test>

<Review>
    Sreeja Reghukumar, please review
</Review>
2026-05-21 12:25:45 +05:30
..