11import Stripe from "stripe" ;
22import { env } from "~/env" ;
3+ import { isEntitledSubscriptionStatus } from "~/lib/subscription-status" ;
34import { db } from "../db" ;
45import { sendSubscriptionConfirmationEmail } from "../mailer" ;
56import { TeamService } from "../service/team-service" ;
@@ -149,6 +150,7 @@ export async function syncStripeData(customerId: string) {
149150 . filter ( ( id ) : id is string => Boolean ( id ) ) ;
150151
151152 const nextPlan = getPlanFromPriceIds ( priceIds ) ;
153+ const isEntitled = isEntitledSubscriptionStatus ( subscription . status ) ;
152154 const isNowPaid = subscription . status === "active" && nextPlan !== "FREE" ;
153155 const shouldSendSubscriptionConfirmation = ! wasPaid && isNowPaid ;
154156
@@ -159,10 +161,10 @@ export async function syncStripeData(customerId: string) {
159161 priceId : subscription . items . data [ 0 ] ?. price ?. id || "" ,
160162 priceIds : priceIds ,
161163 currentPeriodEnd : new Date (
162- subscription . items . data [ 0 ] ?. current_period_end * 1000
164+ subscription . items . data [ 0 ] ?. current_period_end * 1000 ,
163165 ) ,
164166 currentPeriodStart : new Date (
165- subscription . items . data [ 0 ] ?. current_period_start * 1000
167+ subscription . items . data [ 0 ] ?. current_period_start * 1000 ,
166168 ) ,
167169 cancelAtPeriodEnd : subscription . cancel_at
168170 ? new Date ( subscription . cancel_at * 1000 )
@@ -176,10 +178,10 @@ export async function syncStripeData(customerId: string) {
176178 priceId : subscription . items . data [ 0 ] ?. price ?. id || "" ,
177179 priceIds : priceIds ,
178180 currentPeriodEnd : new Date (
179- subscription . items . data [ 0 ] ?. current_period_end * 1000
181+ subscription . items . data [ 0 ] ?. current_period_end * 1000 ,
180182 ) ,
181183 currentPeriodStart : new Date (
182- subscription . items . data [ 0 ] ?. current_period_start * 1000
184+ subscription . items . data [ 0 ] ?. current_period_start * 1000 ,
183185 ) ,
184186 cancelAtPeriodEnd : subscription . cancel_at
185187 ? new Date ( subscription . cancel_at * 1000 )
@@ -191,7 +193,7 @@ export async function syncStripeData(customerId: string) {
191193
192194 await TeamService . updateTeam ( team . id , {
193195 plan : subscription . status === "canceled" ? "FREE" : nextPlan ,
194- isActive : subscription . status === "active" ,
196+ isActive : isEntitled ,
195197 } ) ;
196198
197199 if ( shouldSendSubscriptionConfirmation ) {
@@ -201,12 +203,12 @@ export async function syncStripeData(customerId: string) {
201203 teamUsers
202204 . map ( ( tu ) => tu . user ?. email )
203205 . filter ( ( email ) : email is string => Boolean ( email ) )
204- . map ( ( email ) => sendSubscriptionConfirmationEmail ( email ) )
206+ . map ( ( email ) => sendSubscriptionConfirmationEmail ( email ) ) ,
205207 ) ;
206208 } catch ( err ) {
207209 logger . error (
208210 { err, teamId : team . id } ,
209- "[Billing]: Failed sending subscription confirmation email"
211+ "[Billing]: Failed sending subscription confirmation email" ,
210212 ) ;
211213 }
212214 }
0 commit comments