瀏覽代碼

购买次数逻辑开发完毕

100Years 1 周之前
父節點
當前提交
6ca61b444c
共有 43 個文件被更改,包括 1366 次插入3908 次删除
  1. 48 0
      AIEmoji.xcodeproj/project.pbxproj
  2. 6 0
      AIEmoji/Assets.xcassets/Setting/Contents.json
  3. 22 0
      AIEmoji/Assets.xcassets/Setting/check.imageset/Contents.json
  4. 二進制
      AIEmoji/Assets.xcassets/Setting/check.imageset/check@2x.png
  5. 二進制
      AIEmoji/Assets.xcassets/Setting/check.imageset/check@3x.png
  6. 22 0
      AIEmoji/Assets.xcassets/Setting/hourglass.imageset/Contents.json
  7. 二進制
      AIEmoji/Assets.xcassets/Setting/hourglass.imageset/hourglass@2x.png
  8. 二進制
      AIEmoji/Assets.xcassets/Setting/hourglass.imageset/hourglass@3x.png
  9. 22 0
      AIEmoji/Assets.xcassets/Setting/language_System.imageset/Contents.json
  10. 二進制
      AIEmoji/Assets.xcassets/Setting/language_System.imageset/language_System@2x.png
  11. 二進制
      AIEmoji/Assets.xcassets/Setting/language_System.imageset/language_System@3x.png
  12. 22 0
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/Contents.json
  13. 二進制
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/purchaseVideoTimesBtnbg@2x.png
  14. 二進制
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/purchaseVideoTimesBtnbg@3x.png
  15. 22 0
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/Contents.json
  16. 二進制
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/purchaseVideoTimes_check@2x.png
  17. 二進制
      AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/purchaseVideoTimes_check@3x.png
  18. 22 0
      AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/Contents.json
  19. 二進制
      AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/sandGlass@2x.png
  20. 二進制
      AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/sandGlass@3x.png
  21. 22 0
      AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/Contents.json
  22. 二進制
      AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/stopWatch@2x.png
  23. 二進制
      AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/stopWatch@3x.png
  24. 22 0
      AIEmoji/Assets.xcassets/Setting/unCheck.imageset/Contents.json
  25. 二進制
      AIEmoji/Assets.xcassets/Setting/unCheck.imageset/unCheck@2x.png
  26. 二進制
      AIEmoji/Assets.xcassets/Setting/unCheck.imageset/unCheck@3x.png
  27. 73 0
      AIEmoji/Business/Data/TSDBTimesManager.swift
  28. 204 0
      AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/TSPurchaseVideoTimesVC.swift
  29. 21 0
      AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/View/TSPurchaseVideoTimesAlertView.swift
  30. 158 0
      AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/View/TSPurchaseVideoTimesView.swift
  31. 7 0
      AIEmoji/Business/TSSetingVC/SetingVC/TSSetingModel.swift
  32. 12 1
      AIEmoji/Business/TSSetingVC/SetingVC/TSSetingVC.swift
  33. 35 31
      AIEmoji/Business/TSSetingVC/SetingVC/TSSetingViewModel.swift
  34. 6 1
      AIEmoji/Business/TSSetingVC/SetingVC/View/SettingPurchaseTopView.swift
  35. 124 28
      AIEmoji/Business/TSSetingVC/SetingVC/View/TSSettingListView.swift
  36. 167 0
      AIEmoji/Business/TSSetingVC/TSChangeLanguageVC/TSChangeLanguageVC.swift
  37. 48 7
      AIEmoji/Common/Purchase/TSPurchaseManager+Enmu.swift
  38. 6 7
      AIEmoji/Common/Purchase/TSPurchaseManager+Free.swift
  39. 64 15
      AIEmoji/Common/Purchase/TSPurchaseManager+Limit.swift
  40. 38 3812
      AIEmoji/Common/Purchase/TSPurchaseManager+PurchasedNum.swift
  41. 25 5
      AIEmoji/Common/Purchase/TSPurchaseManager.swift
  42. 147 0
      AIEmoji/Common/Tool/LanguageManager.swift
  43. 1 1
      AIEmoji/Common/View/TSPhotoPickerManager/TSPhotoPickerManager.swift

+ 48 - 0
AIEmoji.xcodeproj/project.pbxproj

@@ -188,6 +188,12 @@
 		A87587162D81734300286A66 /* text_to_photo_style.json in Resources */ = {isa = PBXBuildFile; fileRef = A87587152D81733C00286A66 /* text_to_photo_style.json */; };
 		A87587182D81814500286A66 /* TSAIThinkingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A87587172D81812C00286A66 /* TSAIThinkingView.swift */; };
 		A880ECF02E41E61600222C47 /* TSPurchaseManager+PurchasedNum.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECEF2E41E61600222C47 /* TSPurchaseManager+PurchasedNum.swift */; };
+		A880ECF42E42F28600222C47 /* TSDBTimesManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECF32E42F28100222C47 /* TSDBTimesManager.swift */; };
+		A880ECF72E43434A00222C47 /* TSChangeLanguageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECF52E43434A00222C47 /* TSChangeLanguageVC.swift */; };
+		A880ECF92E43437C00222C47 /* LanguageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECF82E43437C00222C47 /* LanguageManager.swift */; };
+		A880ECFC2E43494400222C47 /* TSPurchaseVideoTimesVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECFB2E43494300222C47 /* TSPurchaseVideoTimesVC.swift */; };
+		A880ECFE2E434A1900222C47 /* TSPurchaseVideoTimesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECFD2E434A1700222C47 /* TSPurchaseVideoTimesView.swift */; };
+		A880ED002E434AB100222C47 /* TSPurchaseVideoTimesAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A880ECFF2E434AA800222C47 /* TSPurchaseVideoTimesAlertView.swift */; };
 		A88508882DBCD944000FBCEC /* MemoryLeakChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A88508872DBCD940000FBCEC /* MemoryLeakChecker.swift */; };
 		A885088D2DBCE7BE000FBCEC /* TSPTPHistoryVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A885088C2DBCE7BC000FBCEC /* TSPTPHistoryVC.swift */; };
 		A88508B62DBF142B000FBCEC /* TSGennertatorSelectStyleVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A88508B52DBF142A000FBCEC /* TSGennertatorSelectStyleVC.swift */; };
