Skip to content
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 67 additions & 1 deletion prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ model Product {
subscriptions Subscription[]
currencies CurrenciesOnProduct[]
updatedAt DateTime @default(now()) @updatedAt
archivedAt DateTime?
isTest Boolean @default(false)
coupons Coupon[]
archivedAt DateTime?

@@index([organisation])
@@index([organisationPaymentIntegrationUuid])
Expand Down Expand Up @@ -700,4 +700,70 @@ model CouponsOnSubscriptions {
@@id([couponUuid, subscriptionUuid])
@@index([couponUuid])
@@index([subscriptionUuid])
}

model WebhookDestinationEventType {
uuid String @id @default(uuid(7))
event String
destinationUuid String
destination WebhookDestination @relation(fields: [destinationUuid], references: [uuid], onDelete: Cascade)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organisation String

@@unique([event, destinationUuid])
}

model WebhookDestination {
uuid String @id @default(uuid(7))
url String
organisation String
eventTypes WebhookDestinationEventType[]
secret Json
events WebhookDestinationEvent[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}

model WebhookEvent {
uuid String @id @default(uuid(7))
organisation String
type String
payload Json
destinationEvents WebhookDestinationEvent[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}

model WebhookDestinationEvent {
uuid String @id @default(uuid(7))
eventUuid String
event WebhookEvent @relation(fields: [eventUuid], references: [uuid], onDelete: Cascade)
destinationUuid String
destination WebhookDestination @relation(fields: [destinationUuid], references: [uuid], onDelete: Cascade)
attempts WebhookEventAttempt[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
organisation String

@@unique([eventUuid, destinationUuid])
}

enum WebhookEventAttemptStatus {
SUCCESS
ERROR
PENDING
}

model WebhookEventAttempt {
uuid String @id @default(uuid(7))
destinationEventUuid String
destinationEvent WebhookDestinationEvent @relation(fields: [destinationEventUuid], references: [uuid], onDelete: Cascade)
attempt Int
status WebhookEventAttemptStatus @default(PENDING)
message String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
scheduledAt DateTime?
organisation String
}