[ApplicationModule]
  - BREAKING: Added explicit return types to the read-related 
Crm\ApplicationModule\Repository methods (getTable, ``find, findBy, totalCount`). remp/crm#2761
    
      - If you override this methods in your repositories, update the method signatures based on the parent class.
 
    
   
[ApiModule]
  - Added 
LazyApiDecider to lazy-initialize API handlers and speed up the application. remp/crm#2750 
  - Fixed unnecessary slow API route registration. remp/crm#2738
 
  - Added missing 
getType() method to ParamInterface. This method is used by ApiTestCallFormFactory which relies that implementation o ParamInterface will implement this method. 
  - Added casting to integer for netmask in 
BearerTokenAuthorization::ipInRange(). 
[CouponModule]
  - BREAKING - Added 
setLength method into CouponGeneratorInterface. remp/crm#2666
    
      - Added the length of coupon between generators form inputs.
 
    
   
[IssuesModule]
  - Added option 
--delete-source-after into command issues:import to remove source files after successful import. remp/crm#2745 
[PaymentsModule]
  - BREAKING: Moved the reference of 
subscription_type_item from payment_item_meta into payment_items table.
    
      - IMPORTANT: This migration could take a time, depending on the size of your 
payment_items table. Consider to run it at off-peak times. 
      - To fill foreign keys 
subscription_type_item_id in payment_items table run command payments:fill_reference_to_subscription_type_item. The command may run longer, but is not blocking and it can run in the background. 
    
   
  - Added ability to specify  period lengths in retention analysis computation. remp/crm#2169
 
  - Added 
RecurrentPaymentSubscriptionTypeContentAccessCriteria scenario criteria. remp/crm#2737 
  - Fixed typo in error message for subscription’s start time. remp/crm#2749
 
  - Fixed registration of the gateway test host. Gateways registered as separate modules (
vub-eplatby, slsp) didn’t have the test host available. remp/crm#2751 
  - Fixed method 
PaymentItemsRepository::copyPaymentItem() which doesn’t copy properly all payment_items attributes. remp/helpdesk#1514 
[ProductsModule]
  - BREAKING: Changed signature of 
ProductSaveEvent to accept and provide ActiveRow $product instead of int $productId. remp/crm#2761
    
      - If you emit this event, replace 
$productId with $product as the first parameter of event constructor. 
      - If you listen to this event, replace use of 
$event->getProductId() with $event->getProduct(). 
    
   
  - BREAKING: Changed signature of 
OrderStatusChangeEvent to accept and provide ActiveRow $order instead of int $orderId. remp/crm#2761
    
      - If you emit this event, replace 
$orderId with $order as the first parameter of event constructor. 
      - If you listen to this event, replace use of 
$event->getOrderId() with $event->getOrder(). 
    
   
[RempMailerModule]
  - Fixed the order of actions by subscribe/unsubscribe newsletter. It generates outdated user cache in Redis. remp/crm#2721
 
[SalesFunnelModule]
  - Fixed possible validation error of subscription type and gateway after the funnel was submit if the subscription type and gateway didn’t exist. remp/crm#2740
 
[StripeModule]
  - Changed stripe-php version (7.22 -> 7.105.0) in order to support PHP 8.1. remp/crm#2764
 
  - Fixed deprecated usage of 
DecimalMoneyParser::parse() method. Solved by leveraging of moneyphp’s dedicated class for currencies which is now required to be used in it’s DecimalMoneyParser::parse() method. remp/crm#2764 
[SubscriptionsModule]
  - BREAKING: Method 
SubscriptionMetaRepository::findSubscriptionBy now returns null instead of false when no subscription is found. remp/crm#2761 
  - Added soft delete for subscription items. remp/crm#2541
 
  - Added 
Crm\SubscriptionsModule\Events\SubscriptionEventInterface interface for events able to provide subscription instance. remp/crm#2761
    
      - The interface replaces 
Crm\UsersModule\User\ISubscriptionGetter which was placed incorrectly and misused. 
    
   
[UsersModule]
  **BREAKING**: Removed Crm\UsersModule\User\ISubscriptionGetter interface in favor of Crm\SubscriptionsModule\Events\SubscriptionEventInterface`.
    
      - If you implement your own event handlers and expect use of 
ISubscriptionGetter, update the expectations to use SubscriptionEventInterface instead. 
    
   
  - DEPRECATED: Deprecated interface 
Crm\UsersModule\User\IUserGetter in favor of Crm\UsersModule\Events\UserEventInterface. remp/crm#2721 
  - Removed setting of deprecated 
n_version cookie. remp/remp#1202 
  - Added optional parameter 
segment for command user:reconstruct_user_data to allow filter users also by segment code. remp/crm#2721