|
@@ -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
|