diff --git a/packages/backend/src/models/usage-data.ee.ts b/packages/backend/src/models/usage-data.ee.ts index 558fe036..2e508f12 100644 --- a/packages/backend/src/models/usage-data.ee.ts +++ b/packages/backend/src/models/usage-data.ee.ts @@ -1,12 +1,14 @@ import { raw } from 'objection'; import Base from './base'; import User from './user'; +import PaymentPlan from './payment-plan.ee'; class UsageData extends Base { id!: string; userId!: string; consumedTaskCount!: number; nextResetAt!: string; + paymentPlan?: PaymentPlan; static tableName = 'usage_data'; @@ -31,8 +33,22 @@ class UsageData extends Base { to: 'users.id', }, }, + paymentPlan: { + relation: Base.BelongsToOneRelation, + modelClass: PaymentPlan, + join: { + from: 'usage_data.user_id', + to: 'payment_plans.user_id', + }, + }, }); + async checkIfLimitExceeded() { + const paymentPlan = await this.$relatedQuery('paymentPlan'); + + return this.consumedTaskCount >= paymentPlan.taskCount; + } + async increaseConsumedTaskCountByOne() { return await this.$query().patch({ consumedTaskCount: raw('consumed_task_count + 1') }); }