Просмотр исходного кода

Merge pull request #25490 from overleaf/mf-send-subscription-cancelled-and-reactivated-event-stripe-subscription

[web] Send analytics events and user properties for cancelled and reactivated event in Stripe subscription

GitOrigin-RevId: 07a4e6395be334c90910b5d421624c4daa703d3b
M Fahru 1 год назад
Родитель
Сommit
8017918063
1 измененных файлов с 32 добавлено и 6 удалено
  1. 32 6
      services/web/types/stripe/webhook-event.ts

+ 32 - 6
services/web/types/stripe/webhook-event.ts

@@ -1,12 +1,22 @@
 import Stripe from 'stripe'
 
-type StripeWebhookEventType =
-  | 'customer.subscription.created'
-  | 'customer.subscription.updated'
-  | 'customer.subscription.deleted'
+export type CustomerSubscriptionUpdatedWebhookEvent = {
+  type: 'customer.subscription.updated'
+  data: {
+    object: Stripe.Subscription & {
+      metadata: {
+        adminUserId?: string
+      }
+    }
+    // https://docs.stripe.com/api/events/object?api-version=2025-04-30.basil#event_object-data-previous_attributes
+    previous_attributes: {
+      cancel_at_period_end?: boolean // will only be present if the subscription was cancelled or reactivated
+    }
+  }
+}
 
-export type CustomerSubscriptionWebhookEvent = {
-  type: StripeWebhookEventType
+export type CustomerSubscriptionCreatedWebhookEvent = {
+  type: 'customer.subscription.created'
   data: {
     object: Stripe.Subscription & {
       metadata: {
@@ -15,3 +25,19 @@ export type CustomerSubscriptionWebhookEvent = {
     }
   }
 }
+
+export type CustomerSubscriptionsDeletedWebhookEvent = {
+  type: 'customer.subscription.deleted'
+  data: {
+    object: Stripe.Subscription & {
+      metadata: {
+        adminUserId?: string
+      }
+    }
+  }
+}
+
+export type CustomerSubscriptionWebhookEvent =
+  | CustomerSubscriptionUpdatedWebhookEvent
+  | CustomerSubscriptionCreatedWebhookEvent
+  | CustomerSubscriptionsDeletedWebhookEvent