fe4e6acb53
apply_percentage_discount now delegates to PricingEngine.apply_discount (floor division). Removes ruble-rounding that caused inconsistency between first-purchase and renewal pricing. subscription_purchase_service._apply_percentage_discount now delegates to the shared apply_percentage_discount. All 60+ callers across handlers, keyboards, cabinet, miniapp, balance automatically use the unified algorithm without code changes.