@@ -583,6 +589,12 @@
 		A87587152D81733C00286A66 /* text_to_photo_style.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = text_to_photo_style.json; sourceTree = "<group>"; };
 		A87587172D81812C00286A66 /* TSAIThinkingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSAIThinkingView.swift; sourceTree = "<group>"; };
 		A880ECEF2E41E61600222C47 /* TSPurchaseManager+PurchasedNum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSPurchaseManager+PurchasedNum.swift"; sourceTree = "<group>"; };
+		A880ECF32E42F28100222C47 /* TSDBTimesManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSDBTimesManager.swift; sourceTree = "<group>"; };
+		A880ECF52E43434A00222C47 /* TSChangeLanguageVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSChangeLanguageVC.swift; sourceTree = "<group>"; };
+		A880ECF82E43437C00222C47 /* LanguageManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageManager.swift; sourceTree = "<group>"; };
+		A880ECFB2E43494300222C47 /* TSPurchaseVideoTimesVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPurchaseVideoTimesVC.swift; sourceTree = "<group>"; };
+		A880ECFD2E434A1700222C47 /* TSPurchaseVideoTimesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPurchaseVideoTimesView.swift; sourceTree = "<group>"; };
+		A880ECFF2E434AA800222C47 /* TSPurchaseVideoTimesAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPurchaseVideoTimesAlertView.swift; sourceTree = "<group>"; };
 		A88508872DBCD940000FBCEC /* MemoryLeakChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MemoryLeakChecker.swift; sourceTree = "<group>"; };
 		A885088C2DBCE7BC000FBCEC /* TSPTPHistoryVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSPTPHistoryVC.swift; sourceTree = "<group>"; };
 		A88508B52DBF142A000FBCEC /* TSGennertatorSelectStyleVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSGennertatorSelectStyleVC.swift; sourceTree = "<group>"; };
@@ -1018,6 +1030,7 @@
 		A80E73DD2D533E5800C64288 /* TSPurchaseMembershipVC */ = {
 			isa = PBXGroup;
 			children = (
+				A880ECFA2E43492F00222C47 /* TSPurchaseVideoTimesVC */,
 				A8EB38442E14080D002F90E9 /* TSPurchasePromotionalVC */,
 				A8EB383F2E13BB07002F90E9 /* View */,
 				A80E73D82D533E5800C64288 /* TSPurchaseVC.swift */,
@@ -1744,6 +1757,7 @@
 		A87587112D81702700286A66 /* Data */ = {
 			isa = PBXGroup;
 			children = (
+				A880ECF32E42F28100222C47 /* TSDBTimesManager.swift */,
 				A8BE26E72DBC6A9700A1DD18 /* TSDBHistoryManager.swift */,
 				A82D609A2DB9D83500596190 /* TSBaseHistoryManager.swift */,
 				A87587102D81702700286A66 /* TSUserDefaultData.swift */,
@@ -1759,6 +1773,32 @@
 			path = TSChatMessageUIModel;
 			sourceTree = "<group>";
 		};
+		A880ECF62E43434A00222C47 /* TSChangeLanguageVC */ = {
+			isa = PBXGroup;
+			children = (
+				A880ECF52E43434A00222C47 /* TSChangeLanguageVC.swift */,
+			);
+			path = TSChangeLanguageVC;
+			sourceTree = "<group>";
+		};
+		A880ECFA2E43492F00222C47 /* TSPurchaseVideoTimesVC */ = {
+			isa = PBXGroup;
+			children = (
+				A880ED032E434B3700222C47 /* View */,
+				A880ECFB2E43494300222C47 /* TSPurchaseVideoTimesVC.swift */,
+			);
+			path = TSPurchaseVideoTimesVC;
+			sourceTree = "<group>";
+		};
+		A880ED032E434B3700222C47 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				A880ECFF2E434AA800222C47 /* TSPurchaseVideoTimesAlertView.swift */,
+				A880ECFD2E434A1700222C47 /* TSPurchaseVideoTimesView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		A885088B2DBCE7B8000FBCEC /* TSPTPHistoryVC */ = {
 			isa = PBXGroup;
 			children = (
@@ -2218,6 +2258,7 @@
 		A8F774CE2D38EA8C00AA6E93 /* Tool */ = {
 			isa = PBXGroup;
 			children = (
+				A880ECF82E43437C00222C47 /* LanguageManager.swift */,
 				A8EB1A632E30EA22001F58D7 /* KeychainManager.swift */,
 				A8708A482E0C091800601686 /* TSAppUpdateManager.swift */,
 				A88508872DBCD940000FBCEC /* MemoryLeakChecker.swift */,
@@ -2307,6 +2348,7 @@
 		A8F775152D38EB5D00AA6E93 /* TSSetingVC */ = {
 			isa = PBXGroup;
 			children = (
+				A880ECF62E43434A00222C47 /* TSChangeLanguageVC */,
 				A8F4134D2DA75E92001E715A /* TSAboutDataVC.swift */,
 				A8F775482D3935D600AA6E93 /* TSBusinessWebVC */,
 				A8F775412D39344A00AA6E93 /* SetingVC */,
@@ -2832,6 +2874,7 @@
 				A80E72792D42285500C64288 /* TSBootPageVC.swift in Sources */,
 				60EE9A852E38A7C200565900 /* TSDiyVideoPromptElementView.swift in Sources */,
 				A80E726A2D409E5400C64288 /* TSDiyTLYFlowersView.swift in Sources */,
+				A880ECFC2E43494400222C47 /* TSPurchaseVideoTimesVC.swift in Sources */,
 				A8F7764E2D3E00A800AA6E93 /* TSEmojisColViewModel.swift in Sources */,
 				A89EA6C82D6359ED000EB181 /* TSChatViewController+VipView.swift in Sources */,
 				60C805B32E3B1CCB0051164F /* TSDiyStyleElementView.swift in Sources */,
@@ -2882,6 +2925,7 @@
 				A875870F2D81689A00286A66 /* TSPTPEnterView.swift in Sources */,
 				A8708A382E0B8ABA00601686 /* TSAIGenerateVC.swift in Sources */,
 				A80EDD522D6C3F82003CD332 /* MarkdownCode+AppKit.swift in Sources */,
+				A880ECFE2E434A1900222C47 /* TSPurchaseVideoTimesView.swift in Sources */,
 				A82D60832DB87D1A00596190 /* TSAIExpandChangeView.swift in Sources */,
 				A8990EE52DEE8C2300DD55FE /* TSAISmallUploadView.swift in Sources */,
 				A80EDD532D6C3F82003CD332 /* MarkdownHeader.swift in Sources */,
@@ -2968,6 +3012,7 @@
 				A80EDDE42D6EB8FA003CD332 /* TSPTPSelectStyleCell.swift in Sources */,
 				A8F775172D38EB7400AA6E93 /* TSTabBarController.swift in Sources */,
 				A8708A3C2E0B933F00601686 /* TSAIGenerateBaseVC.swift in Sources */,
+				A880ECF42E42F28600222C47 /* TSDBTimesManager.swift in Sources */,
 				A8708A182E095A2300601686 /* TSDiscoverBaseCell.swift in Sources */,
 				A80E73E12D533E5800C64288 /* TSPurchaseVC.swift in Sources */,
 				A8708A0C2E08F5C600601686 /* TSGennerateCellView.swift in Sources */,
@@ -2990,6 +3035,7 @@
 				A8708A2F2E0AA03B00601686 /* TSUploadImageView.swift in Sources */,
 				A80E72222D3F3A9200C64288 /* DiyStickerElement.swift in Sources */,
 				A85E47C32D6964A50018D62D /* TSMSGAIDefaultHeaderView.swift in Sources */,
+				A880ECF92E43437C00222C47 /* LanguageManager.swift in Sources */,
 				A80EDD032D6C282B003CD332 /* TSMarkDownTool.swift in Sources */,
 				A8EB383C2E13AE6F002F90E9 /* TSPurchasePromotionalVC+View.swift in Sources */,
 				A8EE843B2E33190900CA04F0 /* TSPurchaseManager+Enmu.swift in Sources */,
@@ -3017,6 +3063,7 @@
 				A82542D42E279C0200F54FE5 /* TSDiscoverViewModel.swift in Sources */,
 				A85E47962D672ADA0018D62D /* TSTextPicGennerateVC.swift in Sources */,
 				A82D60A02DBA1B0500596190 /* TSImageGenerateView.swift in Sources */,
+				A880ED002E434AB100222C47 /* TSPurchaseVideoTimesAlertView.swift in Sources */,
 				A80E72562D3F98D700C64288 /* TSDiyKeyboardViewVC.swift in Sources */,
 				A8F775032D38EA8C00AA6E93 /* GlobalImports.swift in Sources */,
 				A89EA67A2D59D25F000EB181 /* TSAIChatVM.swift in Sources */,
@@ -3093,6 +3140,7 @@
 				A8D638482DB21FAD00A96C0E /* TSDownloadManager.swift in Sources */,
 				A8FB02B72D3E3A3D0031A396 /* TSEmojisChildViewModel.swift in Sources */,
 				A8EB1A642E30EA24001F58D7 /* KeychainManager.swift in Sources */,
+				A880ECF72E43434A00222C47 /* TSChangeLanguageVC.swift in Sources */,
 				A8708A1D2E095A8100601686 /* TSDiscoverStyleMoreCell.swift in Sources */,
 				A8F7754B2D39376800AA6E93 /* TSSettingListView.swift in Sources */,
 				A8F7748B2D38E8B700AA6E93 /* AppDelegate.swift in Sources */,

+ 6 - 0
AIEmoji/Assets.xcassets/Setting/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 22 - 0
AIEmoji/Assets.xcassets/Setting/check.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "check@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "check@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/check.imageset/check@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/check.imageset/check@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/hourglass.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "hourglass@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "hourglass@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/hourglass.imageset/hourglass@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/hourglass.imageset/hourglass@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/language_System.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "language_System@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "language_System@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/language_System.imageset/language_System@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/language_System.imageset/language_System@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "purchaseVideoTimesBtnbg@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "purchaseVideoTimesBtnbg@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/purchaseVideoTimesBtnbg@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimesBtnbg.imageset/purchaseVideoTimesBtnbg@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "purchaseVideoTimes_check@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "purchaseVideoTimes_check@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/purchaseVideoTimes_check@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/purchaseVideoTimes_check.imageset/purchaseVideoTimes_check@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "sandGlass@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "sandGlass@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/sandGlass@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/sandGlass.imageset/sandGlass@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "stopWatch@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "stopWatch@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/stopWatch@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/stopWatch.imageset/stopWatch@3x.png


+ 22 - 0
AIEmoji/Assets.xcassets/Setting/unCheck.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "unCheck@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "unCheck@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
AIEmoji/Assets.xcassets/Setting/unCheck.imageset/unCheck@2x.png


二進制
AIEmoji/Assets.xcassets/Setting/unCheck.imageset/unCheck@3x.png


+ 73 - 0
AIEmoji/Business/Data/TSDBTimesManager.swift

@@ -0,0 +1,73 @@
+//
+//  Untitled.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/8/5.
+//
+
+
+import RealmSwift
+//MARK: TSDBAIChatList - 用于存储会话及消息列表
+class TSDBTimesManager: Object {
+    @Persisted(primaryKey: true) var primaryKey: String = ""
+    
+    @Persisted var times: Int = 0 //可用次数
+    @Persisted var type: Int = 0 //0视频 1xx 2yy
+    @Persisted var jsonString = ""
+
+    lazy var jsonDict: [String: Any] = {
+        guard let data = jsonString.data(using: .utf8),
+              let dict = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
+            return [:]
+        }
+        return dict
+    }()
+    
+    func addNewRecords(key:String,dict:[String:Any],num:Int){
+        if jsonDict[key] == nil {
+            jsonDict[key] = dict
+            if let data = try? JSONSerialization.data(withJSONObject: jsonDict),
+               let str = String(data: data, encoding: .utf8) {
+                TSRMShared.writeThread {
+                    jsonString = str
+                    times = times + num
+                    dePrint("发放视频可用次数的key=\(key)")
+                    dePrint("视频可用次数TSDBTimesManager.times=\(times)")
+                }
+            }
+        }
+    }
+    
+    
+    func reduceTimes(num:Int = 1){
+        TSRMShared.writeThread {
+            times = times - num
+            dePrint("视频可用次数TSDBTimesManager.times=\(times)")
+        }
+    }
+    
+    
+    func addTimes(num:Int = 1){
+        TSRMShared.writeThread {
+            times = times + num
+            dePrint("视频可用次数TSDBTimesManager.times=\(times)")
+        }
+    }
+}
+
+extension TSDBTimesManager{
+    static var purchaseVideo: TSDBTimesManager = {
+        let primaryKey = "TSDBTimesManager_videoPurchaseNum"
+        let historys = TSRMShared.realm.objects(TSDBTimesManager.self).filter(NSPredicate(format: "primaryKey == %@",primaryKey))
+        if let history = historys.first {
+            return history
+        }else {
+            let dbHistory = TSDBTimesManager()
+            dbHistory.primaryKey = primaryKey
+            TSRMShared.update(dbHistory)
+            return dbHistory
+        }
+    }()
+}
+
+

+ 204 - 0
AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/TSPurchaseVideoTimesVC.swift

@@ -0,0 +1,204 @@
+//
+//  TSPurchaseVideoTimesVC.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/8/6.
+//
+
+import Combine
+import SwiftUI
+import SwiftUIX
+
+class TSPurchaseVideoTimesVM : ObservableObject{
+    
+    @Published var selectedType: PremiumPeriod = .purchase(.videoNum2)
+    
+    /// 订阅publisher
+    let buyPublisher  = PassthroughSubject<Bool,Never>()
+}
+
+
+class TSPurchaseVideoTimesVC: TSBaseVC {
+
+    var isShowAlertModel:Bool//是否以弹窗的样式展现
+    init(isShowAlertModel: Bool) {
+        self.isShowAlertModel = isShowAlertModel
+        super.init()
+    }
+    
+    @MainActor required init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var cancellabel: [AnyCancellable] = []
+    var viewModel: TSPurchaseVideoTimesVM = .init()
+    var buyPeriod:PremiumPeriod = .year
+    var isHandlePurchaseStateChanged = true //是否处理购买状态变化
+    
+    
+    lazy var fullVC: UIHostingController<TSPurchaseVideoTimesView> = {
+        let vc = UIHostingController(rootView: TSPurchaseVideoTimesView(viewModel: viewModel))
+        vc.view.backgroundColor = .clear
+        return vc
+    }()
+    
+    lazy var alertVC: UIHostingController<TSPurchaseVideoTimesView> = {
+        let vc = UIHostingController(rootView: TSPurchaseVideoTimesView(viewModel: viewModel))
+        vc.view.backgroundColor = .clear
+        return vc
+    }()
+    
+    
+    
+    override func createView() {
+        addNormalNavBarView()
+        setPageTitle("")
+        if isShowAlertModel {
+            setUpAlerView()
+        }else{
+            setUpFullView()
+        }
+    }
+    
+    override func dealThings() {
+        addNotifaction()
+        onPurchaseStateChanged()
+        NotificationCenter.default.addObserver(forName: .kPurchasePrepared, object: nil, queue: OperationQueue.main) { [weak self] _ in
+            guard let self = self else { return }
+            viewModel.selectedType = viewModel.selectedType
+        }
+    }
+    
+    func addNotifaction() {
+        viewModel.buyPublisher.receive(on: DispatchQueue.main).sink { [weak self] _ in
+            guard let self = self else {
+                return
+            }
+            isHandlePurchaseStateChanged = true
+            PurchaseManager.default.pay(for: self.viewModel.selectedType)
+        }.store(in: &cancellabel)
+    }
+    
+    func onPurchaseStateChanged(){
+        PurchaseManager.default.onPurchaseStateChanged = { [weak self] manager,state,object in
+            guard let self = self else { return }
+        
+            if isHandlePurchaseStateChanged == false {
+                debugPrint("purchaseManager.onPurchaseStateChanged 不处理")
+                return
+            }
+            
+            DispatchQueue.main.async {
+                switch state {
+                case .none:
+                    break
+                case .loading:
+                    TSToastShared.showLoading(text: "Getting price".localized,containerView: self.view)
+                case .loadSuccess:
+                    TSToastShared.hideLoading()
+                case .loadFail:
+                    TSToastShared.hideLoading()
+                    let message = "Failed to get the price, will automatically retry in 5 seconds".localized
+                    TSToastShared.showToast(text: message)
+                    DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
+                        PurchaseManager.default.requestProducts()
+                    }
+                case .paying:
+                    TSToastShared.showLoading(text: "Purchasing now".localized,containerView: self.view)
+                case .paySuccess:
+                    TSToastShared.hideLoading()
+                 
+                    var loadingText = "Finish".localized
+                    if manager.isVip {
+                        loadingText = manager.vipType == .year ? "Congratulations on being VIP of the Year!".localized : "Congratulation you have become VIP".localized
+                    }
+                    
+                    TSToastShared.showToast(text:loadingText)
+                    if manager.isVip {
+                        DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
+                            self.closePage()
+                        }
+                    }
+
+                case .payFail:
+                    TSToastShared.hideLoading()
+                    if let str = object as? String {
+                        TSToastShared.showToast(text: str)
+                    }
+                    
+                case .restoreing:
+                    TSToastShared.showLoading(text: "Restoring now".localized,containerView: self.view)
+                case .restoreSuccess:
+                    TSToastShared.hideLoading()
+//                    let loadingText = manager.isVip ? "Congratulation you have become VIP".localized : "Couldn't Restore Subscription".localized
+                    let loadingText = manager.vipType == .year ? "Congratulations on being VIP of the Year!".localized : "Congratulation you have become VIP".localized
+                    debugPrint(loadingText)
+                    TSToastShared.showToast(text:loadingText)
+                    if manager.isVip {
+                        DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
+                            self.closePage()
+                        }
+                    }
+
+                case .restoreFail:
+                    TSToastShared.hideLoading()
+                    let loadingText = (object as? String) ?? "Failed to restore subscribe, please try again".localized
+                    debugPrint(loadingText)
+                    TSToastShared.showToast(text: loadingText)
+                case .verifying:
+                    #if DEBUG
+                    TSToastShared.showLoading(text: "Verifying receipt...".localized,containerView: self.view)
+                    #endif
+                case .verifySuccess:
+                    break
+                case .verifyFail:
+                #if DEBUG
+                    TSToastShared.hideLoading()
+                    let message = (object as? String) ?? "Failed to validate receipt".localized
+                    TSToastShared.showToast(text:message)
+
+                #endif
+                }
+            }
+            debugPrint("PurchaseManager onPurchaseStateChanged=\(String(describing: state))")
+        }
+    }
+    
+    @objc func closePage(){
+        TSToastShared.hideLoading()
+        self.dismiss(animated: true)
+        NotificationCenter.default.post(name: .kCloseTSPurchaseVC, object: nil)
+    }
+}
+
+extension TSPurchaseVideoTimesVC {
+    
+    func setUpFullView(){
+        contentView.snp.updateConstraints { make in
+            make.top.equalTo(0)
+        }
+      
+        let bgColorView = UIView(frame: UIScreen.main.bounds)
+        bgColorView.addGradientBg(colors: ["#13052C".uiCGColor,"#160B2C".uiCGColor],startPoint: CGPoint(x: 0.5, y: 0),endPoint: CGPoint(x: 0.5, y: 1.0))
+        contentView.addSubview(bgColorView)
+        
+        
+        contentView.addSubview(fullVC.view)
+        fullVC.view.snp.makeConstraints { make in
+            make.leading.trailing.bottom.top.equalToSuperview()
+        }
+    }
+    
+}
+extension TSPurchaseVideoTimesVC {
+    
+    func setUpAlerView(){
+
+        self.view.backgroundColor = .black.withAlphaComponent(0.5)
+        
+        contentView.addSubview(alertVC.view)
+        alertVC.view.snp.makeConstraints { make in
+            make.leading.trailing.bottom.top.equalToSuperview()
+        }
+    }
+}

+ 21 - 0
AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/View/TSPurchaseVideoTimesAlertView.swift

@@ -0,0 +1,21 @@
+//
+//  TSPurchaseVideoTimesAlertView.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/8/6.
+//
+
+import SwiftUI
+import SwiftUIX
+
+struct TSPurchaseVideoTimesAlertView :View {
+    @ObservedObject var viewModel: PurchaseViewModel
+    
+    var body: some View {
+        
+        Text("Unlock All Features".localized)
+            .font(.font(size: 16,weight: .medium))
+            .foregroundColor(.hex("#111111"))
+    }
+    
+}

+ 158 - 0
AIEmoji/Business/TSPurchaseMembershipVC/TSPurchaseVideoTimesVC/View/TSPurchaseVideoTimesView.swift

@@ -0,0 +1,158 @@
+//
+//  TSPurchaseVideoTimesView.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/8/6.
+//
+
+
+import SwiftUI
+import SwiftUIX
+
+struct TSPurchaseVideoTimesView :View {
+    @ObservedObject var viewModel: TSPurchaseVideoTimesVM
+ 
+    var body: some View {
+        VStack {
+            
+            Spacer()
+            
+            ZStack(alignment: .topTrailing) {
+                VStack {
+                    Spacer().frame(height: 40)
+                    
+                    Text("Video Effect Credits Package".localized)
+                        .font(.font(name:.PoppinsBoldItalic,size: 22))
+                        .gradientForeground(colors: [Color.hex("#8C5FFF"),Color.hex("#F680F8")], startPoint:.leading, endPoint:.trailing)
+                        .padding(EdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10))
+                    
+                    
+                    VStack(alignment: .leading, spacing: 8, content: {
+                        TSPurchaseVideoTextLineView(image: .purchaseVideoTimesCheck, text: "Only VIP can purchase video effect credits".localized)
+                        TSPurchaseVideoTextLineView(image: .purchaseVideoTimesCheck, text: "Credits can be applied to all video generations".localized)
+                        TSPurchaseVideoTextLineView(image: .purchaseVideoTimesCheck, text: "Credits never expire and can be purchased repeatedly".localized)
+                        TSPurchaseVideoTextLineView(image: .purchaseVideoTimesCheck, text: "All unused credits will be lost if the app is uninstalled".localized)
+                        
+                    })
+                    .padding(EdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10))
+                    
+                    Spacer().frame(height: 43)
+                    
+                    VStack(alignment: .leading, spacing: 20, content: {
+                        TSPurchaseVideoTimesCellView(type: .purchase(.videoNum1), selectedType: $viewModel.selectedType)
+                            .onTapGesture {
+                                viewModel.selectedType = .purchase(.videoNum1)
+                            }
+                        TSPurchaseVideoTimesCellView(type: .purchase(.videoNum2), selectedType: $viewModel.selectedType)
+                            .onTapGesture {
+                                viewModel.selectedType = .purchase(.videoNum2)
+                            }
+                        TSPurchaseVideoTimesCellView(type: .purchase(.videoNum3), selectedType: $viewModel.selectedType)
+                            .onTapGesture {
+                                viewModel.selectedType = .purchase(.videoNum3)
+                            }
+                    }).multilineTextAlignment(.center).font(.font(size: 16,weight:.regular)).foregroundColor(.white)
+                    
+                    Spacer().frame(height: 44)
+                    
+                    
+                    Button {
+                        viewModel.buyPublisher.send(true)
+                    } label: {
+                        ZStack {
+                            Image(.purchaseVideoTimesBtnbg)
+                            Text("Purchase".localized)
+                                .font(.font(size: 16,weight: .medium))
+                                .foregroundColor(.white)
+                        }.frame(maxWidth: .infinity ,minHeight: 48.0,maxHeight: 48.0)
+                    }
+                    
+                    Spacer().frame(height: 24 + k_Height_safeAreaInsetsBottom())
+                }
+                .padding(.horizontal,16)
+                .background(
+                    Color.hex("#261840").cornerRadius([.topLeading,.topTrailing], 20)
+                )
+
+                Image(.sandGlass)
+                .frame(width: 158, height: 158)
+                .offset(x:0,y:-107)
+            }
+        }
+    }
+}
+                       
+
+struct TSPurchaseVideoTextLineView: View {
+   var image:ImageResource
+   var text:String
+   var body: some View {
+       HStack(alignment: .top, spacing: 4) {
+           Image(image).resizable().frame(width: 24, height: 24)
+           Text(text).lineLimit(2).multilineTextAlignment(.leading).font(.font(size: 16,weight:.regular)).foregroundColor(.white)
+       }.frame(height: 38)
+   }
+}
+struct TSPurchaseVideoTimes1View :View {
+
+    var body: some View {
+        VStack {
+            Spacer()
+            ZStack{
+                VStack {
+                    Spacer().frame(height: 40)
+                    Text("Video Effect Credits Package".localized)
+                     Spacer().frame(height: 40)
+                }
+                .padding(EdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16))
+                 .background(
+                    Color.white.cornerRadius([.topLeading,.topTrailing], 20)
+                )
+
+                Color.red.frame(width: 100, height: 100)
+            }
+        }
+    }
+}
+
+
+struct TSPurchaseVideoTimesCellView: View {
+    var type: PremiumPeriod
+    @Binding var selectedType: PremiumPeriod
+
+    var body: some View {
+        ZStack {
+            Color.white.opacity(0.1)
+            
+            HStack(spacing:8) {
+                Image(.stopWatch).resizable().frame(width: 28, height: 28)
+                Text("\(type.purchaseNum ?? 0) " + "Times".localized)
+                Spacer()
+                Text(PurchaseManager.default.price(for: type) ?? "--")
+            }
+            .font(.font(size: 18,weight: .medium)).foregroundColor(UIColor.white.color)
+            .padding(EdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16))
+        }
+        .frame(height: 60) // 设置高度
+        .cornerRadius(16.0) // 圆角
+        .overlay(
+            RoundedRectangle(cornerRadius: 16)
+                .stroke(Color.hex("#9257FF"), lineWidth: type == selectedType ? 1.5 : 0) // 边框
+        )
+    }
+}
+
+
+struct TSPurchaseVideoTimesRecView: View {
+    var save:String
+    var body: some View {
+    
+        HStack(spacing: 0) {
+            Text(String(format: "%d%% Picked".localized, 90)).lineLimit(2).multilineTextAlignment(.leading).font(.font(size: 11,weight:.medium)).foregroundColor(Color.hex("#111111"))
+        }
+        .padding(EdgeInsets(top: 0, leading: 6, bottom: 0, trailing: 6))
+        .background(Color.hex("#FECB34"))
+        .frame(height: 18) // 设置高度
+        .cornerRadius([.topLeading, .topTrailing, .bottomLeading, .bottomTrailing], 16.0)
+    }
+}

+ 7 - 0
AIEmoji/Business/TSSetingVC/SetingVC/TSSetingModel.swift

@@ -27,8 +27,15 @@ enum SettingType: String, CaseIterable {
     case privacy = "Privacy Policy"
     case agreement = "Terms of Service"
 //    case about = "About us"
+    
+
+    case videoTimes = "Video Effect Times"
+    case changeLanguage = "Change Language"
+    case videoPackage = "Video Effect Times Package"
 #if DEBUG
     case deleteAllData = "删除钥匙串和次数限制"
     case lookAllData = "查看目前的次数"
+    case videoTimesAdd = "视频可次数+1"
+    case videoTimesReduce = "视频可次数-1"
 #endif
 }

+ 12 - 1
AIEmoji/Business/TSSetingVC/SetingVC/TSSetingVC.swift

@@ -80,12 +80,21 @@ class TSSetingVC: TSBaseVC {
 //                break
             case .rateus:
                 viewModel.rateAction()
+            case .videoTimes:
+                dePrint("点击了视频次数")
+            case .changeLanguage:
+                viewModel.changeLanguageVC(parent: self)
+            case .videoPackage:
+                viewModel.purchaseVideoTimesVC(parent: self)
 #if DEBUG
             case .deleteAllData:
                 viewModel.deleteAllData(parent: self)
-                
             case .lookAllData:
                 viewModel.lookAllData(parent: self)
+            case .videoTimesAdd:
+                viewModel.videoTimesAdd(num: 1)
+            case .videoTimesReduce:
+                viewModel.videoTimesReduce(num: -1)
 #endif
             }
             
@@ -94,11 +103,13 @@ class TSSetingVC: TSBaseVC {
         refreshView()
         NotificationCenter.default.addObserver(self, selector: #selector(vipInfoChanged), name: .kPurchaseDidChanged, object: nil)
         NotificationCenter.default.addObserver(self, selector: #selector(refreshView), name: .kRefreshSettingView, object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(vipInfoChanged), name: .kPurchaseVideoNumChanged, object: nil)
     }
     
     @objc func vipInfoChanged() {
         kExecuteOnMainThread {
             self.viewModel.vipType = PurchaseManager.default.vipType
+            self.viewModel.videoTimes = kPurchaseDefault.videoAvailableNum
         }
     }
     

+ 35 - 31
AIEmoji/Business/TSSetingVC/SetingVC/TSSetingViewModel.swift

@@ -12,7 +12,11 @@ class TSSetingViewModel: ObservableObject {
     @Published var settingTypes: [SettingType] = SettingType.allCases
     @Published var vipType: PremiumPeriod = PurchaseManager.default.vipType
     @Published var isHaveNewVersion: Bool = false
-
+    @Published var videoTimes: Int = 0
+    
+    init() {
+        videoTimes = kPurchaseDefault.videoAvailableNum
+    }
 
     // todo.kailen-privacy
     func showPrivacy(parent: UIViewController) {
@@ -79,23 +83,6 @@ class TSSetingViewModel: ObservableObject {
             TSToastShared.hideLoading()
             kSaveSuccesswShared.show(atView: parent.view,text: "Removed Successfully".localized,showViewBtn: false)
         }
-    
-#if DEBUG
-//        KeychainManager.clearAll()
-//        UIAlertView(title: "", message: "清除了钥匙串", delegate: nil, cancelButtonTitle: "OK").show()
-//        kSaveSuccesswShared.show(atView: parent.view)
-//        TSAbnormalPopUpAlertVC.showRobotWarning()
-//        guard let window = WindowHelper.getKeyWindow() else {
-//            debugPrint("getKeyWindow nil")
-//            return
-//        }
-//        let topY = k_Nav_Height+10
-//        debugPrint("topY=\(topY)")
-//        kSaveSuccesswShared.show(atView: window,text: "Successfully generated".localized,deadline: 5.0,bottom: kSaveSuccesswShared.getBottom(topY: topY)) {
-//        }
-//    
-//        TSRMShared.textPtpDBHistory()
-#endif
     }
     
     func AboutData(parent: UIViewController) {
@@ -105,7 +92,16 @@ class TSSetingViewModel: ObservableObject {
     }
     
     
-
+    func changeLanguageVC(parent: UIViewController) {
+        kPushVC(target: parent, modelVC: TSChangeLanguageVC())
+    }
+    
+    func purchaseVideoTimesVC(parent: UIViewController) {
+        kPushVC(target: parent, modelVC: TSPurchaseVideoTimesVC(isShowAlertModel: false))
+    }
+    
+    
+#if DEBUG
     
     // todo.kailen-privacy
     func deleteAllData(parent: UIViewController) {
@@ -115,10 +111,8 @@ class TSSetingViewModel: ObservableObject {
         UserDefaults.standard.set(nil, forKey: kFreeNumKey)
         UserDefaults.standard.synchronize()
         TSToastShared.showToast(text: "清除了钥匙串")
-        
     }
     
-    
     func lookAllData(parent: UIViewController) {
         var string = ""
         if var saveDict = UserDefaults.standard.dictionary(forKey: kFreeNumKey) as? [String: Int]{
@@ -138,19 +132,29 @@ class TSSetingViewModel: ObservableObject {
         dePrint("所有的会员次数=\(string)")
     }
     
-}
-
-extension UIImage {
-    // 压缩图片到指定尺寸
-    func compressImageSize(to size: CGSize) -> UIImage {
-        let targetSize = size
-        if self.size.width > targetSize.width || self.size.height > targetSize.height {
-            return kf.resize(to: targetSize)
-        }
-        return self
+    func videoTimesAdd(num:Int) {
+        TSDBTimesManager.purchaseVideo.addTimes()
+        NotificationCenter.default.post(name: .kPurchaseVideoNumChanged, object: nil)
+    }
+    
+    func videoTimesReduce(num:Int) {
+        TSDBTimesManager.purchaseVideo.reduceTimes()
+        NotificationCenter.default.post(name: .kPurchaseVideoNumChanged, object: nil)
     }
+    
+#endif
 }
 
+
+
+
+
+
+
+
+
+
+
 //首次点击保存弹出系统评分弹窗
 func kFirstSaveRateAction(){
     if UserDefaults.standard.string(forKey: "iskFirstSaveRateAction") == nil {

+ 6 - 1
AIEmoji/Business/TSSetingVC/SetingVC/View/SettingPurchaseTopView.swift

@@ -20,7 +20,12 @@ struct SettingPurchaseTopView: View {
             if vipType == .year {
                 VStack(alignment: .center) {
                     customGradientText(text: "\(kAppName) pro", font: .font(name: .PoppinsBoldItalic,size: 36))
-                    Spacer().frame(height: 20)//16
+                    Spacer().frame(height: 15)
+                    Text(String(format: "Remaining Times: %d".localized, kPurchaseDefault.videoAvailableNum))
+                        .foregroundColor(UIColor.themeColor.color)
+                        .font(.font(size: 16,weight: .regular))
+                        .frame(height: 16)
+                    Spacer().frame(height: 20)
                     Text(timeString)
                         .foregroundColor(.white.opacity(0.6))
                         .font(.font(size: 14,weight: .medium))

+ 124 - 28
AIEmoji/Business/TSSetingVC/SetingVC/View/TSSettingListView.swift

@@ -11,23 +11,51 @@ struct TSSettingListView: View {
     @ObservedObject var viewModel: TSSetingViewModel
     var publisher: ListEventPublisher
     var body: some View {
+        let spaceHeight = 16.0
         CocoaScrollView {
             VStack(spacing: 0) {
-                Spacer().frame(height: 16)
+                Spacer().frame(height: spaceHeight)
         
                 SettingPurchaseTopView(eventPublisher: publisher, vipType: $viewModel.vipType)
                     .onTapGesture {
                         publisher.enterPurchasePublisher.send(true)
                     }
                 
-                ForEach(viewModel.settingTypes, id:\.self) { type in
-                    Spacer().frame(height: 16)
-                    SettingListItemView(type: type,isHaveNewVersion: $viewModel.isHaveNewVersion)
-                    .onTapGesture {
-                        publisher.settingPublisher.send(type)
-                    }
+                if kPurchaseDefault.isVip {
+                    Spacer().frame(height: spaceHeight)
+                    SettingListVideoItemView(type: .videoPackage, publisher: publisher)
                 }
+            
+                Spacer().frame(height: spaceHeight)
+                VStack(spacing:0) {
+                    SettingListItemView(type: .videoTimes, publisher: publisher, rightView: SettingListNumItemView(num: $viewModel.videoTimes), rightArrow: false)
+                    SettingListItemView(type: .changeLanguage, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .update, publisher: publisher, rightView: SettingListAppUpdateItemView(isHaveNewVersion: $viewModel.isHaveNewVersion), rightArrow: true)
+                }.cornerRadius(16)
+                
+                Spacer().frame(height: spaceHeight)
+                VStack(spacing:0) {
+                    SettingListItemView(type: .rateus, publisher: publisher, rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .shareus, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                }.cornerRadius(16)
                 
+                Spacer().frame(height: spaceHeight)
+                VStack(spacing:0) {
+                    SettingListItemView(type: .AboutData, publisher: publisher, rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .removeCloudData, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .privacy, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .agreement, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                }.cornerRadius(16)
+                
+#if DEBUG
+                Spacer().frame(height: spaceHeight)
+                VStack(spacing:0) {
+                    SettingListItemView(type: .deleteAllData, publisher: publisher, rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .lookAllData, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .videoTimesAdd, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                    SettingListItemView(type: .videoTimesReduce, publisher: publisher,rightView: EmptyView(), rightArrow: true)
+                }.cornerRadius(16)
+#endif
                 Spacer()
 
             }.padding(.horizontal)
@@ -38,38 +66,106 @@ struct TSSettingListView: View {
     }
 }
 
-
-
-
-struct SettingListItemView: View {
+struct SettingListItemView<RightView:View>: View {
     var type : SettingType
-    @Binding var isHaveNewVersion: Bool
+    var publisher: ListEventPublisher
+    var rightView:RightView?
+    var rightArrow: Bool
+
     var body: some View {
-        
         ZStack {
             Color.white.opacity(0.1)
             HStack {
                 Text(type.rawValue.localized).font(.font(size: 16.0)).foregroundColor(.white)
                 Spacer()
-//                if type != .about {
-//                    Image(.whiteRightArrow)
-//                }else{
-//                    Text(appVersion()).foregroundColor(.hex("#FFFFFF").opacity(0.4)).font(.font(size: 16))
-//                }
-                
-                if type == .update {
-                    if isHaveNewVersion {
-                        Color.hex("#FECB34").frame(width: 4, height: 4).cornerRadius(2)
-                        Spacer().frame(width: 4)
-                    }
-                    Text(appVersion()).foregroundColor(.hex("#FFFFFF").opacity(0.4)).font(.font(size: 16))
+
+                if let view = rightView{
+                    view
                 }
-            
-                Image(.whiteRightArrow)
+   
+                if rightArrow {
+                    Image(.whiteRightArrow)
+                }
+                
             }.padding(.horizontal)
         }
         .frame(height: 64)
+        .onTapGesture {
+            publisher.settingPublisher.send(type)
+        }
+    }
+}
+
+struct SettingListAppUpdateItemView: View {
+    @Binding var isHaveNewVersion: Bool
+    var body: some View {
+        if isHaveNewVersion {
+            Color.hex("#FECB34").frame(width: 4, height: 4).cornerRadius(2)
+            Spacer().frame(width: 4)
+        }
+        Text(appVersion()).foregroundColor(.hex("#FFFFFF").opacity(0.4)).font(.font(size: 16))
+    }
+}
+
+struct SettingListNumItemView: View {
+    @Binding var num: Int
+    var body: some View {
+        Text("\(num)").foregroundColor(UIColor.themeColor.color).font(.font(size: 16))
+    }
+}
+
+
+
+struct SettingListVideoItemView: View {
+    
+    var type : SettingType
+    var publisher: ListEventPublisher
+    
+    var body: some View {
+        ZStack{
+            LinearGradient(gradient: Gradient(colors: [Color.hex("#583986"),Color.hex("#333C8C")]), startPoint: .leading, endPoint: .trailing)
+            HStack(spacing:8){
+                Image(.hourglass)
+                Text("Video Effect Times Package").font(.font(size: 14.0)).foregroundColor(.white)
+                Spacer()
+                Image(.whiteRightArrow)
+            }
+            .padding(.horizontal)
+        }
+        .frame(height: 48)
         .cornerRadius(16)
-//        .cornerRadius(.allCorners, 16)
+        .onTapGesture {
+            publisher.settingPublisher.send(type)
+        }
     }
 }
+
+
+//
+//struct SettingListItemView: View {
+//    var type : SettingType
+//    var publisher: ListEventPublisher
+//    @Binding var isHaveNewVersion: Bool
+//    
+//    var body: some View {
+//        ZStack {
+//            Color.white.opacity(0.1)
+//            HStack {
+//                Text(type.rawValue.localized).font(.font(size: 16.0)).foregroundColor(.white)
+//                Spacer()
+//                if type == .update {
+//                    if isHaveNewVersion {
+//                        Color.hex("#FECB34").frame(width: 4, height: 4).cornerRadius(2)
+//                        Spacer().frame(width: 4)
+//                    }
+//                    Text(appVersion()).foregroundColor(.hex("#FFFFFF").opacity(0.4)).font(.font(size: 16))
+//                }
+//            
+//                Image(.whiteRightArrow)
+//            }.padding(.horizontal)
+//        }
+//        .frame(height: 64)
+////        .cornerRadius(16)
+////        .cornerRadius(.allCorners, 16)
+//    }
+//}

+ 167 - 0
AIEmoji/Business/TSSetingVC/TSChangeLanguageVC/TSChangeLanguageVC.swift

@@ -0,0 +1,167 @@
+//
+//  TSChangeLanguageVC.swift
+//  TSLiveWallpaper
+//
+//  Created by 100Years on 2025/7/10.
+//
+
+class TSChangeLanguageVC: TSBaseVC {
+    
+    lazy var simpleTableView: TSBaseTableView = {
+        let simpleTableView = TSBaseTableView()
+        simpleTableView.register(TSChangeLanguageCell.self, forCellReuseIdentifier: "TSChangeLanguageCell")
+        simpleTableView.delegate = self
+        simpleTableView.dataSource = self
+        return simpleTableView
+    }()
+    
+    var selectedIndex:Int = 0
+    lazy var dataArray:[LanguageManager.AppLanguage] = LanguageManager.AppLanguage.allCases
+
+    
+    override func createData() {
+        if LanguageManager.shared.followSystem {
+            selectedIndex = 0
+        }else{
+            let currentLanguage = LanguageManager.shared.currentLanguage
+            for (i,language) in dataArray.enumerated() {
+                if language == currentLanguage {
+                    selectedIndex = i
+                    break
+                }
+            }
+        }
+    }
+    
+    override func createView() {
+        setPageTitle("Change Language".localized)
+        
+//        _ = setNavigationItem("Save".localized, imageName: "", direction: .right, action: #selector(clickSave))
+        
+        contentView.addSubview(simpleTableView)
+        simpleTableView.snp.makeConstraints { make in
+            make.leading.equalTo(16)
+            make.trailing.equalTo(-16)
+            make.top.equalTo(16)
+            make.bottom.equalTo(0)
+        }
+    }
+ 
+    @objc func clickSave() {
+        LanguageManager.shared.currentLanguage = dataArray.safeObj(At: selectedIndex) ?? .en
+        TSRTLManage.setUpInit()
+        AppDelegate.shared?.goToTab()
+    }
+}
+
+extension TSChangeLanguageVC : UITableViewDataSource, UITableViewDelegate {
+    
+    public func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+    
+    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return dataArray.count
+    }
+    
+    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+        return 64
+    }
+    
+    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+        if let cell = tableView.dequeueReusableCell(withIdentifier: "TSChangeLanguageCell") as? TSChangeLanguageCell{
+            if let language = dataArray.safeObj(At: indexPath.row){
+                if let image = UIImage(named: language.flag) {
+                    cell.leftImageView.image = UIImage(named: language.flag)
+                }else{
+                    cell.leftLab.text = language.flag
+                }
+                cell.textLab.text = language.displayName
+                cell.rightImageView.image = selectedIndex ==  indexPath.row ? .check : .unCheck
+            }
+            return cell
+        }
+        
+        return UITableViewCell()
+    }
+    
+    public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
+        selectedIndex = indexPath.row
+        simpleTableView.reloadData()
+        clickSave()
+    }
+}
+
+class TSChangeLanguageCell: UITableViewCell {
+    
+    open lazy var bgContentView:UIView = {
+        let view = UIView()
+        view.backgroundColor = .white.withAlphaComponent(0.1)
+        return view
+    }()
+    
+    public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        self.selectionStyle = .none
+        self.backgroundColor = .clear
+        self.addSubview(bgContentView)
+        bgContentView.snp.makeConstraints { make in
+            make.top.leading.trailing.bottom.equalTo(0)
+        }
+        creatUI()
+    }
+    
+    required public init?(coder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    lazy var leftImageView: UIImageView = {
+        let leftImageView = UIImageView.createImageView()
+        return leftImageView
+    }()
+    
+    lazy var leftLab: UILabel = {
+        return UILabel.createLabel(font: .font(size: 16),textColor: .white,textAlignment: .center)
+    }()
+    
+    lazy var textLab: UILabel = {
+        return UILabel.createLabel(font: .font(size: 16),textColor: .white)
+    }()
+
+    lazy var rightImageView: UIImageView = {
+        return UIImageView.createImageView()
+    }()
+    
+
+    func creatUI() {
+        bgContentView.addSubview(leftLab)
+        bgContentView.addSubview(leftImageView)
+        bgContentView.addSubview(textLab)
+        bgContentView.addSubview(rightImageView)
+
+        leftImageView.snp.makeConstraints { make in
+            make.leading.equalTo(16)
+            make.centerY.equalToSuperview()
+            make.width.height.equalTo(20)
+        }
+        
+        leftLab.snp.makeConstraints { make in
+            make.leading.equalTo(16)
+            make.centerY.equalToSuperview()
+            make.width.height.equalTo(20)
+        }
+    
+        textLab.snp.makeConstraints { make in
+            make.leading.equalTo(leftImageView.snp.trailing).offset(12)
+            make.centerY.equalToSuperview()
+        }
+        
+        rightImageView.snp.makeConstraints { make in
+            make.trailing.equalTo(-16)
+            make.centerY.equalToSuperview()
+            make.width.height.equalTo(16)
+        }
+        
+    }
+
+}

+ 48 - 7
AIEmoji/Common/Purchase/TSPurchaseManager+Enmu.swift

@@ -14,12 +14,19 @@ public enum PremiumPeriod{
     case year
     case lifetime
     case week(WeekType)
-
+    case purchase(PurchaseType)
+    
     public enum WeekType:String, CaseIterable{
         case week = "week"
         case week1 = "week1"
         case weekPromotional1 = "weekPromotional1"
     }
+    
+    public enum PurchaseType:String, CaseIterable{
+        case videoNum1 = "videoNum1"
+        case videoNum2 = "videoNum2"
+        case videoNum3 = "videoNum3"
+    }
 }
 
 extension PremiumPeriod:CaseIterable ,RawRepresentable {
@@ -32,6 +39,8 @@ extension PremiumPeriod:CaseIterable ,RawRepresentable {
     
     public var rawValue: String{
         switch self {
+        case .purchase(let type):
+            type.rawValue
         case .week(let type):
             type.rawValue
         case .month:
@@ -55,7 +64,9 @@ extension PremiumPeriod:CaseIterable ,RawRepresentable {
          case "Lifetime":
              self = .lifetime
          default:
-             if let weekType = WeekType(rawValue: rawValue){
+             if let purchaseType = PurchaseType(rawValue: rawValue){
+                 self = .purchase(purchaseType)
+             }else if let weekType = WeekType(rawValue: rawValue){
                  self = .week(weekType)
              }else{
                  self = .none
@@ -71,10 +82,16 @@ extension PremiumPeriod:CaseIterable ,RawRepresentable {
             return false
         }
     }
+    
+    var isPurchaseType:Bool {
+        if case .purchase(_) = self {
+            return true
+        }
+        return true
+    }
 }
 
 extension PremiumPeriod {
-
     /// 对应vip类型,可以每天限额次数
     var dayGeneratedNumber: Int {
         return 50//50 3
@@ -83,16 +100,40 @@ extension PremiumPeriod {
     var dayGeneratedVideoNumber: Int {
         return 20//20 3
     }
-    /// 对应vip类型,可以一共限额视频次数
+    /// 对应vip类型,赠送的视频生成次数次数
     var creatVideoMaxNum:Int {
         switch self  {
         case .year:
-            return 200//200 2
+            return  2//200 2
         default:
-            return 20//20 1
+            if self == .none {
+                return 0
+            }else{
+                return 1//20 1
+            }
         }
     }
-    
+}
+
+extension PremiumPeriod {
+    /// 对应vip类型,返回的购买成功后,返回的数额
+    var purchaseNum: Int? {
+        switch self {
+        case .purchase(.videoNum1):
+            return 10
+        case .purchase(.videoNum2):
+            return 20
+        case .purchase(.videoNum3):
+            return 50
+        default:
+            return nil
+        }
+    }
+}
+
+
+
+extension PremiumPeriod {
     var saveString: String {
         switch self {
         case .none:

+ 6 - 7
AIEmoji/Common/Purchase/TSPurchaseManager+Free.swift

@@ -12,13 +12,12 @@ extension PurchaseManager {
     /// 使用一次免费次数
     func useOnceForFree(type: VipFreeNumType) {
         if isVip {
-            return
+            //成为会员后的额度
+            saveForDayGeneratedNum(type: type)
+            saveForVipGeneratedNum(type: type)
+        }else{
+            saveForFreeNum(type: type) //非会员的免费次数
         }
-        
-        /// 总使用次数
-        saveForVipFreeNum(type: type)
-        saveForDayGeneratedNum(type: type)
-        saveForVipGeneratedNum(type: type)
     }
     
     func saveForUserKeychain(data:[String:Any],key:String) {
@@ -65,7 +64,7 @@ extension PurchaseManager {
 
     }
 
-    func saveForVipFreeNum(type: VipFreeNumType){
+    func saveForFreeNum(type: VipFreeNumType){
         var freeDict = getFreeDict()
         var freeNum = freeDict[type.rawValue] ?? 0
         if freeNum > 0 {

+ 64 - 15
AIEmoji/Common/Purchase/TSPurchaseManager+Limit.swift

@@ -65,28 +65,31 @@ extension PurchaseManager {
     //是否超出Vip期间使用的次数
     public func isExceedsVipGeneratedNum(vipFreeNumType:VipFreeNumType) -> Bool {
         if isVip {
-            let dayNum = loadVipGeneratedNum(type: vipFreeNumType)
-            if vipFreeNumType == .videoV2 {
-                return dayNum >= vipType.creatVideoMaxNum
-            }
-            return false
+            return videoAvailableNum <= 0 //次数不够的,返回 true
         }
         return false
     }
 
     func saveForVipGeneratedNum(type: VipFreeNumType) {
         let type = getDayGeneratedNum(type: type)
+        var num = loadVipGeneratedNum(type: type)
         
-        var dayNum = loadVipGeneratedNum(type: type)
-        dayNum = dayNum + 1
-        // 保存新的记录
-        var dict: [String: [String: Any]] = [:]
-        if var saveDict = UserDefaults.standard.dictionary(forKey: kVipGeneratedNumKey) as? [String: [String: Any]]{
-            dict = saveDict
+        //购买视频次数相关
+        //检查vip自带的视频生成次数,是否用完了,如果用完了,就扣购买的次数
+        if vipType.creatVideoMaxNum - num <= 0{
+            reduceVideoPurchasedNum(type: type)
+        }else{
+            //增加视频生成次数记录
+            num = num + 1
+            var dict: [String: [String: Any]] = [:]
+            if let saveDict = UserDefaults.standard.dictionary(forKey: kVipGeneratedNumKey) as? [String: [String: Any]]{
+                dict = saveDict
+            }
+            dict[type.rawValue] = ["times": num,"expireTime":expireTime]
+            saveForUserKeychain(data: dict,key: kVipGeneratedNumKey)
         }
-        dict[type.rawValue] = ["times": dayNum,"expireTime":expireTime]
-        
-        saveForUserKeychain(data: dict,key: kVipGeneratedNumKey)
+   
+        NotificationCenter.default.post(name: .kPurchaseVideoNumChanged, object: nil)
     }
 
     func loadVipGeneratedNum(type: VipFreeNumType)-> Int {
@@ -99,8 +102,54 @@ extension PurchaseManager {
             return 0
         }
         dePrint("从钥匙串 loadVipGeneratedNum=\(dict)")
-        // 有记录,设置已经使用次数
+        // 有记录,读取已经使用次数
         return typeDict.safeInt(forKey: "times")
     }
     
 }
+
+
+//extension PurchaseManager {
+//    
+//    //是否超出Vip期间使用的次数
+//    public func isExceedsVipGeneratedNum(vipFreeNumType:VipFreeNumType) -> Bool {
+//        if isVip {
+//            let dayNum = loadVipGeneratedNum(type: vipFreeNumType)
+//            if vipFreeNumType == .videoV2 {
+//                return dayNum >= vipType.creatVideoMaxNum
+//            }
+//            return false
+//        }
+//        return false
+//    }
+//
+//    func saveForVipGeneratedNum(type: VipFreeNumType) {
+//        let type = getDayGeneratedNum(type: type)
+//        
+//        var dayNum = loadVipGeneratedNum(type: type)
+//        dayNum = dayNum + 1
+//        // 保存新的记录
+//        var dict: [String: [String: Any]] = [:]
+//        if var saveDict = UserDefaults.standard.dictionary(forKey: kVipGeneratedNumKey) as? [String: [String: Any]]{
+//            dict = saveDict
+//        }
+//        dict[type.rawValue] = ["times": dayNum,"expireTime":expireTime]
+//        
+//        saveForUserKeychain(data: dict,key: kVipGeneratedNumKey)
+//    }
+//
+//    func loadVipGeneratedNum(type: VipFreeNumType)-> Int {
+//        let type = getDayGeneratedNum(type: type)
+//        // 当天没记录,设置默认次数
+//        guard let dict = UserDefaults.standard.dictionary(forKey: kVipGeneratedNumKey),
+//              let typeDict = dict.safeDictionary(forKey: type.rawValue) as? [String: Any],
+//              typeDict.safeString(forKey: "expireTime") == expireTime
+//        else {
+//            return 0
+//        }
+//        dePrint("从钥匙串 loadVipGeneratedNum=\(dict)")
+//        // 有记录,设置已经使用次数
+//        return typeDict.safeInt(forKey: "times")
+//    }
+//    
+//}

+ 38 - 3812
AIEmoji/Common/Purchase/TSPurchaseManager+PurchasedNum.swift

@@ -6,73 +6,65 @@
 //
 
 
-
+public extension Notification.Name {
+    static let kPurchaseVideoNumChanged = Self("kPurchaseVideoNumChanged") //购买视频的生成次数发生了变化
+}
+//购买视频次数相关
 extension PurchaseManager {
-    
-    func analyzeDataReceiptForVideo(resp: [String: Any]) {
-        
+    func analyzeDataReceiptForPurchase(resp: [String: Any]) {
         if let receipt = resp["receipt"] as? [String: Any],
            let in_app = receipt["in_app"] as? [[String: Any]]
         {
-            
             //从交易成功的本地数据,拿到已购买成功的消耗品数据
-            let targetIds = [201, 202, 203]
             let purchasedArray = in_app.filter{ dict in
-                guard let productId = dict["product_id"] as? Int else { return false }
-                return targetIds.contains(productId)
+                guard let productId = dict["product_id"] as? String else { return false }
+                return purchaseNumProducts.contains(productId)
             }
-            
-            //消耗型商品的唯一标识选择
-            //✅ ​**推荐方案:transaction_id**
-            //​原因​:
-            //每次购买(即使是同一商品)都会生成全新的 `transaction_id。
-            //苹果保证其全局唯一性(跨用户、跨设备、跨时间)。
-            //直接对应单次交易,完美匹配消耗型商品的“一次性”特性。
-            //⚠️ ​**不要使用 original_transaction_id**
-            //这是为订阅设计的字段,对消耗型商品无意义(每次购买都会生成相同的 original_transaction_id 和 transaction_id)。
-    
+
             for dict in purchasedArray {
-                if let transaction_id = dict["transaction_id"] as? Int {
-                    
+                if let transaction_id = dict["transaction_id"] as? String,
+                   let product_id = dict["product_id"] as? String,
+                   let premiumPeriod = premiumPeriod(productId: product_id),
+                    let purchaseNum = premiumPeriod.purchaseNum
+                {
+                    //满足条件后,会增加生成次数的
+                    TSDBTimesManager.purchaseVideo.addNewRecords(key: transaction_id, dict: dict, num: purchaseNum)
                 }
             }
+            
+            NotificationCenter.default.post(name: .kPurchaseVideoNumChanged, object: nil)
         }
     }
     
-    
+    //消耗购买的视频次数
     func reduceVideoPurchasedNum(type: VipFreeNumType) {
-
-    }
-
-    func addVideoPurchasedNum(type: VipFreeNumType) {
-
+        if type == .videoV2 {
+            TSDBTimesManager.purchaseVideo.reduceTimes()
+        }
     }
     
-    
+    //视频生成可用的次数
+    var videoAvailableNum:Int {
+        let vipFreeNumType:VipFreeNumType = .videoV2
+        let vipNum = vipType.creatVideoMaxNum - loadVipGeneratedNum(type:vipFreeNumType) //会员自身带的额度
+        let purchaseNum = TSDBTimesManager.purchaseVideo.times //用户后面购买的次数
+        let total = vipNum + purchaseNum
+        dePrint("视频可用次数total=\(total),vipNum=\(vipNum),purchaseNum=\(purchaseNum)")
+        return total
+    }
 }
 
 
 
 
-//
-//["pending_renewal_info":(
-//{
-//    "auto_renew_product_id" = 103;
-//    "auto_renew_status" = 0;
-//    "expiration_intent" = 1;
-//    "is_in_billing_retry_period" = 0;
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//}
-//)
-//,"status": 0,
-//
-// "receipt": {
-//    "adam_id" = 0;
-//    "app_item_id" = 0;
-//    "application_version" = 3;
-//    "bundle_id" = "com.girl.music.wallpaper";
-//    "download_id" = 0;
+//消耗型商品的唯一标识选择
+//✅ ​**推荐方案:transaction_id**
+//​原因​:
+//每次购买(即使是同一商品)都会生成全新的 `transaction_id。
+//苹果保证其全局唯一性(跨用户、跨设备、跨时间)。
+//直接对应单次交易,完美匹配消耗型商品的“一次性”特性。
+//⚠️ ​**不要使用 original_transaction_id**
+//这是为订阅设计的字段,对消耗型商品无意义(每次购买都会生成相同的 original_transaction_id 和 transaction_id)。
 //    "in_app" =     (
 //                {
 //            "in_app_ownership_type" = PURCHASED;
@@ -88,3769 +80,3 @@ extension PurchaseManager {
 //            quantity = 1;
 //            "transaction_id" = 2000000974433576;
 //        },
-//                {
-//            "expires_date" = "2025-07-23 10:23:06 Etc/GMT";
-//            "expires_date_ms" = 1753266186000;
-//            "expires_date_pst" = "2025-07-23 03:23:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:20:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266006000;
-//            "purchase_date_pst" = "2025-07-23 03:20:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967775250;
-//            "web_order_line_item_id" = 2000000104140895;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:26:06 Etc/GMT";
-//            "expires_date_ms" = 1753266366000;
-//            "expires_date_pst" = "2025-07-23 03:26:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:23:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266186000;
-//            "purchase_date_pst" = "2025-07-23 03:23:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967777494;
-//            "web_order_line_item_id" = 2000000106266321;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:29:06 Etc/GMT";
-//            "expires_date_ms" = 1753266546000;
-//            "expires_date_pst" = "2025-07-23 03:29:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:26:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266366000;
-//            "purchase_date_pst" = "2025-07-23 03:26:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967780246;
-//            "web_order_line_item_id" = 2000000106266606;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:32:06 Etc/GMT";
-//            "expires_date_ms" = 1753266726000;
-//            "expires_date_pst" = "2025-07-23 03:32:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:29:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266546000;
-//            "purchase_date_pst" = "2025-07-23 03:29:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967783009;
-//            "web_order_line_item_id" = 2000000106267040;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:35:06 Etc/GMT";
-//            "expires_date_ms" = 1753266906000;
-//            "expires_date_pst" = "2025-07-23 03:35:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:32:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266726000;
-//            "purchase_date_pst" = "2025-07-23 03:32:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967785419;
-//            "web_order_line_item_id" = 2000000106267400;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:38:06 Etc/GMT";
-//            "expires_date_ms" = 1753267086000;
-//            "expires_date_pst" = "2025-07-23 03:38:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:35:06 Etc/GMT";
-//            "purchase_date_ms" = 1753266906000;
-//            "purchase_date_pst" = "2025-07-23 03:35:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967787660;
-//            "web_order_line_item_id" = 2000000106267815;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:41:06 Etc/GMT";
-//            "expires_date_ms" = 1753267266000;
-//            "expires_date_pst" = "2025-07-23 03:41:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:38:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267086000;
-//            "purchase_date_pst" = "2025-07-23 03:38:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967790324;
-//            "web_order_line_item_id" = 2000000106268190;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:44:06 Etc/GMT";
-//            "expires_date_ms" = 1753267446000;
-//            "expires_date_pst" = "2025-07-23 03:44:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:41:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267266000;
-//            "purchase_date_pst" = "2025-07-23 03:41:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967791965;
-//            "web_order_line_item_id" = 2000000106268592;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:47:06 Etc/GMT";
-//            "expires_date_ms" = 1753267626000;
-//            "expires_date_pst" = "2025-07-23 03:47:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:44:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267446000;
-//            "purchase_date_pst" = "2025-07-23 03:44:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967795477;
-//            "web_order_line_item_id" = 2000000106268937;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:50:06 Etc/GMT";
-//            "expires_date_ms" = 1753267806000;
-//            "expires_date_pst" = "2025-07-23 03:50:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:47:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267626000;
-//            "purchase_date_pst" = "2025-07-23 03:47:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967799519;
-//            "web_order_line_item_id" = 2000000106269341;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:53:06 Etc/GMT";
-//            "expires_date_ms" = 1753267986000;
-//            "expires_date_pst" = "2025-07-23 03:53:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:50:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267806000;
-//            "purchase_date_pst" = "2025-07-23 03:50:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967804084;
-//            "web_order_line_item_id" = 2000000106269695;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 10:56:06 Etc/GMT";
-//            "expires_date_ms" = 1753268166000;
-//            "expires_date_pst" = "2025-07-23 03:56:06 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 10:53:06 Etc/GMT";
-//            "purchase_date_ms" = 1753267986000;
-//            "purchase_date_pst" = "2025-07-23 03:53:06 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967807069;
-//            "web_order_line_item_id" = 2000000106270049;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:14:43 Etc/GMT";
-//            "expires_date_ms" = 1753269283000;
-//            "expires_date_pst" = "2025-07-23 04:14:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:11:43 Etc/GMT";
-//            "purchase_date_ms" = 1753269103000;
-//            "purchase_date_pst" = "2025-07-23 04:11:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967824364;
-//            "web_order_line_item_id" = 2000000106270408;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:17:43 Etc/GMT";
-//            "expires_date_ms" = 1753269463000;
-//            "expires_date_pst" = "2025-07-23 04:17:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:14:43 Etc/GMT";
-//            "purchase_date_ms" = 1753269283000;
-//            "purchase_date_pst" = "2025-07-23 04:14:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967826163;
-//            "web_order_line_item_id" = 2000000106272680;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:20:43 Etc/GMT";
-//            "expires_date_ms" = 1753269643000;
-//            "expires_date_pst" = "2025-07-23 04:20:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:17:43 Etc/GMT";
-//            "purchase_date_ms" = 1753269463000;
-//            "purchase_date_pst" = "2025-07-23 04:17:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967830187;
-//            "web_order_line_item_id" = 2000000106272895;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:23:43 Etc/GMT";
-//            "expires_date_ms" = 1753269823000;
-//            "expires_date_pst" = "2025-07-23 04:23:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:20:43 Etc/GMT";
-//            "purchase_date_ms" = 1753269643000;
-//            "purchase_date_pst" = "2025-07-23 04:20:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967832786;
-//            "web_order_line_item_id" = 2000000106273272;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:26:43 Etc/GMT";
-//            "expires_date_ms" = 1753270003000;
-//            "expires_date_pst" = "2025-07-23 04:26:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:23:43 Etc/GMT";
-//            "purchase_date_ms" = 1753269823000;
-//            "purchase_date_pst" = "2025-07-23 04:23:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967836340;
-//            "web_order_line_item_id" = 2000000106273656;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:29:43 Etc/GMT";
-//            "expires_date_ms" = 1753270183000;
-//            "expires_date_pst" = "2025-07-23 04:29:43 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:26:43 Etc/GMT";
-//            "purchase_date_ms" = 1753270003000;
-//            "purchase_date_pst" = "2025-07-23 04:26:43 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967838531;
-//            "web_order_line_item_id" = 2000000106274003;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:34:24 Etc/GMT";
-//            "expires_date_ms" = 1753270464000;
-//            "expires_date_pst" = "2025-07-23 04:34:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:31:24 Etc/GMT";
-//            "purchase_date_ms" = 1753270284000;
-//            "purchase_date_pst" = "2025-07-23 04:31:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967843563;
-//            "web_order_line_item_id" = 2000000106274355;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:37:24 Etc/GMT";
-//            "expires_date_ms" = 1753270644000;
-//            "expires_date_pst" = "2025-07-23 04:37:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:34:24 Etc/GMT";
-//            "purchase_date_ms" = 1753270464000;
-//            "purchase_date_pst" = "2025-07-23 04:34:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967844943;
-//            "web_order_line_item_id" = 2000000106274999;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:40:24 Etc/GMT";
-//            "expires_date_ms" = 1753270824000;
-//            "expires_date_pst" = "2025-07-23 04:40:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:37:24 Etc/GMT";
-//            "purchase_date_ms" = 1753270644000;
-//            "purchase_date_pst" = "2025-07-23 04:37:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967847326;
-//            "web_order_line_item_id" = 2000000106275248;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:43:24 Etc/GMT";
-//            "expires_date_ms" = 1753271004000;
-//            "expires_date_pst" = "2025-07-23 04:43:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:40:24 Etc/GMT";
-//            "purchase_date_ms" = 1753270824000;
-//            "purchase_date_pst" = "2025-07-23 04:40:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967849797;
-//            "web_order_line_item_id" = 2000000106275609;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:46:24 Etc/GMT";
-//            "expires_date_ms" = 1753271184000;
-//            "expires_date_pst" = "2025-07-23 04:46:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:43:24 Etc/GMT";
-//            "purchase_date_ms" = 1753271004000;
-//            "purchase_date_pst" = "2025-07-23 04:43:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967852305;
-//            "web_order_line_item_id" = 2000000106275941;
-//        },
-//                {
-//            "expires_date" = "2025-07-23 11:49:24 Etc/GMT";
-//            "expires_date_ms" = 1753271364000;
-//            "expires_date_pst" = "2025-07-23 04:49:24 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-23 11:46:24 Etc/GMT";
-//            "purchase_date_ms" = 1753271184000;
-//            "purchase_date_pst" = "2025-07-23 04:46:24 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000967854038;
-//            "web_order_line_item_id" = 2000000106276342;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 01:45:54 Etc/GMT";
-//            "expires_date_ms" = 1753321554000;
-//            "expires_date_pst" = "2025-07-23 18:45:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:42:54 Etc/GMT";
-//            "purchase_date_ms" = 1753321374000;
-//            "purchase_date_pst" = "2025-07-23 18:42:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968218392;
-//            "web_order_line_item_id" = 2000000106276612;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 01:48:54 Etc/GMT";
-//            "expires_date_ms" = 1753321734000;
-//            "expires_date_pst" = "2025-07-23 18:48:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:45:54 Etc/GMT";
-//            "purchase_date_ms" = 1753321554000;
-//            "purchase_date_pst" = "2025-07-23 18:45:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968219093;
-//            "web_order_line_item_id" = 2000000106336064;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 01:51:54 Etc/GMT";
-//            "expires_date_ms" = 1753321914000;
-//            "expires_date_pst" = "2025-07-23 18:51:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:48:54 Etc/GMT";
-//            "purchase_date_ms" = 1753321734000;
-//            "purchase_date_pst" = "2025-07-23 18:48:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968220080;
-//            "web_order_line_item_id" = 2000000106336188;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 01:54:54 Etc/GMT";
-//            "expires_date_ms" = 1753322094000;
-//            "expires_date_pst" = "2025-07-23 18:54:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:51:54 Etc/GMT";
-//            "purchase_date_ms" = 1753321914000;
-//            "purchase_date_pst" = "2025-07-23 18:51:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968221504;
-//            "web_order_line_item_id" = 2000000106336359;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 01:57:54 Etc/GMT";
-//            "expires_date_ms" = 1753322274000;
-//            "expires_date_pst" = "2025-07-23 18:57:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:54:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322094000;
-//            "purchase_date_pst" = "2025-07-23 18:54:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968222807;
-//            "web_order_line_item_id" = 2000000106336549;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:00:54 Etc/GMT";
-//            "expires_date_ms" = 1753322454000;
-//            "expires_date_pst" = "2025-07-23 19:00:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 01:57:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322274000;
-//            "purchase_date_pst" = "2025-07-23 18:57:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968224016;
-//            "web_order_line_item_id" = 2000000106336759;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:03:54 Etc/GMT";
-//            "expires_date_ms" = 1753322634000;
-//            "expires_date_pst" = "2025-07-23 19:03:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:00:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322454000;
-//            "purchase_date_pst" = "2025-07-23 19:00:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968224651;
-//            "web_order_line_item_id" = 2000000106336921;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:06:54 Etc/GMT";
-//            "expires_date_ms" = 1753322814000;
-//            "expires_date_pst" = "2025-07-23 19:06:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:03:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322634000;
-//            "purchase_date_pst" = "2025-07-23 19:03:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968225683;
-//            "web_order_line_item_id" = 2000000106337120;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:09:54 Etc/GMT";
-//            "expires_date_ms" = 1753322994000;
-//            "expires_date_pst" = "2025-07-23 19:09:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:06:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322814000;
-//            "purchase_date_pst" = "2025-07-23 19:06:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968227080;
-//            "web_order_line_item_id" = 2000000106337313;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:12:54 Etc/GMT";
-//            "expires_date_ms" = 1753323174000;
-//            "expires_date_pst" = "2025-07-23 19:12:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:09:54 Etc/GMT";
-//            "purchase_date_ms" = 1753322994000;
-//            "purchase_date_pst" = "2025-07-23 19:09:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968228509;
-//            "web_order_line_item_id" = 2000000106337521;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:15:54 Etc/GMT";
-//            "expires_date_ms" = 1753323354000;
-//            "expires_date_pst" = "2025-07-23 19:15:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:12:54 Etc/GMT";
-//            "purchase_date_ms" = 1753323174000;
-//            "purchase_date_pst" = "2025-07-23 19:12:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968230645;
-//            "web_order_line_item_id" = 2000000106337717;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:18:54 Etc/GMT";
-//            "expires_date_ms" = 1753323534000;
-//            "expires_date_pst" = "2025-07-23 19:18:54 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:15:54 Etc/GMT";
-//            "purchase_date_ms" = 1753323354000;
-//            "purchase_date_pst" = "2025-07-23 19:15:54 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968231697;
-//            "web_order_line_item_id" = 2000000106337954;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:53:55 Etc/GMT";
-//            "expires_date_ms" = 1753325635000;
-//            "expires_date_pst" = "2025-07-23 19:53:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:50:55 Etc/GMT";
-//            "purchase_date_ms" = 1753325455000;
-//            "purchase_date_pst" = "2025-07-23 19:50:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968251675;
-//            "web_order_line_item_id" = 2000000106338166;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:56:55 Etc/GMT";
-//            "expires_date_ms" = 1753325815000;
-//            "expires_date_pst" = "2025-07-23 19:56:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:53:55 Etc/GMT";
-//            "purchase_date_ms" = 1753325635000;
-//            "purchase_date_pst" = "2025-07-23 19:53:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968252623;
-//            "web_order_line_item_id" = 2000000106340792;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 02:59:55 Etc/GMT";
-//            "expires_date_ms" = 1753325995000;
-//            "expires_date_pst" = "2025-07-23 19:59:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:56:55 Etc/GMT";
-//            "purchase_date_ms" = 1753325815000;
-//            "purchase_date_pst" = "2025-07-23 19:56:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968254516;
-//            "web_order_line_item_id" = 2000000106340946;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:02:55 Etc/GMT";
-//            "expires_date_ms" = 1753326175000;
-//            "expires_date_pst" = "2025-07-23 20:02:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 02:59:55 Etc/GMT";
-//            "purchase_date_ms" = 1753325995000;
-//            "purchase_date_pst" = "2025-07-23 19:59:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968257896;
-//            "web_order_line_item_id" = 2000000106341193;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:05:55 Etc/GMT";
-//            "expires_date_ms" = 1753326355000;
-//            "expires_date_pst" = "2025-07-23 20:05:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:02:55 Etc/GMT";
-//            "purchase_date_ms" = 1753326175000;
-//            "purchase_date_pst" = "2025-07-23 20:02:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968259358;
-//            "web_order_line_item_id" = 2000000106341438;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:08:55 Etc/GMT";
-//            "expires_date_ms" = 1753326535000;
-//            "expires_date_pst" = "2025-07-23 20:08:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:05:55 Etc/GMT";
-//            "purchase_date_ms" = 1753326355000;
-//            "purchase_date_pst" = "2025-07-23 20:05:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968262137;
-//            "web_order_line_item_id" = 2000000106341705;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:11:55 Etc/GMT";
-//            "expires_date_ms" = 1753326715000;
-//            "expires_date_pst" = "2025-07-23 20:11:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:08:55 Etc/GMT";
-//            "purchase_date_ms" = 1753326535000;
-//            "purchase_date_pst" = "2025-07-23 20:08:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968264037;
-//            "web_order_line_item_id" = 2000000106341926;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:14:55 Etc/GMT";
-//            "expires_date_ms" = 1753326895000;
-//            "expires_date_pst" = "2025-07-23 20:14:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:11:55 Etc/GMT";
-//
-//            "purchase_date_ms" = 1753326715000;
-//            "purchase_date_pst" = "2025-07-23 20:11:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968265423;
-//            "web_order_line_item_id" = 2000000106342158;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:17:55 Etc/GMT";
-//            "expires_date_ms" = 1753327075000;
-//            "expires_date_pst" = "2025-07-23 20:17:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:14:55 Etc/GMT";
-//            "purchase_date_ms" = 1753326895000;
-//            "purchase_date_pst" = "2025-07-23 20:14:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968268155;
-//            "web_order_line_item_id" = 2000000106342386;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:20:55 Etc/GMT";
-//            "expires_date_ms" = 1753327255000;
-//            "expires_date_pst" = "2025-07-23 20:20:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:17:55 Etc/GMT";
-//            "purchase_date_ms" = 1753327075000;
-//            "purchase_date_pst" = "2025-07-23 20:17:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968270607;
-//            "web_order_line_item_id" = 2000000106342623;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:23:55 Etc/GMT";
-//            "expires_date_ms" = 1753327435000;
-//            "expires_date_pst" = "2025-07-23 20:23:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:20:55 Etc/GMT";
-//            "purchase_date_ms" = 1753327255000;
-//            "purchase_date_pst" = "2025-07-23 20:20:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968273608;
-//            "web_order_line_item_id" = 2000000106342875;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 03:26:55 Etc/GMT";
-//            "expires_date_ms" = 1753327615000;
-//            "expires_date_pst" = "2025-07-23 20:26:55 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 03:23:55 Etc/GMT";
-//            "purchase_date_ms" = 1753327435000;
-//            "purchase_date_pst" = "2025-07-23 20:23:55 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968276297;
-//            "web_order_line_item_id" = 2000000106343097;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:22:07 Etc/GMT";
-//            "expires_date_ms" = 1753341727000;
-//            "expires_date_pst" = "2025-07-24 00:22:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:19:07 Etc/GMT";
-//            "purchase_date_ms" = 1753341547000;
-//            "purchase_date_pst" = "2025-07-24 00:19:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968464027;
-//            "web_order_line_item_id" = 2000000106343340;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:25:07 Etc/GMT";
-//            "expires_date_ms" = 1753341907000;
-//            "expires_date_pst" = "2025-07-24 00:25:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:22:07 Etc/GMT";
-//            "purchase_date_ms" = 1753341727000;
-//            "purchase_date_pst" = "2025-07-24 00:22:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968467849;
-//            "web_order_line_item_id" = 2000000106363251;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:28:07 Etc/GMT";
-//            "expires_date_ms" = 1753342087000;
-//            "expires_date_pst" = "2025-07-24 00:28:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:25:07 Etc/GMT";
-//            "purchase_date_ms" = 1753341907000;
-//            "purchase_date_pst" = "2025-07-24 00:25:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968471555;
-//            "web_order_line_item_id" = 2000000106363538;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:31:07 Etc/GMT";
-//            "expires_date_ms" = 1753342267000;
-//            "expires_date_pst" = "2025-07-24 00:31:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:28:07 Etc/GMT";
-//            "purchase_date_ms" = 1753342087000;
-//            "purchase_date_pst" = "2025-07-24 00:28:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968474286;
-//            "web_order_line_item_id" = 2000000106363876;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:34:07 Etc/GMT";
-//            "expires_date_ms" = 1753342447000;
-//            "expires_date_pst" = "2025-07-24 00:34:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:31:07 Etc/GMT";
-//            "purchase_date_ms" = 1753342267000;
-//            "purchase_date_pst" = "2025-07-24 00:31:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968479095;
-//            "web_order_line_item_id" = 2000000106364323;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:37:07 Etc/GMT";
-//            "expires_date_ms" = 1753342627000;
-//            "expires_date_pst" = "2025-07-24 00:37:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:34:07 Etc/GMT";
-//            "purchase_date_ms" = 1753342447000;
-//            "purchase_date_pst" = "2025-07-24 00:34:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968483193;
-//            "web_order_line_item_id" = 2000000106364646;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:40:07 Etc/GMT";
-//            "expires_date_ms" = 1753342807000;
-//            "expires_date_pst" = "2025-07-24 00:40:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:37:07 Etc/GMT";
-//            "purchase_date_ms" = 1753342627000;
-//            "purchase_date_pst" = "2025-07-24 00:37:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968487086;
-//            "web_order_line_item_id" = 2000000106365097;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:43:07 Etc/GMT";
-//            "expires_date_ms" = 1753342987000;
-//            "expires_date_pst" = "2025-07-24 00:43:07 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:40:07 Etc/GMT";
-//            "purchase_date_ms" = 1753342807000;
-//            "purchase_date_pst" = "2025-07-24 00:40:07 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968489642;
-//            "web_order_line_item_id" = 2000000106365472;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:46:40 Etc/GMT";
-//            "expires_date_ms" = 1753343200000;
-//            "expires_date_pst" = "2025-07-24 00:46:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:43:40 Etc/GMT";
-//            "purchase_date_ms" = 1753343020000;
-//            "purchase_date_pst" = "2025-07-24 00:43:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968493957;
-//            "web_order_line_item_id" = 2000000106365819;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:49:40 Etc/GMT";
-//            "expires_date_ms" = 1753343380000;
-//            "expires_date_pst" = "2025-07-24 00:49:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:46:40 Etc/GMT";
-//            "purchase_date_ms" = 1753343200000;
-//            "purchase_date_pst" = "2025-07-24 00:46:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968497256;
-//            "web_order_line_item_id" = 2000000106366382;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:54:40 Etc/GMT";
-//            "expires_date_ms" = 1753343680000;
-//            "expires_date_pst" = "2025-07-24 00:54:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:49:40 Etc/GMT";
-//            "purchase_date_ms" = 1753343380000;
-//            "purchase_date_pst" = "2025-07-24 00:49:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968501580;
-//            "web_order_line_item_id" = 2000000106366716;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 07:59:40 Etc/GMT";
-//            "expires_date_ms" = 1753343980000;
-//            "expires_date_pst" = "2025-07-24 00:59:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-24 07:54:40 Etc/GMT";
-//            "purchase_date_ms" = 1753343680000;
-//            "purchase_date_pst" = "2025-07-24 00:54:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968509643;
-//            "web_order_line_item_id" = 2000000106367181;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:28:40 Etc/GMT";
-//            "expires_date_ms" = 1753687720000;
-//            "expires_date_pst" = "2025-07-28 00:28:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:23:40 Etc/GMT";
-//            "purchase_date_ms" = 1753687420000;
-//            "purchase_date_pst" = "2025-07-28 00:23:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970873852;
-//            "web_order_line_item_id" = 2000000106396477;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:33:40 Etc/GMT";
-//            "expires_date_ms" = 1753688020000;
-//            "expires_date_pst" = "2025-07-28 00:33:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:28:40 Etc/GMT";
-//            "purchase_date_ms" = 1753687720000;
-//            "purchase_date_pst" = "2025-07-28 00:28:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970878749;
-//            "web_order_line_item_id" = 2000000106721811;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:38:40 Etc/GMT";
-//            "expires_date_ms" = 1753688320000;
-//            "expires_date_pst" = "2025-07-28 00:38:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:33:40 Etc/GMT";
-//            "purchase_date_ms" = 1753688020000;
-//            "purchase_date_pst" = "2025-07-28 00:33:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970883985;
-//            "web_order_line_item_id" = 2000000106722240;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:43:40 Etc/GMT";
-//            "expires_date_ms" = 1753688620000;
-//            "expires_date_pst" = "2025-07-28 00:43:40 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:38:40 Etc/GMT";
-//            "purchase_date_ms" = 1753688320000;
-//            "purchase_date_pst" = "2025-07-28 00:38:40 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970892585;
-//            "web_order_line_item_id" = 2000000106722816;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:48:44 Etc/GMT";
-//            "expires_date_ms" = 1753688924000;
-//            "expires_date_pst" = "2025-07-28 00:48:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:43:44 Etc/GMT";
-//            "purchase_date_ms" = 1753688624000;
-//            "purchase_date_pst" = "2025-07-28 00:43:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970899912;
-//            "web_order_line_item_id" = 2000000106723494;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:53:44 Etc/GMT";
-//            "expires_date_ms" = 1753689224000;
-//            "expires_date_pst" = "2025-07-28 00:53:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:48:44 Etc/GMT";
-//            "purchase_date_ms" = 1753688924000;
-//            "purchase_date_pst" = "2025-07-28 00:48:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970905488;
-//            "web_order_line_item_id" = 2000000106724107;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 07:58:44 Etc/GMT";
-//            "expires_date_ms" = 1753689524000;
-//            "expires_date_pst" = "2025-07-28 00:58:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:53:44 Etc/GMT";
-//            "purchase_date_ms" = 1753689224000;
-//            "purchase_date_pst" = "2025-07-28 00:53:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970910953;
-//            "web_order_line_item_id" = 2000000106724580;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 08:03:44 Etc/GMT";
-//            "expires_date_ms" = 1753689824000;
-//            "expires_date_pst" = "2025-07-28 01:03:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 07:58:44 Etc/GMT";
-//            "purchase_date_ms" = 1753689524000;
-//            "purchase_date_pst" = "2025-07-28 00:58:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970915816;
-//            "web_order_line_item_id" = 2000000106725183;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 08:08:44 Etc/GMT";
-//            "expires_date_ms" = 1753690124000;
-//            "expires_date_pst" = "2025-07-28 01:08:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 08:03:44 Etc/GMT";
-//            "purchase_date_ms" = 1753689824000;
-//            "purchase_date_pst" = "2025-07-28 01:03:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970920292;
-//            "web_order_line_item_id" = 2000000106725750;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 08:13:44 Etc/GMT";
-//            "expires_date_ms" = 1753690424000;
-//            "expires_date_pst" = "2025-07-28 01:13:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 08:08:44 Etc/GMT";
-//            "purchase_date_ms" = 1753690124000;
-//            "purchase_date_pst" = "2025-07-28 01:08:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970924902;
-//            "web_order_line_item_id" = 2000000106726352;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 08:18:44 Etc/GMT";
-//            "expires_date_ms" = 1753690724000;
-//            "expires_date_pst" = "2025-07-28 01:18:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 08:13:44 Etc/GMT";
-//            "purchase_date_ms" = 1753690424000;
-//            "purchase_date_pst" = "2025-07-28 01:13:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970929925;
-//            "web_order_line_item_id" = 2000000106726907;
-//        },
-//                {
-//            "expires_date" = "2025-07-28 08:23:44 Etc/GMT";
-//            "expires_date_ms" = 1753691024000;
-//            "expires_date_pst" = "2025-07-28 01:23:44 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 103;
-//            "purchase_date" = "2025-07-28 08:18:44 Etc/GMT";
-//            "purchase_date_ms" = 1753690724000;
-//            "purchase_date_pst" = "2025-07-28 01:18:44 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000970934901;
-//            "web_order_line_item_id" = 2000000106727546;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:19:21 Etc/GMT";
-//            "expires_date_ms" = 1751437161000;
-//            "expires_date_pst" = "2025-07-01 23:19:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:16:21 Etc/GMT";
-//            "purchase_date_ms" = 1751436981000;
-//            "purchase_date_pst" = "2025-07-01 23:16:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952854422;
-//            "web_order_line_item_id" = 2000000104137455;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:22:21 Etc/GMT";
-//            "expires_date_ms" = 1751437341000;
-//            "expires_date_pst" = "2025-07-01 23:22:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:19:21 Etc/GMT";
-//            "purchase_date_ms" = 1751437161000;
-//            "purchase_date_pst" = "2025-07-01 23:19:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952857066;
-//            "web_order_line_item_id" = 2000000104137652;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:25:21 Etc/GMT";
-//            "expires_date_ms" = 1751437521000;
-//            "expires_date_pst" = "2025-07-01 23:25:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:22:21 Etc/GMT";
-//            "purchase_date_ms" = 1751437341000;
-//            "purchase_date_pst" = "2025-07-01 23:22:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952860684;
-//            "web_order_line_item_id" = 2000000104137890;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:28:21 Etc/GMT";
-//            "expires_date_ms" = 1751437701000;
-//            "expires_date_pst" = "2025-07-01 23:28:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:25:21 Etc/GMT";
-//            "purchase_date_ms" = 1751437521000;
-//            "purchase_date_pst" = "2025-07-01 23:25:21 America/Los_Angeles";
-//
-//            quantity = 1;
-//            "transaction_id" = 2000000952863866;
-//            "web_order_line_item_id" = 2000000104138266;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:31:21 Etc/GMT";
-//            "expires_date_ms" = 1751437881000;
-//            "expires_date_pst" = "2025-07-01 23:31:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:28:21 Etc/GMT";
-//            "purchase_date_ms" = 1751437701000;
-//            "purchase_date_pst" = "2025-07-01 23:28:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952866857;
-//            "web_order_line_item_id" = 2000000104138534;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:34:21 Etc/GMT";
-//            "expires_date_ms" = 1751438061000;
-//            "expires_date_pst" = "2025-07-01 23:34:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:31:21 Etc/GMT";
-//            "purchase_date_ms" = 1751437881000;
-//            "purchase_date_pst" = "2025-07-01 23:31:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952870077;
-//            "web_order_line_item_id" = 2000000104138854;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:37:21 Etc/GMT";
-//            "expires_date_ms" = 1751438241000;
-//            "expires_date_pst" = "2025-07-01 23:37:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:34:21 Etc/GMT";
-//            "purchase_date_ms" = 1751438061000;
-//            "purchase_date_pst" = "2025-07-01 23:34:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952872226;
-//            "web_order_line_item_id" = 2000000104139213;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:40:21 Etc/GMT";
-//            "expires_date_ms" = 1751438421000;
-//            "expires_date_pst" = "2025-07-01 23:40:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:37:21 Etc/GMT";
-//            "purchase_date_ms" = 1751438241000;
-//            "purchase_date_pst" = "2025-07-01 23:37:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952874345;
-//            "web_order_line_item_id" = 2000000104139543;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:43:21 Etc/GMT";
-//            "expires_date_ms" = 1751438601000;
-//            "expires_date_pst" = "2025-07-01 23:43:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:40:21 Etc/GMT";
-//            "purchase_date_ms" = 1751438421000;
-//            "purchase_date_pst" = "2025-07-01 23:40:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952877553;
-//            "web_order_line_item_id" = 2000000104139866;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:46:21 Etc/GMT";
-//            "expires_date_ms" = 1751438781000;
-//            "expires_date_pst" = "2025-07-01 23:46:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:43:21 Etc/GMT";
-//            "purchase_date_ms" = 1751438601000;
-//            "purchase_date_pst" = "2025-07-01 23:43:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952881119;
-//            "web_order_line_item_id" = 2000000104140209;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:49:21 Etc/GMT";
-//            "expires_date_ms" = 1751438961000;
-//            "expires_date_pst" = "2025-07-01 23:49:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:46:21 Etc/GMT";
-//            "purchase_date_ms" = 1751438781000;
-//            "purchase_date_pst" = "2025-07-01 23:46:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952884046;
-//            "web_order_line_item_id" = 2000000104140536;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 10:42:27 Etc/GMT";
-//            "expires_date_ms" = 1753353747000;
-//            "expires_date_pst" = "2025-07-24 03:42:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 10:37:27 Etc/GMT";
-//            "purchase_date_ms" = 1753353447000;
-//            "purchase_date_pst" = "2025-07-24 03:37:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968723896;
-//            "web_order_line_item_id" = 2000000106367803;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 10:47:27 Etc/GMT";
-//            "expires_date_ms" = 1753354047000;
-//            "expires_date_pst" = "2025-07-24 03:47:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 10:42:27 Etc/GMT";
-//            "purchase_date_ms" = 1753353747000;
-//            "purchase_date_pst" = "2025-07-24 03:42:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968729634;
-//            "web_order_line_item_id" = 2000000106389799;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 10:52:27 Etc/GMT";
-//            "expires_date_ms" = 1753354347000;
-//            "expires_date_pst" = "2025-07-24 03:52:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 10:47:27 Etc/GMT";
-//            "purchase_date_ms" = 1753354047000;
-//            "purchase_date_pst" = "2025-07-24 03:47:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968734296;
-//            "web_order_line_item_id" = 2000000106390344;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 10:57:27 Etc/GMT";
-//            "expires_date_ms" = 1753354647000;
-//            "expires_date_pst" = "2025-07-24 03:57:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 10:52:27 Etc/GMT";
-//            "purchase_date_ms" = 1753354347000;
-//            "purchase_date_pst" = "2025-07-24 03:52:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968742598;
-//            "web_order_line_item_id" = 2000000106390957;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:02:27 Etc/GMT";
-//            "expires_date_ms" = 1753354947000;
-//            "expires_date_pst" = "2025-07-24 04:02:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 10:57:27 Etc/GMT";
-//            "purchase_date_ms" = 1753354647000;
-//            "purchase_date_pst" = "2025-07-24 03:57:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968747784;
-//            "web_order_line_item_id" = 2000000106391570;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:07:27 Etc/GMT";
-//            "expires_date_ms" = 1753355247000;
-//            "expires_date_pst" = "2025-07-24 04:07:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:02:27 Etc/GMT";
-//            "purchase_date_ms" = 1753354947000;
-//            "purchase_date_pst" = "2025-07-24 04:02:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968751441;
-//            "web_order_line_item_id" = 2000000106392187;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:12:27 Etc/GMT";
-//            "expires_date_ms" = 1753355547000;
-//            "expires_date_pst" = "2025-07-24 04:12:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:07:27 Etc/GMT";
-//            "purchase_date_ms" = 1753355247000;
-//            "purchase_date_pst" = "2025-07-24 04:07:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968757346;
-//            "web_order_line_item_id" = 2000000106392748;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:17:27 Etc/GMT";
-//            "expires_date_ms" = 1753355847000;
-//            "expires_date_pst" = "2025-07-24 04:17:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:12:27 Etc/GMT";
-//            "purchase_date_ms" = 1753355547000;
-//            "purchase_date_pst" = "2025-07-24 04:12:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968762429;
-//            "web_order_line_item_id" = 2000000106393387;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:22:27 Etc/GMT";
-//            "expires_date_ms" = 1753356147000;
-//            "expires_date_pst" = "2025-07-24 04:22:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:17:27 Etc/GMT";
-//            "purchase_date_ms" = 1753355847000;
-//            "purchase_date_pst" = "2025-07-24 04:17:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968767049;
-//            "web_order_line_item_id" = 2000000106393974;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:27:27 Etc/GMT";
-//            "expires_date_ms" = 1753356447000;
-//            "expires_date_pst" = "2025-07-24 04:27:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:22:27 Etc/GMT";
-//            "purchase_date_ms" = 1753356147000;
-//            "purchase_date_pst" = "2025-07-24 04:22:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968771492;
-//            "web_order_line_item_id" = 2000000106394570;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:32:27 Etc/GMT";
-//            "expires_date_ms" = 1753356747000;
-//            "expires_date_pst" = "2025-07-24 04:32:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:27:27 Etc/GMT";
-//            "purchase_date_ms" = 1753356447000;
-//            "purchase_date_pst" = "2025-07-24 04:27:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968775695;
-//            "web_order_line_item_id" = 2000000106395208;
-//        },
-//                {
-//            "expires_date" = "2025-07-24 11:37:27 Etc/GMT";
-//            "expires_date_ms" = 1753357047000;
-//            "expires_date_pst" = "2025-07-24 04:37:27 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = false;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 113;
-//            "purchase_date" = "2025-07-24 11:32:27 Etc/GMT";
-//            "purchase_date_ms" = 1753356747000;
-//            "purchase_date_pst" = "2025-07-24 04:32:27 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000968780290;
-//            "web_order_line_item_id" = 2000000106395876;
-//        },
-//                {
-//            "expires_date" = "2025-07-02 06:16:21 Etc/GMT";
-//            "expires_date_ms" = 1751436981000;
-//            "expires_date_pst" = "2025-07-01 23:16:21 America/Los_Angeles";
-//            "in_app_ownership_type" = PURCHASED;
-//            "is_in_intro_offer_period" = true;
-//            "is_trial_period" = false;
-//            "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//            "original_purchase_date_ms" = 1751436802000;
-//            "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//            "original_transaction_id" = 2000000952852273;
-//            "product_id" = 104;
-//            "purchase_date" = "2025-07-02 06:13:21 Etc/GMT";
-//            "purchase_date_ms" = 1751436801000;
-//            "purchase_date_pst" = "2025-07-01 23:13:21 America/Los_Angeles";
-//            quantity = 1;
-//            "transaction_id" = 2000000952852273;
-//            "web_order_line_item_id" = 2000000104137454;
-//        }
-//    );
-//    "original_application_version" = "1.0";
-//    "original_purchase_date" = "2013-08-01 07:00:00 Etc/GMT";
-//    "original_purchase_date_ms" = 1375340400000;
-//    "original_purchase_date_pst" = "2013-08-01 00:00:00 America/Los_Angeles";
-//    "receipt_creation_date" = "2025-08-01 07:06:24 Etc/GMT";
-//    "receipt_creation_date_ms" = 1754031984000;
-//    "receipt_creation_date_pst" = "2025-08-01 00:06:24 America/Los_Angeles";
-//    "receipt_type" = ProductionSandbox;
-//    "request_date" = "2025-08-01 07:06:33 Etc/GMT";
-//    "request_date_ms" = 1754031993447;
-//    "request_date_pst" = "2025-08-01 00:06:33 America/Los_Angeles";
-//    "version_external_identifier" = 0;
-//},
-//
-// "environment": Sandbox,
-// "latest_receipt_info": <__NSArrayI 0x1220aa680>(
-//{
-//    "expires_date" = "2025-07-28 08:23:44 Etc/GMT";
-//    "expires_date_ms" = 1753691024000;
-//    "expires_date_pst" = "2025-07-28 01:23:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 08:18:44 Etc/GMT";
-//    "purchase_date_ms" = 1753690724000;
-//    "purchase_date_pst" = "2025-07-28 01:18:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970934901;
-//    "web_order_line_item_id" = 2000000106727546;
-//},
-//{
-//    "expires_date" = "2025-07-28 08:18:44 Etc/GMT";
-//    "expires_date_ms" = 1753690724000;
-//    "expires_date_pst" = "2025-07-28 01:18:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 08:13:44 Etc/GMT";
-//    "purchase_date_ms" = 1753690424000;
-//    "purchase_date_pst" = "2025-07-28 01:13:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970929925;
-//    "web_order_line_item_id" = 2000000106726907;
-//},
-//{
-//    "expires_date" = "2025-07-28 08:13:44 Etc/GMT";
-//    "expires_date_ms" = 1753690424000;
-//    "expires_date_pst" = "2025-07-28 01:13:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 08:08:44 Etc/GMT";
-//    "purchase_date_ms" = 1753690124000;
-//    "purchase_date_pst" = "2025-07-28 01:08:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970924902;
-//    "web_order_line_item_id" = 2000000106726352;
-//},
-//{
-//    "expires_date" = "2025-07-28 08:08:44 Etc/GMT";
-//    "expires_date_ms" = 1753690124000;
-//    "expires_date_pst" = "2025-07-28 01:08:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 08:03:44 Etc/GMT";
-//    "purchase_date_ms" = 1753689824000;
-//    "purchase_date_pst" = "2025-07-28 01:03:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970920292;
-//    "web_order_line_item_id" = 2000000106725750;
-//},
-//{
-//    "expires_date" = "2025-07-28 08:03:44 Etc/GMT";
-//    "expires_date_ms" = 1753689824000;
-//    "expires_date_pst" = "2025-07-28 01:03:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:58:44 Etc/GMT";
-//    "purchase_date_ms" = 1753689524000;
-//    "purchase_date_pst" = "2025-07-28 00:58:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970915816;
-//    "web_order_line_item_id" = 2000000106725183;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:58:44 Etc/GMT";
-//    "expires_date_ms" = 1753689524000;
-//    "expires_date_pst" = "2025-07-28 00:58:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:53:44 Etc/GMT";
-//    "purchase_date_ms" = 1753689224000;
-//    "purchase_date_pst" = "2025-07-28 00:53:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970910953;
-//    "web_order_line_item_id" = 2000000106724580;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:53:44 Etc/GMT";
-//    "expires_date_ms" = 1753689224000;
-//    "expires_date_pst" = "2025-07-28 00:53:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:48:44 Etc/GMT";
-//    "purchase_date_ms" = 1753688924000;
-//    "purchase_date_pst" = "2025-07-28 00:48:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970905488;
-//    "web_order_line_item_id" = 2000000106724107;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:48:44 Etc/GMT";
-//    "expires_date_ms" = 1753688924000;
-//    "expires_date_pst" = "2025-07-28 00:48:44 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:43:44 Etc/GMT";
-//    "purchase_date_ms" = 1753688624000;
-//    "purchase_date_pst" = "2025-07-28 00:43:44 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970899912;
-//    "web_order_line_item_id" = 2000000106723494;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:43:40 Etc/GMT";
-//    "expires_date_ms" = 1753688620000;
-//    "expires_date_pst" = "2025-07-28 00:43:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:38:40 Etc/GMT";
-//    "purchase_date_ms" = 1753688320000;
-//    "purchase_date_pst" = "2025-07-28 00:38:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970892585;
-//    "web_order_line_item_id" = 2000000106722816;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:38:40 Etc/GMT";
-//    "expires_date_ms" = 1753688320000;
-//    "expires_date_pst" = "2025-07-28 00:38:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:33:40 Etc/GMT";
-//    "purchase_date_ms" = 1753688020000;
-//    "purchase_date_pst" = "2025-07-28 00:33:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970883985;
-//    "web_order_line_item_id" = 2000000106722240;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:33:40 Etc/GMT";
-//    "expires_date_ms" = 1753688020000;
-//    "expires_date_pst" = "2025-07-28 00:33:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:28:40 Etc/GMT";
-//    "purchase_date_ms" = 1753687720000;
-//    "purchase_date_pst" = "2025-07-28 00:28:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970878749;
-//    "web_order_line_item_id" = 2000000106721811;
-//},
-//{
-//    "expires_date" = "2025-07-28 07:28:40 Etc/GMT";
-//    "expires_date_ms" = 1753687720000;
-//    "expires_date_pst" = "2025-07-28 00:28:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-28 07:23:40 Etc/GMT";
-//    "purchase_date_ms" = 1753687420000;
-//    "purchase_date_pst" = "2025-07-28 00:23:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000970873852;
-//    "web_order_line_item_id" = 2000000106396477;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:37:27 Etc/GMT";
-//    "expires_date_ms" = 1753357047000;
-//    "expires_date_pst" = "2025-07-24 04:37:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:32:27 Etc/GMT";
-//    "purchase_date_ms" = 1753356747000;
-//    "purchase_date_pst" = "2025-07-24 04:32:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968780290;
-//    "web_order_line_item_id" = 2000000106395876;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:32:27 Etc/GMT";
-//    "expires_date_ms" = 1753356747000;
-//    "expires_date_pst" = "2025-07-24 04:32:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:27:27 Etc/GMT";
-//    "purchase_date_ms" = 1753356447000;
-//    "purchase_date_pst" = "2025-07-24 04:27:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968775695;
-//    "web_order_line_item_id" = 2000000106395208;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:27:27 Etc/GMT";
-//    "expires_date_ms" = 1753356447000;
-//    "expires_date_pst" = "2025-07-24 04:27:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:22:27 Etc/GMT";
-//    "purchase_date_ms" = 1753356147000;
-//    "purchase_date_pst" = "2025-07-24 04:22:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968771492;
-//    "web_order_line_item_id" = 2000000106394570;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:22:27 Etc/GMT";
-//    "expires_date_ms" = 1753356147000;
-//    "expires_date_pst" = "2025-07-24 04:22:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:17:27 Etc/GMT";
-//    "purchase_date_ms" = 1753355847000;
-//    "purchase_date_pst" = "2025-07-24 04:17:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968767049;
-//    "web_order_line_item_id" = 2000000106393974;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:17:27 Etc/GMT";
-//    "expires_date_ms" = 1753355847000;
-//    "expires_date_pst" = "2025-07-24 04:17:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:12:27 Etc/GMT";
-//    "purchase_date_ms" = 1753355547000;
-//    "purchase_date_pst" = "2025-07-24 04:12:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968762429;
-//    "web_order_line_item_id" = 2000000106393387;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:12:27 Etc/GMT";
-//    "expires_date_ms" = 1753355547000;
-//    "expires_date_pst" = "2025-07-24 04:12:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:07:27 Etc/GMT";
-//    "purchase_date_ms" = 1753355247000;
-//    "purchase_date_pst" = "2025-07-24 04:07:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968757346;
-//    "web_order_line_item_id" = 2000000106392748;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:07:27 Etc/GMT";
-//    "expires_date_ms" = 1753355247000;
-//    "expires_date_pst" = "2025-07-24 04:07:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 11:02:27 Etc/GMT";
-//    "purchase_date_ms" = 1753354947000;
-//    "purchase_date_pst" = "2025-07-24 04:02:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968751441;
-//    "web_order_line_item_id" = 2000000106392187;
-//},
-//{
-//    "expires_date" = "2025-07-24 11:02:27 Etc/GMT";
-//    "expires_date_ms" = 1753354947000;
-//    "expires_date_pst" = "2025-07-24 04:02:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 10:57:27 Etc/GMT";
-//    "purchase_date_ms" = 1753354647000;
-//    "purchase_date_pst" = "2025-07-24 03:57:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968747784;
-//    "web_order_line_item_id" = 2000000106391570;
-//},
-//{
-//    "expires_date" = "2025-07-24 10:57:27 Etc/GMT";
-//    "expires_date_ms" = 1753354647000;
-//    "expires_date_pst" = "2025-07-24 03:57:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 10:52:27 Etc/GMT";
-//    "purchase_date_ms" = 1753354347000;
-//    "purchase_date_pst" = "2025-07-24 03:52:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968742598;
-//    "web_order_line_item_id" = 2000000106390957;
-//},
-//{
-//    "expires_date" = "2025-07-24 10:52:27 Etc/GMT";
-//    "expires_date_ms" = 1753354347000;
-//    "expires_date_pst" = "2025-07-24 03:52:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 10:47:27 Etc/GMT";
-//    "purchase_date_ms" = 1753354047000;
-//    "purchase_date_pst" = "2025-07-24 03:47:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968734296;
-//    "web_order_line_item_id" = 2000000106390344;
-//},
-//{
-//    "expires_date" = "2025-07-24 10:47:27 Etc/GMT";
-//    "expires_date_ms" = 1753354047000;
-//    "expires_date_pst" = "2025-07-24 03:47:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 10:42:27 Etc/GMT";
-//    "purchase_date_ms" = 1753353747000;
-//    "purchase_date_pst" = "2025-07-24 03:42:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968729634;
-//    "web_order_line_item_id" = 2000000106389799;
-//},
-//{
-//    "expires_date" = "2025-07-24 10:42:27 Etc/GMT";
-//    "expires_date_ms" = 1753353747000;
-//    "expires_date_pst" = "2025-07-24 03:42:27 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 113;
-//    "purchase_date" = "2025-07-24 10:37:27 Etc/GMT";
-//    "purchase_date_ms" = 1753353447000;
-//    "purchase_date_pst" = "2025-07-24 03:37:27 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968723896;
-//    "web_order_line_item_id" = 2000000106367803;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:59:40 Etc/GMT";
-//    "expires_date_ms" = 1753343980000;
-//    "expires_date_pst" = "2025-07-24 00:59:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:54:40 Etc/GMT";
-//    "purchase_date_ms" = 1753343680000;
-//    "purchase_date_pst" = "2025-07-24 00:54:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968509643;
-//    "web_order_line_item_id" = 2000000106367181;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:54:40 Etc/GMT";
-//    "expires_date_ms" = 1753343680000;
-//    "expires_date_pst" = "2025-07-24 00:54:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:49:40 Etc/GMT";
-//    "purchase_date_ms" = 1753343380000;
-//    "purchase_date_pst" = "2025-07-24 00:49:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968501580;
-//    "web_order_line_item_id" = 2000000106366716;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:49:40 Etc/GMT";
-//    "expires_date_ms" = 1753343380000;
-//    "expires_date_pst" = "2025-07-24 00:49:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:46:40 Etc/GMT";
-//    "purchase_date_ms" = 1753343200000;
-//    "purchase_date_pst" = "2025-07-24 00:46:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968497256;
-//    "web_order_line_item_id" = 2000000106366382;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:46:40 Etc/GMT";
-//    "expires_date_ms" = 1753343200000;
-//    "expires_date_pst" = "2025-07-24 00:46:40 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:43:40 Etc/GMT";
-//    "purchase_date_ms" = 1753343020000;
-//    "purchase_date_pst" = "2025-07-24 00:43:40 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968493957;
-//    "web_order_line_item_id" = 2000000106365819;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:43:07 Etc/GMT";
-//    "expires_date_ms" = 1753342987000;
-//    "expires_date_pst" = "2025-07-24 00:43:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:40:07 Etc/GMT";
-//    "purchase_date_ms" = 1753342807000;
-//    "purchase_date_pst" = "2025-07-24 00:40:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968489642;
-//    "web_order_line_item_id" = 2000000106365472;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:40:07 Etc/GMT";
-//    "expires_date_ms" = 1753342807000;
-//    "expires_date_pst" = "2025-07-24 00:40:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:37:07 Etc/GMT";
-//    "purchase_date_ms" = 1753342627000;
-//    "purchase_date_pst" = "2025-07-24 00:37:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968487086;
-//    "web_order_line_item_id" = 2000000106365097;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:37:07 Etc/GMT";
-//    "expires_date_ms" = 1753342627000;
-//    "expires_date_pst" = "2025-07-24 00:37:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:34:07 Etc/GMT";
-//    "purchase_date_ms" = 1753342447000;
-//    "purchase_date_pst" = "2025-07-24 00:34:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968483193;
-//    "web_order_line_item_id" = 2000000106364646;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:34:07 Etc/GMT";
-//    "expires_date_ms" = 1753342447000;
-//    "expires_date_pst" = "2025-07-24 00:34:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:31:07 Etc/GMT";
-//    "purchase_date_ms" = 1753342267000;
-//    "purchase_date_pst" = "2025-07-24 00:31:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968479095;
-//    "web_order_line_item_id" = 2000000106364323;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:31:07 Etc/GMT";
-//    "expires_date_ms" = 1753342267000;
-//    "expires_date_pst" = "2025-07-24 00:31:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:28:07 Etc/GMT";
-//    "purchase_date_ms" = 1753342087000;
-//    "purchase_date_pst" = "2025-07-24 00:28:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968474286;
-//    "web_order_line_item_id" = 2000000106363876;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:28:07 Etc/GMT";
-//    "expires_date_ms" = 1753342087000;
-//    "expires_date_pst" = "2025-07-24 00:28:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:25:07 Etc/GMT";
-//    "purchase_date_ms" = 1753341907000;
-//    "purchase_date_pst" = "2025-07-24 00:25:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968471555;
-//    "web_order_line_item_id" = 2000000106363538;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:25:07 Etc/GMT";
-//    "expires_date_ms" = 1753341907000;
-//    "expires_date_pst" = "2025-07-24 00:25:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:22:07 Etc/GMT";
-//    "purchase_date_ms" = 1753341727000;
-//    "purchase_date_pst" = "2025-07-24 00:22:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968467849;
-//    "web_order_line_item_id" = 2000000106363251;
-//},
-//{
-//    "expires_date" = "2025-07-24 07:22:07 Etc/GMT";
-//    "expires_date_ms" = 1753341727000;
-//    "expires_date_pst" = "2025-07-24 00:22:07 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 07:19:07 Etc/GMT";
-//    "purchase_date_ms" = 1753341547000;
-//    "purchase_date_pst" = "2025-07-24 00:19:07 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968464027;
-//    "web_order_line_item_id" = 2000000106343340;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:26:55 Etc/GMT";
-//    "expires_date_ms" = 1753327615000;
-//    "expires_date_pst" = "2025-07-23 20:26:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:23:55 Etc/GMT";
-//    "purchase_date_ms" = 1753327435000;
-//    "purchase_date_pst" = "2025-07-23 20:23:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968276297;
-//    "web_order_line_item_id" = 2000000106343097;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:23:55 Etc/GMT";
-//    "expires_date_ms" = 1753327435000;
-//    "expires_date_pst" = "2025-07-23 20:23:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:20:55 Etc/GMT";
-//    "purchase_date_ms" = 1753327255000;
-//    "purchase_date_pst" = "2025-07-23 20:20:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968273608;
-//    "web_order_line_item_id" = 2000000106342875;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:20:55 Etc/GMT";
-//    "expires_date_ms" = 1753327255000;
-//    "expires_date_pst" = "2025-07-23 20:20:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:17:55 Etc/GMT";
-//    "purchase_date_ms" = 1753327075000;
-//    "purchase_date_pst" = "2025-07-23 20:17:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968270607;
-//    "web_order_line_item_id" = 2000000106342623;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:17:55 Etc/GMT";
-//    "expires_date_ms" = 1753327075000;
-//    "expires_date_pst" = "2025-07-23 20:17:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:14:55 Etc/GMT";
-//    "purchase_date_ms" = 1753326895000;
-//    "purchase_date_pst" = "2025-07-23 20:14:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968268155;
-//    "web_order_line_item_id" = 2000000106342386;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:14:55 Etc/GMT";
-//    "expires_date_ms" = 1753326895000;
-//    "expires_date_pst" = "2025-07-23 20:14:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:11:55 Etc/GMT";
-//    "purchase_date_ms" = 1753326715000;
-//    "purchase_date_pst" = "2025-07-23 20:11:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968265423;
-//    "web_order_line_item_id" = 2000000106342158;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:11:55 Etc/GMT";
-//    "expires_date_ms" = 1753326715000;
-//    "expires_date_pst" = "2025-07-23 20:11:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:08:55 Etc/GMT";
-//    "purchase_date_ms" = 1753326535000;
-//    "purchase_date_pst" = "2025-07-23 20:08:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968264037;
-//    "web_order_line_item_id" = 2000000106341926;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:08:55 Etc/GMT";
-//    "expires_date_ms" = 1753326535000;
-//    "expires_date_pst" = "2025-07-23 20:08:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:05:55 Etc/GMT";
-//    "purchase_date_ms" = 1753326355000;
-//    "purchase_date_pst" = "2025-07-23 20:05:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968262137;
-//    "web_order_line_item_id" = 2000000106341705;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:05:55 Etc/GMT";
-//    "expires_date_ms" = 1753326355000;
-//    "expires_date_pst" = "2025-07-23 20:05:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 03:02:55 Etc/GMT";
-//    "purchase_date_ms" = 1753326175000;
-//    "purchase_date_pst" = "2025-07-23 20:02:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968259358;
-//    "web_order_line_item_id" = 2000000106341438;
-//},
-//{
-//    "expires_date" = "2025-07-24 03:02:55 Etc/GMT";
-//    "expires_date_ms" = 1753326175000;
-//    "expires_date_pst" = "2025-07-23 20:02:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:59:55 Etc/GMT";
-//    "purchase_date_ms" = 1753325995000;
-//    "purchase_date_pst" = "2025-07-23 19:59:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968257896;
-//    "web_order_line_item_id" = 2000000106341193;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:59:55 Etc/GMT";
-//    "expires_date_ms" = 1753325995000;
-//    "expires_date_pst" = "2025-07-23 19:59:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:56:55 Etc/GMT";
-//    "purchase_date_ms" = 1753325815000;
-//    "purchase_date_pst" = "2025-07-23 19:56:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968254516;
-//    "web_order_line_item_id" = 2000000106340946;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:56:55 Etc/GMT";
-//    "expires_date_ms" = 1753325815000;
-//    "expires_date_pst" = "2025-07-23 19:56:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:53:55 Etc/GMT";
-//    "purchase_date_ms" = 1753325635000;
-//    "purchase_date_pst" = "2025-07-23 19:53:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968252623;
-//    "web_order_line_item_id" = 2000000106340792;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:53:55 Etc/GMT";
-//    "expires_date_ms" = 1753325635000;
-//    "expires_date_pst" = "2025-07-23 19:53:55 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:50:55 Etc/GMT";
-//    "purchase_date_ms" = 1753325455000;
-//    "purchase_date_pst" = "2025-07-23 19:50:55 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968251675;
-//    "web_order_line_item_id" = 2000000106338166;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:18:54 Etc/GMT";
-//    "expires_date_ms" = 1753323534000;
-//    "expires_date_pst" = "2025-07-23 19:18:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:15:54 Etc/GMT";
-//    "purchase_date_ms" = 1753323354000;
-//    "purchase_date_pst" = "2025-07-23 19:15:54 America/Los_Angeles";
-//    quantity = 1;
-//
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968231697;
-//    "web_order_line_item_id" = 2000000106337954;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:15:54 Etc/GMT";
-//    "expires_date_ms" = 1753323354000;
-//    "expires_date_pst" = "2025-07-23 19:15:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:12:54 Etc/GMT";
-//    "purchase_date_ms" = 1753323174000;
-//    "purchase_date_pst" = "2025-07-23 19:12:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968230645;
-//    "web_order_line_item_id" = 2000000106337717;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:12:54 Etc/GMT";
-//    "expires_date_ms" = 1753323174000;
-//    "expires_date_pst" = "2025-07-23 19:12:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:09:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322994000;
-//    "purchase_date_pst" = "2025-07-23 19:09:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968228509;
-//    "web_order_line_item_id" = 2000000106337521;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:09:54 Etc/GMT";
-//    "expires_date_ms" = 1753322994000;
-//    "expires_date_pst" = "2025-07-23 19:09:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:06:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322814000;
-//    "purchase_date_pst" = "2025-07-23 19:06:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968227080;
-//    "web_order_line_item_id" = 2000000106337313;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:06:54 Etc/GMT";
-//    "expires_date_ms" = 1753322814000;
-//    "expires_date_pst" = "2025-07-23 19:06:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:03:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322634000;
-//    "purchase_date_pst" = "2025-07-23 19:03:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968225683;
-//    "web_order_line_item_id" = 2000000106337120;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:03:54 Etc/GMT";
-//    "expires_date_ms" = 1753322634000;
-//    "expires_date_pst" = "2025-07-23 19:03:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 02:00:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322454000;
-//    "purchase_date_pst" = "2025-07-23 19:00:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968224651;
-//    "web_order_line_item_id" = 2000000106336921;
-//},
-//{
-//    "expires_date" = "2025-07-24 02:00:54 Etc/GMT";
-//    "expires_date_ms" = 1753322454000;
-//    "expires_date_pst" = "2025-07-23 19:00:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:57:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322274000;
-//    "purchase_date_pst" = "2025-07-23 18:57:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968224016;
-//    "web_order_line_item_id" = 2000000106336759;
-//},
-//{
-//    "expires_date" = "2025-07-24 01:57:54 Etc/GMT";
-//    "expires_date_ms" = 1753322274000;
-//    "expires_date_pst" = "2025-07-23 18:57:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:54:54 Etc/GMT";
-//    "purchase_date_ms" = 1753322094000;
-//    "purchase_date_pst" = "2025-07-23 18:54:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968222807;
-//    "web_order_line_item_id" = 2000000106336549;
-//},
-//{
-//    "expires_date" = "2025-07-24 01:54:54 Etc/GMT";
-//    "expires_date_ms" = 1753322094000;
-//    "expires_date_pst" = "2025-07-23 18:54:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:51:54 Etc/GMT";
-//    "purchase_date_ms" = 1753321914000;
-//    "purchase_date_pst" = "2025-07-23 18:51:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968221504;
-//    "web_order_line_item_id" = 2000000106336359;
-//},
-//{
-//    "expires_date" = "2025-07-24 01:51:54 Etc/GMT";
-//    "expires_date_ms" = 1753321914000;
-//    "expires_date_pst" = "2025-07-23 18:51:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:48:54 Etc/GMT";
-//    "purchase_date_ms" = 1753321734000;
-//    "purchase_date_pst" = "2025-07-23 18:48:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968220080;
-//    "web_order_line_item_id" = 2000000106336188;
-//},
-//{
-//    "expires_date" = "2025-07-24 01:48:54 Etc/GMT";
-//    "expires_date_ms" = 1753321734000;
-//    "expires_date_pst" = "2025-07-23 18:48:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:45:54 Etc/GMT";
-//    "purchase_date_ms" = 1753321554000;
-//    "purchase_date_pst" = "2025-07-23 18:45:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968219093;
-//    "web_order_line_item_id" = 2000000106336064;
-//},
-//{
-//    "expires_date" = "2025-07-24 01:45:54 Etc/GMT";
-//    "expires_date_ms" = 1753321554000;
-//    "expires_date_pst" = "2025-07-23 18:45:54 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-24 01:42:54 Etc/GMT";
-//    "purchase_date_ms" = 1753321374000;
-//    "purchase_date_pst" = "2025-07-23 18:42:54 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000968218392;
-//    "web_order_line_item_id" = 2000000106276612;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:49:24 Etc/GMT";
-//    "expires_date_ms" = 1753271364000;
-//    "expires_date_pst" = "2025-07-23 04:49:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:46:24 Etc/GMT";
-//    "purchase_date_ms" = 1753271184000;
-//    "purchase_date_pst" = "2025-07-23 04:46:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967854038;
-//    "web_order_line_item_id" = 2000000106276342;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:46:24 Etc/GMT";
-//    "expires_date_ms" = 1753271184000;
-//    "expires_date_pst" = "2025-07-23 04:46:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:43:24 Etc/GMT";
-//    "purchase_date_ms" = 1753271004000;
-//    "purchase_date_pst" = "2025-07-23 04:43:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967852305;
-//    "web_order_line_item_id" = 2000000106275941;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:43:24 Etc/GMT";
-//    "expires_date_ms" = 1753271004000;
-//    "expires_date_pst" = "2025-07-23 04:43:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:40:24 Etc/GMT";
-//    "purchase_date_ms" = 1753270824000;
-//    "purchase_date_pst" = "2025-07-23 04:40:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967849797;
-//    "web_order_line_item_id" = 2000000106275609;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:40:24 Etc/GMT";
-//    "expires_date_ms" = 1753270824000;
-//    "expires_date_pst" = "2025-07-23 04:40:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:37:24 Etc/GMT";
-//    "purchase_date_ms" = 1753270644000;
-//    "purchase_date_pst" = "2025-07-23 04:37:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967847326;
-//    "web_order_line_item_id" = 2000000106275248;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:37:24 Etc/GMT";
-//    "expires_date_ms" = 1753270644000;
-//    "expires_date_pst" = "2025-07-23 04:37:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:34:24 Etc/GMT";
-//    "purchase_date_ms" = 1753270464000;
-//    "purchase_date_pst" = "2025-07-23 04:34:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967844943;
-//    "web_order_line_item_id" = 2000000106274999;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:34:24 Etc/GMT";
-//    "expires_date_ms" = 1753270464000;
-//    "expires_date_pst" = "2025-07-23 04:34:24 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:31:24 Etc/GMT";
-//    "purchase_date_ms" = 1753270284000;
-//    "purchase_date_pst" = "2025-07-23 04:31:24 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967843563;
-//    "web_order_line_item_id" = 2000000106274355;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:29:43 Etc/GMT";
-//    "expires_date_ms" = 1753270183000;
-//    "expires_date_pst" = "2025-07-23 04:29:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:26:43 Etc/GMT";
-//    "purchase_date_ms" = 1753270003000;
-//    "purchase_date_pst" = "2025-07-23 04:26:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967838531;
-//    "web_order_line_item_id" = 2000000106274003;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:26:43 Etc/GMT";
-//    "expires_date_ms" = 1753270003000;
-//    "expires_date_pst" = "2025-07-23 04:26:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:23:43 Etc/GMT";
-//    "purchase_date_ms" = 1753269823000;
-//    "purchase_date_pst" = "2025-07-23 04:23:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967836340;
-//    "web_order_line_item_id" = 2000000106273656;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:23:43 Etc/GMT";
-//    "expires_date_ms" = 1753269823000;
-//    "expires_date_pst" = "2025-07-23 04:23:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:20:43 Etc/GMT";
-//    "purchase_date_ms" = 1753269643000;
-//    "purchase_date_pst" = "2025-07-23 04:20:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967832786;
-//    "web_order_line_item_id" = 2000000106273272;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:20:43 Etc/GMT";
-//    "expires_date_ms" = 1753269643000;
-//    "expires_date_pst" = "2025-07-23 04:20:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:17:43 Etc/GMT";
-//    "purchase_date_ms" = 1753269463000;
-//    "purchase_date_pst" = "2025-07-23 04:17:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967830187;
-//    "web_order_line_item_id" = 2000000106272895;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:17:43 Etc/GMT";
-//    "expires_date_ms" = 1753269463000;
-//    "expires_date_pst" = "2025-07-23 04:17:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:14:43 Etc/GMT";
-//    "purchase_date_ms" = 1753269283000;
-//    "purchase_date_pst" = "2025-07-23 04:14:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967826163;
-//    "web_order_line_item_id" = 2000000106272680;
-//},
-//{
-//    "expires_date" = "2025-07-23 11:14:43 Etc/GMT";
-//    "expires_date_ms" = 1753269283000;
-//    "expires_date_pst" = "2025-07-23 04:14:43 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 11:11:43 Etc/GMT";
-//    "purchase_date_ms" = 1753269103000;
-//    "purchase_date_pst" = "2025-07-23 04:11:43 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967824364;
-//    "web_order_line_item_id" = 2000000106270408;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:56:06 Etc/GMT";
-//    "expires_date_ms" = 1753268166000;
-//    "expires_date_pst" = "2025-07-23 03:56:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:53:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267986000;
-//    "purchase_date_pst" = "2025-07-23 03:53:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967807069;
-//    "web_order_line_item_id" = 2000000106270049;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:53:06 Etc/GMT";
-//    "expires_date_ms" = 1753267986000;
-//    "expires_date_pst" = "2025-07-23 03:53:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:50:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267806000;
-//    "purchase_date_pst" = "2025-07-23 03:50:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967804084;
-//    "web_order_line_item_id" = 2000000106269695;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:50:06 Etc/GMT";
-//    "expires_date_ms" = 1753267806000;
-//    "expires_date_pst" = "2025-07-23 03:50:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:47:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267626000;
-//    "purchase_date_pst" = "2025-07-23 03:47:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967799519;
-//    "web_order_line_item_id" = 2000000106269341;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:47:06 Etc/GMT";
-//    "expires_date_ms" = 1753267626000;
-//    "expires_date_pst" = "2025-07-23 03:47:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:44:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267446000;
-//    "purchase_date_pst" = "2025-07-23 03:44:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967795477;
-//    "web_order_line_item_id" = 2000000106268937;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:44:06 Etc/GMT";
-//    "expires_date_ms" = 1753267446000;
-//    "expires_date_pst" = "2025-07-23 03:44:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:41:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267266000;
-//    "purchase_date_pst" = "2025-07-23 03:41:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967791965;
-//    "web_order_line_item_id" = 2000000106268592;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:41:06 Etc/GMT";
-//    "expires_date_ms" = 1753267266000;
-//    "expires_date_pst" = "2025-07-23 03:41:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:38:06 Etc/GMT";
-//    "purchase_date_ms" = 1753267086000;
-//    "purchase_date_pst" = "2025-07-23 03:38:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967790324;
-//    "web_order_line_item_id" = 2000000106268190;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:38:06 Etc/GMT";
-//    "expires_date_ms" = 1753267086000;
-//    "expires_date_pst" = "2025-07-23 03:38:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:35:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266906000;
-//    "purchase_date_pst" = "2025-07-23 03:35:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967787660;
-//    "web_order_line_item_id" = 2000000106267815;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:35:06 Etc/GMT";
-//    "expires_date_ms" = 1753266906000;
-//    "expires_date_pst" = "2025-07-23 03:35:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:32:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266726000;
-//    "purchase_date_pst" = "2025-07-23 03:32:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967785419;
-//    "web_order_line_item_id" = 2000000106267400;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:32:06 Etc/GMT";
-//    "expires_date_ms" = 1753266726000;
-//    "expires_date_pst" = "2025-07-23 03:32:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:29:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266546000;
-//    "purchase_date_pst" = "2025-07-23 03:29:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967783009;
-//    "web_order_line_item_id" = 2000000106267040;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:29:06 Etc/GMT";
-//    "expires_date_ms" = 1753266546000;
-//    "expires_date_pst" = "2025-07-23 03:29:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:26:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266366000;
-//    "purchase_date_pst" = "2025-07-23 03:26:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967780246;
-//    "web_order_line_item_id" = 2000000106266606;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:26:06 Etc/GMT";
-//    "expires_date_ms" = 1753266366000;
-//    "expires_date_pst" = "2025-07-23 03:26:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:23:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266186000;
-//    "purchase_date_pst" = "2025-07-23 03:23:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967777494;
-//    "web_order_line_item_id" = 2000000106266321;
-//},
-//{
-//    "expires_date" = "2025-07-23 10:23:06 Etc/GMT";
-//    "expires_date_ms" = 1753266186000;
-//    "expires_date_pst" = "2025-07-23 03:23:06 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 103;
-//    "purchase_date" = "2025-07-23 10:20:06 Etc/GMT";
-//    "purchase_date_ms" = 1753266006000;
-//    "purchase_date_pst" = "2025-07-23 03:20:06 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000967775250;
-//    "web_order_line_item_id" = 2000000104140895;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:49:21 Etc/GMT";
-//    "expires_date_ms" = 1751438961000;
-//    "expires_date_pst" = "2025-07-01 23:49:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:46:21 Etc/GMT";
-//    "purchase_date_ms" = 1751438781000;
-//    "purchase_date_pst" = "2025-07-01 23:46:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952884046;
-//    "web_order_line_item_id" = 2000000104140536;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:46:21 Etc/GMT";
-//    "expires_date_ms" = 1751438781000;
-//    "expires_date_pst" = "2025-07-01 23:46:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:43:21 Etc/GMT";
-//    "purchase_date_ms" = 1751438601000;
-//    "purchase_date_pst" = "2025-07-01 23:43:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952881119;
-//    "web_order_line_item_id" = 2000000104140209;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:43:21 Etc/GMT";
-//    "expires_date_ms" = 1751438601000;
-//    "expires_date_pst" = "2025-07-01 23:43:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:40:21 Etc/GMT";
-//    "purchase_date_ms" = 1751438421000;
-//    "purchase_date_pst" = "2025-07-01 23:40:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952877553;
-//    "web_order_line_item_id" = 2000000104139866;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:40:21 Etc/GMT";
-//    "expires_date_ms" = 1751438421000;
-//    "expires_date_pst" = "2025-07-01 23:40:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:37:21 Etc/GMT";
-//    "purchase_date_ms" = 1751438241000;
-//    "purchase_date_pst" = "2025-07-01 23:37:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952874345;
-//    "web_order_line_item_id" = 2000000104139543;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:37:21 Etc/GMT";
-//    "expires_date_ms" = 1751438241000;
-//    "expires_date_pst" = "2025-07-01 23:37:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:34:21 Etc/GMT";
-//    "purchase_date_ms" = 1751438061000;
-//    "purchase_date_pst" = "2025-07-01 23:34:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952872226;
-//    "web_order_line_item_id" = 2000000104139213;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:34:21 Etc/GMT";
-//    "expires_date_ms" = 1751438061000;
-//    "expires_date_pst" = "2025-07-01 23:34:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:31:21 Etc/GMT";
-//    "purchase_date_ms" = 1751437881000;
-//    "purchase_date_pst" = "2025-07-01 23:31:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952870077;
-//    "web_order_line_item_id" = 2000000104138854;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:31:21 Etc/GMT";
-//    "expires_date_ms" = 1751437881000;
-//    "expires_date_pst" = "2025-07-01 23:31:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:28:21 Etc/GMT";
-//    "purchase_date_ms" = 1751437701000;
-//    "purchase_date_pst" = "2025-07-01 23:28:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952866857;
-//    "web_order_line_item_id" = 2000000104138534;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:28:21 Etc/GMT";
-//    "expires_date_ms" = 1751437701000;
-//    "expires_date_pst" = "2025-07-01 23:28:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:25:21 Etc/GMT";
-//    "purchase_date_ms" = 1751437521000;
-//    "purchase_date_pst" = "2025-07-01 23:25:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952863866;
-//    "web_order_line_item_id" = 2000000104138266;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:25:21 Etc/GMT";
-//    "expires_date_ms" = 1751437521000;
-//    "expires_date_pst" = "2025-07-01 23:25:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:22:21 Etc/GMT";
-//    "purchase_date_ms" = 1751437341000;
-//    "purchase_date_pst" = "2025-07-01 23:22:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952860684;
-//    "web_order_line_item_id" = 2000000104137890;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:22:21 Etc/GMT";
-//    "expires_date_ms" = 1751437341000;
-//    "expires_date_pst" = "2025-07-01 23:22:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:19:21 Etc/GMT";
-//    "purchase_date_ms" = 1751437161000;
-//    "purchase_date_pst" = "2025-07-01 23:19:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952857066;
-//    "web_order_line_item_id" = 2000000104137652;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:19:21 Etc/GMT";
-//    "expires_date_ms" = 1751437161000;
-//    "expires_date_pst" = "2025-07-01 23:19:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = false;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:16:21 Etc/GMT";
-//    "purchase_date_ms" = 1751436981000;
-//    "purchase_date_pst" = "2025-07-01 23:16:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952854422;
-//    "web_order_line_item_id" = 2000000104137455;
-//},
-//{
-//    "expires_date" = "2025-07-02 06:16:21 Etc/GMT";
-//    "expires_date_ms" = 1751436981000;
-//    "expires_date_pst" = "2025-07-01 23:16:21 America/Los_Angeles";
-//    "in_app_ownership_type" = PURCHASED;
-//    "is_in_intro_offer_period" = true;
-//    "is_trial_period" = false;
-//    "original_purchase_date" = "2025-07-02 06:13:22 Etc/GMT";
-//    "original_purchase_date_ms" = 1751436802000;
-//    "original_purchase_date_pst" = "2025-07-01 23:13:22 America/Los_Angeles";
-//    "original_transaction_id" = 2000000952852273;
-//    "product_id" = 104;
-//    "purchase_date" = "2025-07-02 06:13:21 Etc/GMT";
-//    "purchase_date_ms" = 1751436801000;
-//    "purchase_date_pst" = "2025-07-01 23:13:21 America/Los_Angeles";
-//    quantity = 1;
-//    "subscription_group_identifier" = 21630789;
-//    "transaction_id" = 2000000952852273;
-//    "web_order_line_item_id" = 2000000104137454;
-//}
-//)
-//]

+ 25 - 5
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -31,10 +31,19 @@ public class PurchaseManager: NSObject {
             PurchaseProduct(productId: "101", period: .month),//增加月付费
             PurchaseProduct(productId: "102", period: .year),
             PurchaseProduct(productId: "103", period: .week(.week)),
-            PurchaseProduct(productId: "113", period: .week(.weekPromotional1))
+            PurchaseProduct(productId: "113", period: .week(.weekPromotional1)),
+            
+            PurchaseProduct(productId: "201", period: .purchase(.videoNum1)),
+            PurchaseProduct(productId: "201", period: .purchase(.videoNum1)),
+            PurchaseProduct(productId: "201", period: .purchase(.videoNum1)),
         ]
     }()
 
+
+    lazy var purchaseNumProducts: [String] = {
+        return ["201","202","203"]
+    }()
+    
     struct Config {
         static let verifyUrl = "https://buy.itunes.apple.com/verifyReceipt"
         static let sandBoxUrl = "https://sandbox.itunes.apple.com/verifyReceipt"
@@ -154,6 +163,10 @@ public class PurchaseManager: NSObject {
         return purchaseProducts.first(where: { $0.productId == productId })?.period ?? .none
     }
 
+    func premiumPeriod(productId: String) -> PremiumPeriod? {
+        return purchaseProducts.first(where: { $0.productId == productId })?.period
+    }
+    
     // 时间周期对应的商品id
     func productId(for period: PremiumPeriod) -> String? {
         return purchaseProducts.first(where: { $0.period == period })?.productId
@@ -486,7 +499,7 @@ extension PurchaseManager {
             guard let self = self else { return }
             if let data = data,
                let jsonResponse = try? JSONSerialization.jsonObject(with: data) as? [String: Any] {
-//                debugPrint("PurchaseManager verifyPayResult = \(jsonResponse)")
+                debugPrint("PurchaseManager verifyPayResult = \(jsonResponse)")
                 let status = jsonResponse["status"]
                 if let status = status as? String, status == "21007" {
                     self.verifyPayResult(transaction: transaction, useSandBox: true)
@@ -518,6 +531,11 @@ extension PurchaseManager {
     }
 
     func handlerPayResult(transaction: SKPaymentTransaction, resp: [String: Any]) {
+        
+        //购买视频次数相关
+        //分析处理购买消耗品的逻辑处理
+        analyzeDataReceiptForPurchase(resp: resp)
+        
         var isLifetime = false
         // 终生会员
         if let receipt = resp["receipt"] as? [String: Any],
@@ -568,11 +586,11 @@ extension PurchaseManager {
         guard !resp.isEmpty else {
             return false
         }
-        
+
         //取当前已生效的订单号
         guard let info = resp["latest_receipt_info"] as? [[String: Any]]
         else { return false}
-        
+
         /*
         pending_renewal_info={
             "auto_renew_product_id" = 102;
@@ -632,7 +650,9 @@ extension PurchaseManager {
 
         // 创建数据任务
         let task = URLSession.shared.dataTask(with: request) { data, _, error in
-            completion(data, error)
+            DispatchQueue.main.async{
+                completion(data, error)
+            }
         }
 
         // 启动任务

+ 147 - 0
AIEmoji/Common/Tool/LanguageManager.swift

@@ -0,0 +1,147 @@
+//
+//  LanguageManager.swift
+//  TSLiveWallpaper
+//
+//  Created by 100Years on 2025/7/10.
+//
+
+
+// 主工程中
+class MainLocalizationProvider: LocalizationProvider {
+    func localizedString(for key: String) -> String {
+        // 主工程自定义逻辑
+        return LanguageManager.shared.localizedString(for: key)
+    }
+
+    func isArabic() -> Bool {
+        return LanguageManager.shared.isArabic
+    }
+}
+
+class LanguageManager {
+    static let shared = LanguageManager()
+    
+    private let userDefaultsKey = "SelectedAppLanguage"
+    private var bundle: Bundle?
+    
+    // 支持的语言列表
+    enum AppLanguage: String, CaseIterable {
+        case system = "system" // 跟随系统
+        case en = "en"    // 英语
+        case zhHans = "zh-Hans" // 中文简体
+        case ko = "ko"    // 韩语
+        case es = "es"    // 西班牙
+        case pt = "pt-PT"    // 葡萄牙
+        case ja = "ja"    // 日语
+        case de = "de"    // 德
+        case zhHant = "zh-Hant" // 中文简体
+
+        var displayName: String {
+            switch self {
+            case .system: return "Follow System".localized
+            case .en: return "English"
+            case .zhHans: return "简体中文"
+            case .ja: return "日本語"
+            case .zhHant: return "繁體中文"
+            case .es: return "Español"
+            case .ko: return "한국어"
+            case .de: return "Deutsch"
+            case .pt: return "Português"
+            }
+        }
+        
+        var flag: String {
+            switch self {
+            case .system: return "language_System"
+            case .en: return "🇺🇸"
+            case .ja: return "🇯🇵"
+            case .zhHans: return "🇨🇳"
+            case .zhHant: return "🇭🇰"
+            case .es: return "🇪🇸"
+            case .ko: return "🇰🇷"
+            case .de: return "🇩🇪"
+            case .pt: return "🇧🇷"
+            }
+        }
+
+    }
+    
+    var isArabic:Bool {
+        return false
+    }
+    
+    // 当前语言
+    var currentLanguage: AppLanguage {
+        get {
+            // 先从用户选择中读取
+            if let savedLanguage = UserDefaults.standard.string(forKey: userDefaultsKey),
+               let language = AppLanguage(rawValue: savedLanguage) {
+                return language
+            }
+            
+            // 没有用户选择,则根据系统语言自动选择
+            return preferredLanguage(for: Locale.preferredLanguages.first)
+        }
+        set {
+            UserDefaults.standard.set(newValue.rawValue, forKey: userDefaultsKey)
+            setLanguage(newValue)
+        }
+    }
+    
+    var followSystem:Bool{
+        return UserDefaults.standard.string(forKey: userDefaultsKey) == nil ? true : false
+    }
+    
+    // 初始化
+    private init() {
+        // 初始化时设置当前语言
+        setLanguage(currentLanguage)
+        LocalizationManager.sharedProvider = MainLocalizationProvider()
+    }
+    
+    // 根据系统语言选择最合适的应用语言
+    private func preferredLanguage(for systemLanguage: String?) -> AppLanguage {
+        guard let systemLanguage = systemLanguage else { return .en }
+        
+        // 处理中文情况
+        if systemLanguage.hasPrefix("zh-") {
+            if systemLanguage.contains("Hans") { // 简体中文
+                return .zhHant // 简体中文使用繁体中文显示
+            }
+            return .zhHant // 其他中文变体使用繁体中文
+        }
+        
+        // 检查是否支持系统语言
+        for language in AppLanguage.allCases {
+            if systemLanguage.hasPrefix(language.rawValue) {
+                return language
+            }
+        }
+        
+        // 默认英语
+        return .en
+    }
+    
+    // 设置语言并加载对应的语言包
+    private func setLanguage(_ language: AppLanguage) {
+        guard let path = Bundle.main.path(forResource: language.rawValue, ofType: "lproj") else {
+            bundle = nil
+            return
+        }
+        bundle = Bundle(path: path)
+        
+        // 发送语言变更通知
+        NotificationCenter.default.post(name: .languageChanged, object: nil)
+    }
+    
+    // 本地化字符串方法
+    func localizedString(for key: String, value: String? = nil) -> String {
+        let value = value ?? key
+        return bundle?.localizedString(forKey: key, value: value, table: nil) ?? Bundle.main.localizedString(forKey: key, value: value, table: nil)
+    }
+}
+
+// 语言变更通知
+extension Notification.Name {
+    static let languageChanged = Notification.Name("LanguageChangedNotification")
+}

+ 1 - 1
AIEmoji/Common/View/TSPhotoPickerManager/TSPhotoPickerManager.swift

@@ -45,7 +45,7 @@ class TSPhotoPickerManager: NSObject {
             completion(true)
         case .notDetermined:
             PHPhotoLibrary.requestAuthorization { newStatus in
-                DispatchQueue.main.async {
+                DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
                     completion(newStatus == .authorized)
                 }
             }