@campus-labs/prisma-client 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campus-labs/prisma-client",
3
- "version": "0.5.1",
3
+ "version": "0.6.1",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -0,0 +1,91 @@
1
+ import { PrismaClient } from '@prisma/client';
2
+
3
+ const prisma = new PrismaClient();
4
+
5
+ async function main() {
6
+ console.log('🗑️ Starting database cleanup...');
7
+
8
+ // Delete in order to respect foreign key constraints
9
+ console.log('Deleting notifications...');
10
+ await prisma.notifications.deleteMany();
11
+
12
+ console.log('Deleting user_request_initiative...');
13
+ await prisma.user_request_initiative.deleteMany();
14
+
15
+ console.log('Deleting initiative_invitations...');
16
+ await prisma.initiative_invitations.deleteMany();
17
+
18
+ console.log('Deleting users_programs...');
19
+ await prisma.users_programs.deleteMany();
20
+
21
+ console.log('Deleting user_to_user...');
22
+ await prisma.user_to_user.deleteMany();
23
+
24
+ console.log('Deleting users_soft_skill_instance...');
25
+ await prisma.users_soft_skill_instance.deleteMany();
26
+
27
+ console.log('Deleting soft_skill_instance...');
28
+ await prisma.soft_skill_instance.deleteMany();
29
+
30
+ console.log('Deleting evidences...');
31
+ await prisma.evidences.deleteMany();
32
+
33
+ console.log('Deleting badges_instances...');
34
+ await prisma.badges_instances.deleteMany();
35
+
36
+ console.log('Deleting roles_initiatives_badges...');
37
+ await prisma.roles_initiatives_badges.deleteMany();
38
+
39
+ console.log('Deleting badges...');
40
+ await prisma.badges.deleteMany();
41
+
42
+ console.log('Deleting moments...');
43
+ await prisma.moments.deleteMany();
44
+
45
+ console.log('Deleting user_initiative...');
46
+ await prisma.user_initiative.deleteMany();
47
+
48
+ console.log('Deleting initiatives_soft_skills...');
49
+ await prisma.initiatives_soft_skills.deleteMany();
50
+
51
+ console.log('Deleting initiatives...');
52
+ await prisma.initiatives.deleteMany();
53
+
54
+ console.log('Deleting programs...');
55
+ await prisma.programs.deleteMany();
56
+
57
+ console.log('Deleting users...');
58
+ await prisma.users.deleteMany();
59
+
60
+ console.log('Deleting soft_skills...');
61
+ await prisma.soft_skills.deleteMany();
62
+
63
+ console.log('Deleting typologies...');
64
+ await prisma.typologies.deleteMany();
65
+
66
+ console.log('Deleting areas...');
67
+ await prisma.areas.deleteMany();
68
+
69
+ console.log('Deleting type (badge types)...');
70
+ await prisma.type.deleteMany();
71
+
72
+ console.log('Deleting roles_initiatives...');
73
+ await prisma.roles_initiatives.deleteMany();
74
+
75
+ console.log('Deleting roles_programs...');
76
+ await prisma.roles_programs.deleteMany();
77
+
78
+ console.log('Deleting roles_platform...');
79
+ await prisma.roles_platform.deleteMany();
80
+
81
+ console.log('✅ Database cleared successfully!');
82
+ }
83
+
84
+ main()
85
+ .catch((e) => {
86
+ console.error('❌ Error during cleanup:', e);
87
+ process.exit(1);
88
+ })
89
+ .finally(async () => {
90
+ await prisma.$disconnect();
91
+ });
@@ -40,6 +40,10 @@ model badges {
40
40
  type type @relation(fields: [type_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
41
41
  badges_instances badges_instances[]
42
42
  roles_initiatives_badges roles_initiatives_badges[]
43
+
44
+ @@index([initiative_id], map: "idx_badges_initiative_active")
45
+ @@index([moment_id], map: "idx_badges_moment")
46
+ @@index([type_id], map: "idx_badges_type")
43
47
  }
44
48
 
45
49
  model badges_instances {
@@ -65,19 +69,29 @@ model badges_instances {
65
69
  users users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
66
70
  type type @relation(fields: [type_id], references: [id], onDelete: Restrict, onUpdate: NoAction)
67
71
  evidences evidences[]
72
+
73
+ @@index([user_id, status], map: "idx_badges_instances_user_status")
74
+ @@index([initiative_id, status], map: "idx_badges_instances_initiative_status")
75
+ @@index([badge_id, status], map: "idx_badges_instances_badge_status")
76
+ @@index([user_id, status, created_at(sort: Desc)], map: "idx_badges_instances_user_full")
77
+ @@index([type_id, status], map: "idx_badges_instances_type_status")
78
+ @@index([given_by], map: "idx_badges_instances_given_by")
68
79
  }
69
80
 
70
81
  model evidences {
71
82
  id Int @id @default(autoincrement())
72
83
  user_id String @db.VarChar(50)
73
84
  badge_instance_id Int?
74
- notes String? @db.VarChar(500)
85
+ notes String? @db.VarChar(500)
75
86
  evidence Json?
76
87
  created_at DateTime @default(now()) @db.Timestamp(6)
77
88
  updated_at DateTime @default(now()) @db.Timestamp(6)
78
89
  deleted_at DateTime? @db.Timestamp(6)
79
90
  badges_instances badges_instances? @relation(fields: [badge_instance_id], references: [id], onDelete: SetNull, onUpdate: SetNull)
80
91
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
92
+
93
+ @@index([badge_instance_id], map: "idx_evidences_badge_instance")
94
+ @@index([user_id, created_at(sort: Desc)], map: "idx_evidences_user")
81
95
  }
82
96
 
83
97
  model initiative_invitations {
@@ -94,6 +108,10 @@ model initiative_invitations {
94
108
  users_initiative_invitations_inviter_idTousers users @relation("initiative_invitations_inviter_idTousers", fields: [inviter_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
95
109
 
96
110
  @@id([invitee_id, inviter_id, initiative_id])
111
+
112
+ @@index([invitee_id, status], map: "idx_invitations_invitee_status")
113
+ @@index([initiative_id, status], map: "idx_invitations_initiative_status")
114
+ @@index([inviter_id, status], map: "idx_invitations_inviter")
97
115
  }
98
116
 
99
117
  model initiatives {
@@ -110,7 +128,7 @@ model initiatives {
110
128
  is_approved Boolean @default(false)
111
129
  program_id Int?
112
130
  area_id Int?
113
- typology_id Int
131
+ typology_id Int
114
132
  openings Int?
115
133
  created_at DateTime @default(now()) @db.Timestamp(6)
116
134
  updated_at DateTime @default(now()) @db.Timestamp(6)
@@ -130,6 +148,12 @@ model initiatives {
130
148
  user_request_initiative user_request_initiative[]
131
149
  user_initiative user_initiative[]
132
150
  user_saved_initiatives user_saved_initiatives[]
151
+
152
+ @@index([start_date, end_date], map: "idx_initiatives_active")
153
+ @@index([area_id], map: "idx_initiatives_area_active")
154
+ @@index([program_id], map: "idx_initiatives_program_active")
155
+ @@index([typology_id], map: "idx_initiatives_typology")
156
+ @@index([inscription_deadline], map: "idx_initiatives_inscription")
133
157
  }
134
158
 
135
159
  model initiatives_soft_skills {
@@ -142,6 +166,9 @@ model initiatives_soft_skills {
142
166
  soft_skills soft_skills @relation(fields: [soft_skill_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
143
167
 
144
168
  @@id([initiative_id, soft_skill_id])
169
+
170
+ @@index([initiative_id], map: "idx_iss_initiative")
171
+ @@index([soft_skill_id], map: "idx_iss_soft_skill")
145
172
  }
146
173
 
147
174
  model moments {
@@ -160,6 +187,9 @@ model moments {
160
187
  deleted_at DateTime? @db.Timestamp(6)
161
188
  badges badges[]
162
189
  initiatives initiatives? @relation(fields: [initiative_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
190
+
191
+ @@index([initiative_id, order], map: "idx_moments_initiative_order")
192
+ @@index([initiative_id, opened_at, closed_at], map: "idx_moments_active")
163
193
  }
164
194
 
165
195
  model programs {
@@ -176,6 +206,8 @@ model programs {
176
206
  initiatives initiatives[]
177
207
  areas areas? @relation(fields: [area_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
178
208
  users_programs users_programs[]
209
+
210
+ @@index([area_id], map: "idx_programs_area")
179
211
  }
180
212
 
181
213
  model roles_initiatives {
@@ -214,7 +246,7 @@ model soft_skill_instance {
214
246
  img_achieved Json
215
247
  img_inactive Json
216
248
  description String @db.VarChar(1000)
217
- points Int
249
+ points Int?
218
250
  status String @default("APPROVED") @db.VarChar(20)
219
251
  votes Int @default(0)
220
252
  soft_skill_id Int?
@@ -227,6 +259,12 @@ model soft_skill_instance {
227
259
  soft_skills soft_skills? @relation(fields: [soft_skill_id], references: [id], onDelete: SetNull, onUpdate: SetNull)
228
260
  users users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
229
261
  users_soft_skill_instance users_soft_skill_instance[]
262
+
263
+ @@index([user_id, status], map: "idx_soft_skill_instance_user_status")
264
+ @@index([initiative_id, status], map: "idx_soft_skill_instance_initiative_status")
265
+ @@index([soft_skill_id, initiative_id], map: "idx_soft_skill_instance_soft_skill_init")
266
+ @@index([user_id, initiative_id], map: "idx_soft_skill_instance_user_init")
267
+ @@index([votes(sort: Desc)], map: "idx_soft_skill_instance_votes")
230
268
  }
231
269
 
232
270
  model soft_skills {
@@ -269,6 +307,9 @@ model user_request_initiative {
269
307
  roles_initiatives roles_initiatives @relation(fields: [role_initiative_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
270
308
 
271
309
  @@unique([user_id, initiative_id])
310
+
311
+ @@index([initiative_id, status], map: "idx_uri_initiative_status")
312
+ @@index([user_id, status], map: "idx_uri_user_status")
272
313
  }
273
314
 
274
315
  model users {
@@ -295,13 +336,17 @@ model users {
295
336
  role_platform_id Int @default(2)
296
337
  is_notifications_active Boolean @default(false)
297
338
  is_email_active Boolean @default(true)
339
+ is_global_ranking_active Boolean @default(false)
298
340
  created_at DateTime @default(now()) @db.Timestamp(6)
299
341
  updated_at DateTime @default(now()) @db.Timestamp(6)
300
342
  deleted_at DateTime? @db.Timestamp(6)
301
343
  notification_tokens String[] @db.VarChar(5000)
302
344
  points Int @default(0)
303
- ua_iupi String @db.VarChar(50) @unique
345
+ ua_iupi String @unique @db.VarChar(50)
304
346
  last_notification_check DateTime @default(now()) @db.Timestamp(6)
347
+ language String @default("pt") @db.VarChar(10)
348
+ course String? @db.VarChar(100)
349
+ department String? @db.VarChar(100)
305
350
  badges_instances badges_instances[]
306
351
  evidences evidences[]
307
352
  initiative_invitations_initiative_invitations_invitee_idTousers initiative_invitations[] @relation("initiative_invitations_invitee_idTousers")
@@ -316,7 +361,11 @@ model users {
316
361
  received_notifications notifications[] @relation("NotificationReceiver")
317
362
  sent_connection_requests user_to_user[] @relation("UserConnectionRequester")
318
363
  received_connection_requests user_to_user[] @relation("UserConnectionRequested")
319
- user_saved_initiatives user_saved_initiatives[]
364
+ user_saved_initiatives user_saved_initiatives[]
365
+
366
+ @@index([role_platform_id], map: "idx_users_role")
367
+ @@index([points(sort: Desc)], map: "idx_users_points")
368
+ @@index([last_online(sort: Desc)], map: "idx_users_last_online")
320
369
  }
321
370
 
322
371
  model user_to_user {
@@ -331,21 +380,27 @@ model user_to_user {
331
380
  requested users @relation("UserConnectionRequested", fields: [requested_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
332
381
 
333
382
  @@id([requester_id, requested_id])
383
+
384
+ @@index([requester_id, status], map: "idx_user_to_user_requester_status")
385
+ @@index([requested_id, status], map: "idx_user_to_user_requested_status")
334
386
  }
335
387
 
336
388
  model user_initiative {
337
- user_id String @default("1") @db.VarChar(50) // Default user for testing (depois colocar o id do nea, para se o administrador da iniciativa for apagado, atribui direto ao nea)
338
- initiative_id Int
339
- role_initiative_id Int @default(3)
340
- is_creator Boolean @default(false)
341
- created_at DateTime @default(now()) @db.Timestamp(6)
342
- updated_at DateTime @default(now()) @db.Timestamp(6)
343
- deleted_at DateTime? @db.Timestamp(6)
344
- initiatives initiatives @relation(fields: [initiative_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
345
- roles_initiatives roles_initiatives @relation(fields: [role_initiative_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
346
- users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
347
-
389
+ user_id String @default("1") @db.VarChar(50)
390
+ initiative_id Int
391
+ role_initiative_id Int @default(3)
392
+ is_creator Boolean @default(false)
393
+ is_initiative_ranking_active Boolean @default(false)
394
+ created_at DateTime @default(now()) @db.Timestamp(6)
395
+ updated_at DateTime @default(now()) @db.Timestamp(6)
396
+ deleted_at DateTime? @db.Timestamp(6)
397
+ initiatives initiatives @relation(fields: [initiative_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
398
+ roles_initiatives roles_initiatives @relation(fields: [role_initiative_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
399
+ users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
348
400
  @@id([user_id, initiative_id])
401
+
402
+ @@index([user_id, role_initiative_id], map: "idx_user_initiative_user_role")
403
+ @@index([initiative_id, role_initiative_id], map: "idx_user_initiative_initiative_role")
349
404
  }
350
405
 
351
406
  model user_saved_initiatives {
@@ -356,12 +411,14 @@ model user_saved_initiatives {
356
411
  deleted_at DateTime? @db.Timestamp(6)
357
412
  initiatives initiatives @relation(fields: [initiative_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
358
413
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
359
-
414
+
360
415
  @@id([user_id, initiative_id])
416
+
417
+ @@index([user_id, created_at(sort: Desc)], map: "idx_saved_initiatives_user")
361
418
  }
362
419
 
363
420
  model users_programs {
364
- user_id String @default("1") @db.VarChar(50) // Default user for testing (depois colocar o id do nea, para se o administrador do programa for apagado, atribui direto ao nea)
421
+ user_id String @default("1") @db.VarChar(50)
365
422
  program_id Int
366
423
  role_program_id Int @default(2)
367
424
  created_at DateTime @default(now()) @db.Timestamp(6)
@@ -372,6 +429,9 @@ model users_programs {
372
429
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
373
430
 
374
431
  @@id([user_id, program_id, role_program_id])
432
+
433
+ @@index([user_id], map: "idx_users_programs_user")
434
+ @@index([program_id, role_program_id], map: "idx_users_programs_program")
375
435
  }
376
436
 
377
437
  model users_soft_skill_instance {
@@ -384,6 +444,9 @@ model users_soft_skill_instance {
384
444
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
385
445
 
386
446
  @@id([user_id, soft_skill_instance_id])
447
+
448
+ @@index([user_id], map: "idx_users_ssi_user")
449
+ @@index([soft_skill_instance_id], map: "idx_users_ssi_instance")
387
450
  }
388
451
 
389
452
  model roles_initiatives_badges {
@@ -396,6 +459,9 @@ model roles_initiatives_badges {
396
459
  roles_initiatives roles_initiatives @relation(fields: [roles_initiatives_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
397
460
 
398
461
  @@id([roles_initiatives_id, badges_id])
462
+
463
+ @@index([badges_id], map: "idx_rib_badge")
464
+ @@index([roles_initiatives_id], map: "idx_rib_role")
399
465
  }
400
466
 
401
467
  model notifications {
@@ -408,6 +474,7 @@ model notifications {
408
474
  origin String @default("Ser+") @db.VarChar(50)
409
475
  sent_at DateTime @default(now()) @db.Timestamp(6)
410
476
  url String? @db.VarChar(500)
477
+ img Json?
411
478
 
412
479
  sender users? @relation("NotificationSender", fields: [sender_id], references: [id], onDelete: SetNull)
413
480
  receiver users @relation("NotificationReceiver", fields: [receiver_id], references: [id], onDelete: Cascade)
@@ -415,6 +482,9 @@ model notifications {
415
482
  @@index([receiver_id])
416
483
  @@index([sent_at(sort: Desc)])
417
484
  @@index([sender_id])
485
+
486
+ @@index([receiver_id, sent_at(sort: Desc)], map: "idx_notifications_receiver_sent_v2")
487
+ @@index([sender_id, sent_at(sort: Desc)], map: "idx_notifications_sender_sent")
418
488
  }
419
489
 
420
490
  model typologies {