Kaynağa Gözat

Add AI assist subscription check in WritefullManager (#24428)

* Add AI assist subscription check when updating subscription in WritefullManager

* move AI assist check in WritefullController

GitOrigin-RevId: 0327e1c19e14e554fb707dc1d2840b7147bdf1d1
Domagoj Kriskovic 1 yıl önce
ebeveyn
işleme
4e27add5b7

+ 13 - 0
services/web/app/src/Features/Subscription/SubscriptionLocator.js

@@ -2,6 +2,10 @@ const { callbackifyAll } = require('@overleaf/promise-utils')
 const { Subscription } = require('../../models/Subscription')
 const { Subscription } = require('../../models/Subscription')
 const { DeletedSubscription } = require('../../models/DeletedSubscription')
 const { DeletedSubscription } = require('../../models/DeletedSubscription')
 const logger = require('@overleaf/logger')
 const logger = require('@overleaf/logger')
+const {
+  AI_ADD_ON_CODE,
+  isStandaloneAiAddOnPlanCode,
+} = require('./RecurlyEntities')
 require('./GroupPlansData') // make sure dynamic group plans are loaded
 require('./GroupPlansData') // make sure dynamic group plans are loaded
 
 
 const SubscriptionLocator = {
 const SubscriptionLocator = {
@@ -114,6 +118,15 @@ const SubscriptionLocator = {
     }).exec()
     }).exec()
   },
   },
 
 
+  async hasAiAssist(userOrId) {
+    const userId = SubscriptionLocator._getUserId(userOrId)
+    const subscription = await Subscription.findOne({ admin_id: userId }).exec()
+    return Boolean(
+      isStandaloneAiAddOnPlanCode(subscription?.planCode) ||
+        subscription?.addOns?.some(addOn => addOn.code === AI_ADD_ON_CODE)
+    )
+  },
+
   _getUserId(userOrId) {
   _getUserId(userOrId) {
     if (userOrId && userOrId._id) {
     if (userOrId && userOrId._id) {
       return userOrId._id
       return userOrId._id