fix: referral edge case

This commit is contained in:
vimtor 2026-05-29 14:50:16 +02:00
parent e9966b651f
commit 3f6cb631c3
No known key found for this signature in database

View file

@ -377,23 +377,30 @@ export namespace Referral {
.then((rows) => rows[0])
if (!referral) return
const result = await tx
.insert(ReferralRewardTable)
.ignore()
.values([
{
workspaceID: referral.workspaceID,
referralID: referral.id,
amount: REWARD_AMOUNT,
},
{
workspaceID: input.workspaceID,
referralID: referral.id,
amount: REWARD_AMOUNT,
},
])
await tx.insert(ReferralRewardTable).ignore().values({
workspaceID: referral.workspaceID,
referralID: referral.id,
amount: REWARD_AMOUNT,
})
if (result.rowsAffected === 0) return
const existingInviteeReward = await tx
.select({ workspaceID: ReferralRewardTable.workspaceID })
.from(ReferralRewardTable)
.where(
and(
eq(ReferralRewardTable.referralID, referral.id),
sql`${ReferralRewardTable.workspaceID} <> ${referral.workspaceID}`,
isNull(ReferralRewardTable.timeDeleted),
),
)
.then((rows) => rows[0])
if (existingInviteeReward) return
await tx.insert(ReferralRewardTable).ignore().values({
workspaceID: input.workspaceID,
referralID: referral.id,
amount: REWARD_AMOUNT,
})
})
}