IAV-1127 : enhance subscription change handling with multiple fixes
- Fixed invoice creation issues during subscription changes.
- Prevented accumulation of old invoice items from previous changes.
- Addressed race conditions with pessimistic locking on wallet retrieval.
- Corrected refund calculations for downgrade scenarios.
- Implemented validation to prevent excessive refunds.
- Handled payment failures during subscription changes.
- Added idempotency checks to avoid duplicate credit initialization.
- Improved error handling in helper methods.
- Ensured inactive prices are not accepted for subscription changes.
- Moved credit initialization to webhook after payment confirmation.
- Refactored subscription change methods for efficiency.
Closes IAV-1127