Add Paddle webhook ingestion foundation
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "BillingWebhookStatus" AS ENUM ('RECEIVED', 'DUPLICATE', 'FAILED');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "billing_webhook_events" (
|
||||
"id" UUID NOT NULL,
|
||||
"provider" "BillingProvider" NOT NULL,
|
||||
"provider_event_id" TEXT NOT NULL,
|
||||
"event_type" TEXT NOT NULL,
|
||||
"payload" JSONB NOT NULL,
|
||||
"received_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"processed_at" TIMESTAMP(3),
|
||||
"status" "BillingWebhookStatus" NOT NULL,
|
||||
"error_message" TEXT,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "billing_webhook_events_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "billing_webhook_events_provider_provider_event_id_key"
|
||||
ON "billing_webhook_events"("provider", "provider_event_id");
|
||||
@@ -349,6 +349,23 @@ model UserEntitlement {
|
||||
@@map("user_entitlements")
|
||||
}
|
||||
|
||||
model BillingWebhookEvent {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
provider BillingProvider
|
||||
providerEventId String @map("provider_event_id")
|
||||
eventType String @map("event_type")
|
||||
payload Json
|
||||
receivedAt DateTime @default(now()) @map("received_at")
|
||||
processedAt DateTime? @map("processed_at")
|
||||
status BillingWebhookStatus
|
||||
errorMessage String? @map("error_message")
|
||||
createdAt DateTime @default(now()) @map("created_at")
|
||||
updatedAt DateTime @updatedAt @map("updated_at")
|
||||
|
||||
@@unique([provider, providerEventId])
|
||||
@@map("billing_webhook_events")
|
||||
}
|
||||
|
||||
enum SubscriptionStatus {
|
||||
TRIAL
|
||||
ACTIVE
|
||||
@@ -366,6 +383,12 @@ enum BillingProvider {
|
||||
PADDLE
|
||||
}
|
||||
|
||||
enum BillingWebhookStatus {
|
||||
RECEIVED
|
||||
DUPLICATE
|
||||
FAILED
|
||||
}
|
||||
|
||||
enum UserAccountKind {
|
||||
LEGACY_DEFAULT
|
||||
GUEST
|
||||
|
||||
Reference in New Issue
Block a user