Add client referral bonus links
This commit is contained in:
34
prisma/migrations/0009_referral_bonus_links/migration.sql
Normal file
34
prisma/migrations/0009_referral_bonus_links/migration.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
ALTER TABLE "ReferralLink"
|
||||
ADD COLUMN "createdById" TEXT;
|
||||
|
||||
ALTER TABLE "ReferralLink"
|
||||
ADD COLUMN "bonusPercent" DECIMAL(5,2);
|
||||
|
||||
UPDATE "ReferralLink"
|
||||
SET
|
||||
"createdById" = "referrerId",
|
||||
"bonusPercent" = 0;
|
||||
|
||||
ALTER TABLE "ReferralLink"
|
||||
ALTER COLUMN "createdById" SET NOT NULL;
|
||||
|
||||
ALTER TABLE "ReferralLink"
|
||||
ALTER COLUMN "bonusPercent" SET NOT NULL;
|
||||
|
||||
ALTER TABLE "ReferralLink"
|
||||
ADD CONSTRAINT "ReferralLink_createdById_fkey"
|
||||
FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
CREATE INDEX "ReferralLink_referrerId_idx" ON "ReferralLink"("referrerId");
|
||||
|
||||
CREATE INDEX "ReferralLink_refereeId_idx" ON "ReferralLink"("refereeId");
|
||||
|
||||
ALTER TABLE "BonusTransaction"
|
||||
ADD COLUMN "referralLinkId" TEXT;
|
||||
|
||||
ALTER TABLE "BonusTransaction"
|
||||
ADD CONSTRAINT "BonusTransaction_referralLinkId_fkey"
|
||||
FOREIGN KEY ("referralLinkId") REFERENCES "ReferralLink"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
CREATE UNIQUE INDEX "BonusTransaction_orderId_referralLinkId_key"
|
||||
ON "BonusTransaction"("orderId", "referralLinkId");
|
||||
@@ -77,6 +77,7 @@ model User {
|
||||
orderStatusEvents OrderStatusEvent[]
|
||||
referralAsReferrer ReferralLink[] @relation("ReferralReferrer")
|
||||
referralAsReferee ReferralLink[] @relation("ReferralReferee")
|
||||
createdReferralLinks ReferralLink[] @relation("ReferralCreator")
|
||||
bonusTransactions BonusTransaction[]
|
||||
withdrawalRequests RewardWithdrawalRequest[] @relation("WithdrawalRequester")
|
||||
reviewedWithdrawals RewardWithdrawalRequest[] @relation("WithdrawalReviewer")
|
||||
@@ -289,24 +290,34 @@ model OrderStatusEvent {
|
||||
}
|
||||
|
||||
model ReferralLink {
|
||||
id String @id @default(cuid())
|
||||
referrerId String
|
||||
referrer User @relation("ReferralReferrer", fields: [referrerId], references: [id])
|
||||
refereeId String
|
||||
referee User @relation("ReferralReferee", fields: [refereeId], references: [id])
|
||||
createdAt DateTime @default(now())
|
||||
id String @id @default(cuid())
|
||||
referrerId String
|
||||
referrer User @relation("ReferralReferrer", fields: [referrerId], references: [id])
|
||||
refereeId String
|
||||
referee User @relation("ReferralReferee", fields: [refereeId], references: [id])
|
||||
createdById String
|
||||
createdBy User @relation("ReferralCreator", fields: [createdById], references: [id])
|
||||
bonusPercent Decimal @db.Decimal(5, 2)
|
||||
bonusTransactions BonusTransaction[]
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@unique([referrerId, refereeId])
|
||||
@@index([referrerId])
|
||||
@@index([refereeId])
|
||||
}
|
||||
|
||||
model BonusTransaction {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
amount Decimal @db.Decimal(14, 2)
|
||||
reason String
|
||||
orderId String?
|
||||
createdAt DateTime @default(now())
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
amount Decimal @db.Decimal(14, 2)
|
||||
reason String
|
||||
orderId String?
|
||||
referralLinkId String?
|
||||
referralLink ReferralLink? @relation(fields: [referralLinkId], references: [id], onDelete: SetNull)
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@unique([orderId, referralLinkId])
|
||||
}
|
||||
|
||||
model RewardWithdrawalRequest {
|
||||
|
||||
Reference in New Issue
Block a user