From 8098a7ee5dd6480fd5edbd07bae019e9b3aa3e98 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Wed, 8 Mar 2023 20:22:06 +0000 Subject: [PATCH] feat: add checkIfLimitExceeded in UsageData model --- packages/backend/src/models/usage-data.ee.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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') }); }