@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 +1 -1
- package/prisma/clear-database.ts +91 -0
- package/prisma/schema.prisma +88 -18
- package/prisma/seed2.ts +3026 -0
package/package.json
CHANGED
|
@@ -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
|
+
});
|
package/prisma/schema.prisma
CHANGED
|
@@ -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)
|
|
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
|
|
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
|
|
338
|
-
initiative_id
|
|
339
|
-
role_initiative_id
|
|
340
|
-
is_creator
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
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)
|
|
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 {
|