feat: Add inTrial getter method to User model
This commit is contained in:
@@ -11,6 +11,7 @@ class UsageData extends Base {
|
|||||||
consumedTaskCount!: number;
|
consumedTaskCount!: number;
|
||||||
nextResetAt!: string;
|
nextResetAt!: string;
|
||||||
subscription?: Subscription;
|
subscription?: Subscription;
|
||||||
|
user?: User;
|
||||||
|
|
||||||
static tableName = 'usage_data';
|
static tableName = 'usage_data';
|
||||||
|
|
||||||
@@ -47,6 +48,12 @@ class UsageData extends Base {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async checkIfLimitExceeded() {
|
async checkIfLimitExceeded() {
|
||||||
|
const user = await this.$relatedQuery('user');
|
||||||
|
|
||||||
|
if (user.inTrial) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const subscription = await this.$relatedQuery('subscription');
|
const subscription = await this.$relatedQuery('subscription');
|
||||||
|
|
||||||
const plan = subscription.plan;
|
const plan = subscription.plan;
|
||||||
@@ -55,7 +62,9 @@ class UsageData extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async increaseConsumedTaskCountByOne() {
|
async increaseConsumedTaskCountByOne() {
|
||||||
return await this.$query().patch({ consumedTaskCount: raw('consumed_task_count + 1') });
|
return await this.$query().patch({
|
||||||
|
consumedTaskCount: raw('consumed_task_count + 1'),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -126,6 +126,19 @@ class User extends Base {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
get inTrial() {
|
||||||
|
if (!this.trialExpiryDate) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
const expiryDate = DateTime.fromJSDate(
|
||||||
|
this.trialExpiryDate as unknown as Date
|
||||||
|
);
|
||||||
|
const now = DateTime.now();
|
||||||
|
|
||||||
|
return now < expiryDate;
|
||||||
|
}
|
||||||
|
|
||||||
login(password: string) {
|
login(password: string) {
|
||||||
return bcrypt.compare(password, this.password);
|
return bcrypt.compare(password, this.password);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user