CognxSafeTrack commited on
Commit
2e888dc
·
1 Parent(s): de6a95b

Fix: Add Cascade Delete for UserBadge and TeamMember during INSCRIPTION reset

Browse files
apps/api/src/services/whatsapp.ts CHANGED
@@ -106,6 +106,8 @@ export class WhatsAppService {
106
  if (this.isFuzzyMatch(normalizedText, 'INSCRIPTION')) {
107
  // 🚨 COUPE-CIRCUIT #1: Kill any active Time-Travel context BEFORE resetting progression
108
  await clearTimeTravelContext(user.id);
 
 
109
  await prisma.enrollment.deleteMany({ where: { userId: user.id } });
110
  await prisma.userProgress.deleteMany({ where: { userId: user.id } });
111
  await prisma.response.deleteMany({ where: { userId: user.id } });
 
106
  if (this.isFuzzyMatch(normalizedText, 'INSCRIPTION')) {
107
  // 🚨 COUPE-CIRCUIT #1: Kill any active Time-Travel context BEFORE resetting progression
108
  await clearTimeTravelContext(user.id);
109
+ await (prisma as any).userBadge.deleteMany({ where: { userProgress: { userId: user.id } } });
110
+ await (prisma as any).teamMember.deleteMany({ where: { businessProfile: { userId: user.id } } });
111
  await prisma.enrollment.deleteMany({ where: { userId: user.id } });
112
  await prisma.userProgress.deleteMany({ where: { userId: user.id } });
113
  await prisma.response.deleteMany({ where: { userId: user.id } });
apps/whatsapp-worker/src/services/whatsapp-logic.ts CHANGED
@@ -124,6 +124,8 @@ export class WhatsAppLogic {
124
  if (this.isFuzzyMatch(normalizedText, 'INSCRIPTION')) {
125
  // 🚨 COUPE-CIRCUIT #1: Kill Time-Travel context BEFORE any DB reset
126
  await clearTimeTravelContext(user.id, connection as any);
 
 
127
  await prisma.enrollment.deleteMany({ where: { userId: user.id } });
128
  await prisma.userProgress.deleteMany({ where: { userId: user.id } });
129
  await prisma.response.deleteMany({ where: { userId: user.id } });
 
124
  if (this.isFuzzyMatch(normalizedText, 'INSCRIPTION')) {
125
  // 🚨 COUPE-CIRCUIT #1: Kill Time-Travel context BEFORE any DB reset
126
  await clearTimeTravelContext(user.id, connection as any);
127
+ await (prisma as any).userBadge.deleteMany({ where: { userProgress: { userId: user.id } } });
128
+ await (prisma as any).teamMember.deleteMany({ where: { businessProfile: { userId: user.id } } });
129
  await prisma.enrollment.deleteMany({ where: { userId: user.id } });
130
  await prisma.userProgress.deleteMany({ where: { userId: user.id } });
131
  await prisma.response.deleteMany({ where: { userId: user.id } });
packages/database/prisma/schema.prisma CHANGED
@@ -57,7 +57,7 @@ model TeamMember {
57
  name String?
58
  role String?
59
  bio String?
60
- businessProfile BusinessProfile @relation(fields: [businessProfileId], references: [id])
61
  }
62
 
63
  model Track {
@@ -250,5 +250,5 @@ model UserBadge {
250
  userProgressId String
251
  name String
252
  earnedAt DateTime @default(now())
253
- userProgress UserProgress @relation(fields: [userProgressId], references: [id])
254
  }
 
57
  name String?
58
  role String?
59
  bio String?
60
+ businessProfile BusinessProfile @relation(fields: [businessProfileId], references: [id], onDelete: Cascade)
61
  }
62
 
63
  model Track {
 
250
  userProgressId String
251
  name String
252
  earnedAt DateTime @default(now())
253
+ userProgress UserProgress @relation(fields: [userProgressId], references: [id], onDelete: Cascade)
254
  }