@campus-labs/prisma-client 0.5.0 → 0.6.0

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.0",
3
+ "version": "0.6.0",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -24,7 +24,7 @@
24
24
  "postinstall": "npx prisma@6.9.0 generate"
25
25
  },
26
26
  "prisma": {
27
- "seed": "ts-node prisma/seed.ts"
27
+ "seed": "ts-node prisma/seed2.ts"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "^24.0.1",
@@ -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 {
@@ -236,7 +274,7 @@ model soft_skills {
236
274
  img_achieved Json
237
275
  img_inactive Json
238
276
  description String @db.VarChar(1000)
239
- points Int
277
+ points Int?
240
278
  created_at DateTime @default(now()) @db.Timestamp(6)
241
279
  updated_at DateTime @default(now()) @db.Timestamp(6)
242
280
  deleted_at DateTime? @db.Timestamp(6)
@@ -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 {
@@ -300,7 +341,7 @@ model users {
300
341
  deleted_at DateTime? @db.Timestamp(6)
301
342
  notification_tokens String[] @db.VarChar(5000)
302
343
  points Int @default(0)
303
- ua_iupi String @db.VarChar(50) @unique
344
+ ua_iupi String @unique @db.VarChar(50)
304
345
  last_notification_check DateTime @default(now()) @db.Timestamp(6)
305
346
  badges_instances badges_instances[]
306
347
  evidences evidences[]
@@ -316,7 +357,11 @@ model users {
316
357
  received_notifications notifications[] @relation("NotificationReceiver")
317
358
  sent_connection_requests user_to_user[] @relation("UserConnectionRequester")
318
359
  received_connection_requests user_to_user[] @relation("UserConnectionRequested")
319
- user_saved_initiatives user_saved_initiatives[]
360
+ user_saved_initiatives user_saved_initiatives[]
361
+
362
+ @@index([role_platform_id], map: "idx_users_role")
363
+ @@index([points(sort: Desc)], map: "idx_users_points")
364
+ @@index([last_online(sort: Desc)], map: "idx_users_last_online")
320
365
  }
321
366
 
322
367
  model user_to_user {
@@ -331,10 +376,13 @@ model user_to_user {
331
376
  requested users @relation("UserConnectionRequested", fields: [requested_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
332
377
 
333
378
  @@id([requester_id, requested_id])
379
+
380
+ @@index([requester_id, status], map: "idx_user_to_user_requester_status")
381
+ @@index([requested_id, status], map: "idx_user_to_user_requested_status")
334
382
  }
335
383
 
336
384
  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)
385
+ user_id String @default("1") @db.VarChar(50)
338
386
  initiative_id Int
339
387
  role_initiative_id Int @default(3)
340
388
  is_creator Boolean @default(false)
@@ -346,6 +394,9 @@ model user_initiative {
346
394
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
347
395
 
348
396
  @@id([user_id, initiative_id])
397
+
398
+ @@index([user_id, role_initiative_id], map: "idx_user_initiative_user_role")
399
+ @@index([initiative_id, role_initiative_id], map: "idx_user_initiative_initiative_role")
349
400
  }
350
401
 
351
402
  model user_saved_initiatives {
@@ -356,12 +407,14 @@ model user_saved_initiatives {
356
407
  deleted_at DateTime? @db.Timestamp(6)
357
408
  initiatives initiatives @relation(fields: [initiative_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
358
409
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
359
-
410
+
360
411
  @@id([user_id, initiative_id])
412
+
413
+ @@index([user_id, created_at(sort: Desc)], map: "idx_saved_initiatives_user")
361
414
  }
362
415
 
363
416
  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)
417
+ user_id String @default("1") @db.VarChar(50)
365
418
  program_id Int
366
419
  role_program_id Int @default(2)
367
420
  created_at DateTime @default(now()) @db.Timestamp(6)
@@ -372,6 +425,9 @@ model users_programs {
372
425
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
373
426
 
374
427
  @@id([user_id, program_id, role_program_id])
428
+
429
+ @@index([user_id], map: "idx_users_programs_user")
430
+ @@index([program_id, role_program_id], map: "idx_users_programs_program")
375
431
  }
376
432
 
377
433
  model users_soft_skill_instance {
@@ -384,6 +440,9 @@ model users_soft_skill_instance {
384
440
  users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
385
441
 
386
442
  @@id([user_id, soft_skill_instance_id])
443
+
444
+ @@index([user_id], map: "idx_users_ssi_user")
445
+ @@index([soft_skill_instance_id], map: "idx_users_ssi_instance")
387
446
  }
388
447
 
389
448
  model roles_initiatives_badges {
@@ -396,6 +455,9 @@ model roles_initiatives_badges {
396
455
  roles_initiatives roles_initiatives @relation(fields: [roles_initiatives_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
397
456
 
398
457
  @@id([roles_initiatives_id, badges_id])
458
+
459
+ @@index([badges_id], map: "idx_rib_badge")
460
+ @@index([roles_initiatives_id], map: "idx_rib_role")
399
461
  }
400
462
 
401
463
  model notifications {
@@ -415,6 +477,9 @@ model notifications {
415
477
  @@index([receiver_id])
416
478
  @@index([sent_at(sort: Desc)])
417
479
  @@index([sender_id])
480
+
481
+ @@index([receiver_id, sent_at(sort: Desc)], map: "idx_notifications_receiver_sent_v2")
482
+ @@index([sender_id, sent_at(sort: Desc)], map: "idx_notifications_sender_sent")
418
483
  }
419
484
 
420
485
  model typologies {