From e7e201758e377fcea9859c52220ee2b4618e1674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kaan=20K=C3=B6se?= Date: Sat, 25 Apr 2026 22:48:15 +0200 Subject: [PATCH] Handle expired subscriptions. --- .../WinoAccountManagementPageViewModel.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Wino.Core.ViewModels/WinoAccountManagementPageViewModel.cs b/Wino.Core.ViewModels/WinoAccountManagementPageViewModel.cs index 80afdd15..2631579f 100644 --- a/Wino.Core.ViewModels/WinoAccountManagementPageViewModel.cs +++ b/Wino.Core.ViewModels/WinoAccountManagementPageViewModel.cs @@ -571,6 +571,19 @@ public partial class WinoAccountManagementPageViewModel : CoreBaseViewModel, } var aiStatus = aiStatusResponse.Result; + if (IsExpiredAiEntitlement(aiStatus.EntitlementStatus)) + { + await ExecuteUIThread(() => + { + _aiPackAddOn.IsPurchased = false; + _aiPackAddOn.HasUsageData = false; + _aiPackAddOn.ErrorText = string.Empty; + _aiPackAddOn.RenewalText = string.Empty; + _aiPackAddOn.UsageResetText = string.Empty; + }); + return; + } + if (aiStatus.MonthlyLimit is not int usageLimit || usageLimit <= 0 || aiStatus.Used is not int usageCount) { await ExecuteUIThread(() => @@ -613,4 +626,7 @@ public partial class WinoAccountManagementPageViewModel : CoreBaseViewModel, }); } } + + private static bool IsExpiredAiEntitlement(string? entitlementStatus) + => string.Equals(entitlementStatus, "Expired", StringComparison.OrdinalIgnoreCase); }