# Upgrade verification checklist

## Executed in the build environment
- [x] PHP syntax lint passed for every PHP file in the delivered project using PHP 8.4 CLI.
- [x] Reviewed the supplied original schema and preserved existing business tables and router.
- [x] Added a non-destructive one-time migration plus an explicitly destructive optional rollback script.
- [x] Confirmed no real Paystack or SMTP credentials are included.

## Must be tested in your XAMPP/cPanel environment
- [ ] Back up database and apply migration once.
- [ ] Existing user login, customer CRUD, invoice/quotation creation, payment recording, expenses, settings, and reports.
- [ ] Create first admin from CLI; ordinary user cannot access admin routes.
- [ ] Admin dashboard statistics reflect the database.
- [ ] Search/filter users, suspend and reactivate accounts.
- [ ] New unpaid user is redirected away from paid business features, including direct URLs.
- [ ] Existing eligible legacy subscription remains active after migration.
- [ ] Paystack test checkout initialization and callback verification.
- [ ] Incorrect amount/currency/reference does not activate a subscription.
- [ ] Duplicate webhook is ignored and does not extend a subscription twice.
- [ ] Subscription expiry and grace-period cron behavior.
- [ ] SMTP success/failure appears correctly in Email Logs.
- [ ] Dompdf invoice/quotation/receipt view/download and tenant isolation.
- [ ] Email PDF attachment with SMTP configured.
- [ ] CSV report export.
- [ ] Mobile/tablet admin layout and HTTPS session cookies.

## Not executed here
This environment did not include the user's live MySQL database, Paystack account credentials, public HTTPS webhook endpoint, SMTP mailbox, or Composer executable. Therefore no database integration, gateway, webhook delivery, email delivery, or PDF runtime tests are claimed as passed. Install Composer dependencies and run the checklist against a backed-up test database before production use.
