mirror of
https://github.com/JetSprow/J-Board-Lite.git
synced 2026-05-01 01:14:10 +05:30
feat: add subscription push transfers
This commit is contained in:
@@ -94,6 +94,21 @@ enum WalletTransactionType {
|
||||
CARD_REDEEM
|
||||
ADMIN_ADJUST
|
||||
REFUND
|
||||
SUBSCRIPTION_TRANSFER_FEE
|
||||
SUBSCRIPTION_TRANSFER_REFUND
|
||||
}
|
||||
|
||||
enum SubscriptionTransferStatus {
|
||||
PENDING
|
||||
ACCEPTED
|
||||
REJECTED
|
||||
CANCELLED
|
||||
EXPIRED
|
||||
}
|
||||
|
||||
enum SubscriptionTransferFeePayer {
|
||||
SENDER
|
||||
RECIPIENT
|
||||
}
|
||||
|
||||
enum Protocol {
|
||||
@@ -221,6 +236,8 @@ model User {
|
||||
walletRechargeOrders WalletRechargeOrder[]
|
||||
redeemedRechargeCards RechargeCard[] @relation("RechargeCardRedeemer")
|
||||
createdRechargeCards RechargeCard[] @relation("RechargeCardCreator")
|
||||
sentSubscriptionTransfers SubscriptionTransfer[] @relation("SubscriptionTransferSender")
|
||||
receivedSubscriptionTransfers SubscriptionTransfer[] @relation("SubscriptionTransferRecipient")
|
||||
}
|
||||
|
||||
model EmailToken {
|
||||
@@ -327,6 +344,7 @@ model SubscriptionPlan {
|
||||
cartItems ShoppingCartItem[]
|
||||
orderItems OrderItem[]
|
||||
rechargeCards RechargeCard[]
|
||||
subscriptionTransfers SubscriptionTransfer[]
|
||||
|
||||
@@index([type, isActive, isFeatured, sortOrder])
|
||||
@@index([inboundId])
|
||||
@@ -353,11 +371,48 @@ model UserSubscription {
|
||||
nodeClient NodeClient?
|
||||
createOrder Order? @relation("OrderCreatedSubscription")
|
||||
targetOrders Order[] @relation("OrderTargetSubscription")
|
||||
transfers SubscriptionTransfer[]
|
||||
|
||||
@@index([userId])
|
||||
@@index([status])
|
||||
}
|
||||
|
||||
model SubscriptionTransfer {
|
||||
id String @id @default(cuid())
|
||||
subscriptionId String
|
||||
planId String
|
||||
senderId String
|
||||
recipientId String
|
||||
senderEmail String
|
||||
recipientEmail String
|
||||
status SubscriptionTransferStatus @default(PENDING)
|
||||
feeAmount Decimal @default(0)
|
||||
feePayer SubscriptionTransferFeePayer @default(SENDER)
|
||||
feeChargedToId String?
|
||||
feeChargedAt DateTime?
|
||||
feeRefundedAt DateTime?
|
||||
cycleStartedAt DateTime
|
||||
expiresAt DateTime
|
||||
acceptedAt DateTime?
|
||||
rejectedAt DateTime?
|
||||
cancelledAt DateTime?
|
||||
expiredAt DateTime?
|
||||
note String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
subscription UserSubscription @relation(fields: [subscriptionId], references: [id], onDelete: Cascade)
|
||||
plan SubscriptionPlan @relation(fields: [planId], references: [id], onDelete: Cascade)
|
||||
sender User @relation("SubscriptionTransferSender", fields: [senderId], references: [id], onDelete: Cascade)
|
||||
recipient User @relation("SubscriptionTransferRecipient", fields: [recipientId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([subscriptionId, status, createdAt])
|
||||
@@index([senderId, createdAt])
|
||||
@@index([recipientId, createdAt])
|
||||
@@index([status, expiresAt])
|
||||
@@index([planId, cycleStartedAt])
|
||||
}
|
||||
|
||||
model SubscriptionAccessLog {
|
||||
id String @id @default(cuid())
|
||||
userId String?
|
||||
@@ -930,6 +985,11 @@ model AppConfig {
|
||||
inviteRewardCouponId String?
|
||||
inviteRewardRate Decimal @default(0)
|
||||
inviteRewardEnabled Boolean @default(false)
|
||||
subscriptionTransferEnabled Boolean @default(true)
|
||||
subscriptionTransferFee Decimal @default(0)
|
||||
subscriptionTransferLimitPerCycle Int @default(1)
|
||||
subscriptionTransferMinRemainingDays Int @default(0)
|
||||
subscriptionTransferMinRemainingTrafficGb Int @default(0)
|
||||
turnstileSiteKey String?
|
||||
turnstileSecretKey String?
|
||||
smtpEnabled Boolean @default(false)
|
||||
|
||||
Reference in New Issue
Block a user