From c9536e58cb3467a143e6ba3484f04449e74b4476 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Thu, 13 Apr 2023 18:27:57 +0200 Subject: [PATCH] feat: Cover active but cancelled subscriptions --- packages/backend/src/models/subscription.ee.ts | 17 +++++++++++++++-- packages/backend/src/models/user.ts | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/models/subscription.ee.ts b/packages/backend/src/models/subscription.ee.ts index a8d9de60..cf7f1939 100644 --- a/packages/backend/src/models/subscription.ee.ts +++ b/packages/backend/src/models/subscription.ee.ts @@ -1,6 +1,7 @@ import Base from './base'; import User from './user'; import UsageData from './usage-data.ee'; +import { DateTime } from 'luxon'; import { getPlanById } from '../helpers/billing/plans.ee'; class Subscription extends Base { @@ -79,8 +80,20 @@ class Subscription extends Base { return getPlanById(this.paddlePlanId); } - get isActive() { - return this.status === 'active' || this.status === 'past_due'; + get isCancelledAndValid() { + return ( + this.status === 'deleted' && + Number(this.cancellationEffectiveDate) > + DateTime.now().startOf('day').toMillis() + ); + } + + get isValid() { + if (this.status === 'active') return true; + if (this.status === 'past_due') return true; + if (this.isCancelledAndValid) return true; + + return false; } } diff --git a/packages/backend/src/models/user.ts b/packages/backend/src/models/user.ts index 2e17203e..43d966ce 100644 --- a/packages/backend/src/models/user.ts +++ b/packages/backend/src/models/user.ts @@ -209,7 +209,7 @@ class User extends Base { const subscription = await this.$relatedQuery('currentSubscription'); - return subscription?.isActive; + return subscription?.isValid; } async withinLimits() {