@adaptware/eagles-db 0.1.84 → 0.1.85
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/client/edge.js +41 -20
- package/client/index-browser.js +36 -15
- package/client/index.d.ts +1434 -1100
- package/client/index.js +41 -20
- package/client/libquery_engine-darwin.dylib.node +0 -0
- package/client/package.json +1 -1
- package/client/schema.prisma +62 -44
- package/client/wasm.js +36 -15
- package/package.json +1 -1
- package/prisma/schema/assessmentLibrary.prisma +26 -15
- package/prisma/schema/authModule.prisma +1 -0
- package/prisma/schema/evaluationPlan.prisma +2 -1
- package/prisma/schema/interview.prisma +21 -20
- package/prisma/schema/ongoingEvaluation.prisma +30 -26
- package/prisma/schema/user.prisma +2 -1
- package/prisma/.DS_Store +0 -0
- package/prisma/migrations/20260415120000_remove_job_profile_current_phase/migration.sql +0 -2
- package/prisma/migrations/20260422120000_add_integration_provider_zoom/migration.sql +0 -2
- package/prisma/migrations/20260422140000_add_zoom_meeting_tables/migration.sql +0 -57
- package/prisma/migrations/20260422180000_add_zoom_webhook_event/migration.sql +0 -18
- package/prisma/migrations/20260423140000_add_interview_platform/migration.sql +0 -6
- package/prisma/migrations/20260423150000_remove_interview_zoom_topic/migration.sql +0 -2
- package/prisma/migrations/20260423160000_zoom_meeting_uuid/migration.sql +0 -4
- package/prisma/migrations/20260424120000_auth_module_user_provider_unique/migration.sql +0 -5
- package/prisma/migrations/20260424130000_zoom_meeting_zoom_host_user_id/migration.sql +0 -6
- package/prisma/migrations/20260425100000_zoom_participant_user_enum/migration.sql +0 -22
- package/prisma/migrations/20260425110000_zoom_participant_zoom_id_required/migration.sql +0 -13
- package/prisma/migrations/20260425120000_zoom_participant_id_nullable/migration.sql +0 -4
- package/prisma/migrations/20260429140000_drop_evaluation_plan_job_order_unique/migration.sql +0 -5
- package/prisma/migrations/20260429180000_eval_plan_timeline_optional_ongoing_duration/migration.sql +0 -15
- package/prisma/migrations/20260430120000_drop_assessment_library_metadata_fields/migration.sql +0 -8
- package/prisma/migrations/migration_lock.toml +0 -3
|
Binary file
|
package/client/package.json
CHANGED
package/client/schema.prisma
CHANGED
|
@@ -208,22 +208,33 @@ model Assessment {
|
|
|
208
208
|
|
|
209
209
|
/// Defines how an assessment is conducted.
|
|
210
210
|
|
|
211
|
+
enum AssessmentCategory {
|
|
212
|
+
MCQ
|
|
213
|
+
COMPETENCY
|
|
214
|
+
CASE_STUDY
|
|
215
|
+
ASSIGNMENT
|
|
216
|
+
}
|
|
217
|
+
|
|
211
218
|
model AssessmentLibrary {
|
|
212
|
-
id
|
|
213
|
-
title
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
219
|
+
id String @id @default(uuid())
|
|
220
|
+
title String
|
|
221
|
+
assessment_type String?
|
|
222
|
+
description String?
|
|
223
|
+
assessment_category AssessmentCategory
|
|
224
|
+
time_required Int
|
|
225
|
+
passing_score Float?
|
|
226
|
+
max_score Float?
|
|
227
|
+
organisation_id String
|
|
228
|
+
created_by_ai Boolean @default(false)
|
|
229
|
+
created_at DateTime @default(now())
|
|
230
|
+
updated_at DateTime @updatedAt
|
|
231
|
+
created_by String
|
|
232
|
+
updated_by String
|
|
233
|
+
is_active Boolean @default(true)
|
|
234
|
+
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
235
|
+
questions Question[] // One assessment → many questions
|
|
236
|
+
assessments Assessment[]
|
|
237
|
+
evaluation_Plans EvaluationPlan[]
|
|
227
238
|
|
|
228
239
|
@@index([organisation_id])
|
|
229
240
|
}
|
|
@@ -314,6 +325,7 @@ enum AuthProvider {
|
|
|
314
325
|
GOOGLE
|
|
315
326
|
MICROSOFT
|
|
316
327
|
ZOOM
|
|
328
|
+
CALENDLY
|
|
317
329
|
}
|
|
318
330
|
|
|
319
331
|
model AuthModule {
|
|
@@ -512,7 +524,7 @@ model EvaluationPlan {
|
|
|
512
524
|
elimination_round Boolean @default(false)
|
|
513
525
|
evaluation_type EvaluationType
|
|
514
526
|
type_of_round RoundType
|
|
515
|
-
timeline Int
|
|
527
|
+
timeline Int
|
|
516
528
|
order_no Int?
|
|
517
529
|
details Json?
|
|
518
530
|
plan_type EvaluationPlanType @default(GENERIC)
|
|
@@ -534,6 +546,7 @@ model EvaluationPlan {
|
|
|
534
546
|
assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)
|
|
535
547
|
ongoing_evaluations OngoingEvaluation[]
|
|
536
548
|
|
|
549
|
+
@@unique([job_description_id, order_no])
|
|
537
550
|
@@index([job_description_id])
|
|
538
551
|
}
|
|
539
552
|
|
|
@@ -762,6 +775,7 @@ model Interview {
|
|
|
762
775
|
application_id String?
|
|
763
776
|
resume_id String
|
|
764
777
|
job_description_id String
|
|
778
|
+
calendar_event_id String?
|
|
765
779
|
/// Data
|
|
766
780
|
room_name String?
|
|
767
781
|
interview_summary String[]
|
|
@@ -772,7 +786,6 @@ model Interview {
|
|
|
772
786
|
recording_url String?
|
|
773
787
|
interview_status InterviewStatus @default(SCHEDULED)
|
|
774
788
|
interview_platform InterviewPlatform @default(TREADSPACE)
|
|
775
|
-
google_event_id String?
|
|
776
789
|
/// Old Feedback fields will be deprecated soon
|
|
777
790
|
ai_interview_feedback InterviewFeedback?
|
|
778
791
|
interview_feedback InterviewFeedback?
|
|
@@ -1011,6 +1024,16 @@ model Notes {
|
|
|
1011
1024
|
@@index([user_id, created_at])
|
|
1012
1025
|
}
|
|
1013
1026
|
|
|
1027
|
+
enum OngoingEvaluationStatus {
|
|
1028
|
+
LOCKED
|
|
1029
|
+
ACTION_REQUIRED
|
|
1030
|
+
IN_PROGRESS
|
|
1031
|
+
EVALUATED
|
|
1032
|
+
CLEARED
|
|
1033
|
+
NOT_CLEARED
|
|
1034
|
+
SKIPPED
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1014
1037
|
enum OngoingEvaluationState {
|
|
1015
1038
|
NOT_STARTED
|
|
1016
1039
|
IN_PROGRESS
|
|
@@ -1029,44 +1052,20 @@ enum OngoingEvaluationRoundStatus {
|
|
|
1029
1052
|
}
|
|
1030
1053
|
|
|
1031
1054
|
model OngoingEvaluation {
|
|
1032
|
-
// Primary Key
|
|
1033
1055
|
id String @id @default(uuid())
|
|
1034
|
-
// Foreign Keys
|
|
1035
|
-
organisation_id String
|
|
1036
1056
|
application_id String
|
|
1037
1057
|
candidate_id String
|
|
1038
1058
|
resume_id String
|
|
1059
|
+
organisation_id String
|
|
1039
1060
|
job_description_id String
|
|
1040
1061
|
evaluation_plan_id String
|
|
1041
1062
|
interview_id String? @unique
|
|
1042
1063
|
assignment_id String? @unique
|
|
1043
1064
|
assessment_id String? @unique
|
|
1044
|
-
|
|
1065
|
+
status OngoingEvaluationStatus?
|
|
1045
1066
|
state OngoingEvaluationState? @default(NOT_STARTED)
|
|
1046
1067
|
round_status OngoingEvaluationRoundStatus? @default(NOT_SCHEDULED)
|
|
1047
1068
|
comments String? @default("")
|
|
1048
|
-
completed_at DateTime?
|
|
1049
|
-
/// Evaluation Plan Fields Filled After Round Started
|
|
1050
|
-
title String?
|
|
1051
|
-
description String?
|
|
1052
|
-
order_no Int?
|
|
1053
|
-
format EvaluationRoundFormat?
|
|
1054
|
-
topics String[]
|
|
1055
|
-
assignee String?
|
|
1056
|
-
elimination_round Boolean? @default(false)
|
|
1057
|
-
evaluation_type EvaluationType?
|
|
1058
|
-
type_of_round RoundType?
|
|
1059
|
-
duration Int?
|
|
1060
|
-
deadline Int?
|
|
1061
|
-
duration_unit DurationUnit?
|
|
1062
|
-
details Json?
|
|
1063
|
-
// Audit Fields
|
|
1064
|
-
created_at DateTime @default(now())
|
|
1065
|
-
updated_at DateTime @updatedAt
|
|
1066
|
-
created_by String
|
|
1067
|
-
updated_by String
|
|
1068
|
-
is_active Boolean @default(true)
|
|
1069
|
-
is_current Boolean @default(false)
|
|
1070
1069
|
// Relations
|
|
1071
1070
|
jobDescription JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)
|
|
1072
1071
|
application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
@@ -1077,6 +1076,24 @@ model OngoingEvaluation {
|
|
|
1077
1076
|
interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
1078
1077
|
assignment Assignment?
|
|
1079
1078
|
assessment Assessment? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)
|
|
1079
|
+
created_at DateTime @default(now())
|
|
1080
|
+
updated_at DateTime @updatedAt
|
|
1081
|
+
created_by String
|
|
1082
|
+
updated_by String
|
|
1083
|
+
is_active Boolean @default(true)
|
|
1084
|
+
is_current Boolean @default(false)
|
|
1085
|
+
// Evaluation Plan Details Will be stored only when candidate starts for the evaluation round
|
|
1086
|
+
title String?
|
|
1087
|
+
description String?
|
|
1088
|
+
order_no Int?
|
|
1089
|
+
format EvaluationRoundFormat?
|
|
1090
|
+
topics String[]
|
|
1091
|
+
assignee String?
|
|
1092
|
+
elimination_round Boolean? @default(false)
|
|
1093
|
+
evaluation_type EvaluationType?
|
|
1094
|
+
type_of_round RoundType?
|
|
1095
|
+
timeline Int?
|
|
1096
|
+
details Json?
|
|
1080
1097
|
|
|
1081
1098
|
@@unique([application_id, evaluation_plan_id])
|
|
1082
1099
|
@@index([application_id])
|
|
@@ -1356,6 +1373,7 @@ model User {
|
|
|
1356
1373
|
password String
|
|
1357
1374
|
role_id String
|
|
1358
1375
|
role UserRole @relation(fields: [role_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
|
|
1376
|
+
organisation_id String?
|
|
1359
1377
|
// Back-relations are defined from Resume side via user_id
|
|
1360
1378
|
google_id String? @unique
|
|
1361
1379
|
refresh_token String?
|
|
@@ -1366,8 +1384,8 @@ model User {
|
|
|
1366
1384
|
is_active Boolean @default(true)
|
|
1367
1385
|
is_self_registered Boolean @default(true)
|
|
1368
1386
|
permission_id String? @unique
|
|
1387
|
+
preferences Json? @default("{}")
|
|
1369
1388
|
permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
1370
|
-
organisation_id String?
|
|
1371
1389
|
organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
1372
1390
|
applications Application[]
|
|
1373
1391
|
resume Resume[]
|
package/client/wasm.js
CHANGED
|
@@ -236,10 +236,14 @@ exports.Prisma.AssessmentScalarFieldEnum = {
|
|
|
236
236
|
exports.Prisma.AssessmentLibraryScalarFieldEnum = {
|
|
237
237
|
id: 'id',
|
|
238
238
|
title: 'title',
|
|
239
|
+
assessment_type: 'assessment_type',
|
|
240
|
+
description: 'description',
|
|
241
|
+
assessment_category: 'assessment_category',
|
|
239
242
|
time_required: 'time_required',
|
|
240
243
|
passing_score: 'passing_score',
|
|
241
244
|
max_score: 'max_score',
|
|
242
245
|
organisation_id: 'organisation_id',
|
|
246
|
+
created_by_ai: 'created_by_ai',
|
|
243
247
|
created_at: 'created_at',
|
|
244
248
|
updated_at: 'updated_at',
|
|
245
249
|
created_by: 'created_by',
|
|
@@ -522,6 +526,7 @@ exports.Prisma.InterviewScalarFieldEnum = {
|
|
|
522
526
|
application_id: 'application_id',
|
|
523
527
|
resume_id: 'resume_id',
|
|
524
528
|
job_description_id: 'job_description_id',
|
|
529
|
+
calendar_event_id: 'calendar_event_id',
|
|
525
530
|
room_name: 'room_name',
|
|
526
531
|
interview_summary: 'interview_summary',
|
|
527
532
|
scheduled_start_time: 'scheduled_start_time',
|
|
@@ -531,7 +536,6 @@ exports.Prisma.InterviewScalarFieldEnum = {
|
|
|
531
536
|
recording_url: 'recording_url',
|
|
532
537
|
interview_status: 'interview_status',
|
|
533
538
|
interview_platform: 'interview_platform',
|
|
534
|
-
google_event_id: 'google_event_id',
|
|
535
539
|
ai_interview_feedback: 'ai_interview_feedback',
|
|
536
540
|
interview_feedback: 'interview_feedback',
|
|
537
541
|
overall_feedback: 'overall_feedback',
|
|
@@ -662,19 +666,25 @@ exports.Prisma.NotesScalarFieldEnum = {
|
|
|
662
666
|
|
|
663
667
|
exports.Prisma.OngoingEvaluationScalarFieldEnum = {
|
|
664
668
|
id: 'id',
|
|
665
|
-
organisation_id: 'organisation_id',
|
|
666
669
|
application_id: 'application_id',
|
|
667
670
|
candidate_id: 'candidate_id',
|
|
668
671
|
resume_id: 'resume_id',
|
|
672
|
+
organisation_id: 'organisation_id',
|
|
669
673
|
job_description_id: 'job_description_id',
|
|
670
674
|
evaluation_plan_id: 'evaluation_plan_id',
|
|
671
675
|
interview_id: 'interview_id',
|
|
672
676
|
assignment_id: 'assignment_id',
|
|
673
677
|
assessment_id: 'assessment_id',
|
|
678
|
+
status: 'status',
|
|
674
679
|
state: 'state',
|
|
675
680
|
round_status: 'round_status',
|
|
676
681
|
comments: 'comments',
|
|
677
|
-
|
|
682
|
+
created_at: 'created_at',
|
|
683
|
+
updated_at: 'updated_at',
|
|
684
|
+
created_by: 'created_by',
|
|
685
|
+
updated_by: 'updated_by',
|
|
686
|
+
is_active: 'is_active',
|
|
687
|
+
is_current: 'is_current',
|
|
678
688
|
title: 'title',
|
|
679
689
|
description: 'description',
|
|
680
690
|
order_no: 'order_no',
|
|
@@ -684,16 +694,8 @@ exports.Prisma.OngoingEvaluationScalarFieldEnum = {
|
|
|
684
694
|
elimination_round: 'elimination_round',
|
|
685
695
|
evaluation_type: 'evaluation_type',
|
|
686
696
|
type_of_round: 'type_of_round',
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
duration_unit: 'duration_unit',
|
|
690
|
-
details: 'details',
|
|
691
|
-
created_at: 'created_at',
|
|
692
|
-
updated_at: 'updated_at',
|
|
693
|
-
created_by: 'created_by',
|
|
694
|
-
updated_by: 'updated_by',
|
|
695
|
-
is_active: 'is_active',
|
|
696
|
-
is_current: 'is_current'
|
|
697
|
+
timeline: 'timeline',
|
|
698
|
+
details: 'details'
|
|
697
699
|
};
|
|
698
700
|
|
|
699
701
|
exports.Prisma.OrganisationScalarFieldEnum = {
|
|
@@ -841,6 +843,7 @@ exports.Prisma.UserScalarFieldEnum = {
|
|
|
841
843
|
email: 'email',
|
|
842
844
|
password: 'password',
|
|
843
845
|
role_id: 'role_id',
|
|
846
|
+
organisation_id: 'organisation_id',
|
|
844
847
|
google_id: 'google_id',
|
|
845
848
|
refresh_token: 'refresh_token',
|
|
846
849
|
created_at: 'created_at',
|
|
@@ -850,7 +853,7 @@ exports.Prisma.UserScalarFieldEnum = {
|
|
|
850
853
|
is_active: 'is_active',
|
|
851
854
|
is_self_registered: 'is_self_registered',
|
|
852
855
|
permission_id: 'permission_id',
|
|
853
|
-
|
|
856
|
+
preferences: 'preferences',
|
|
854
857
|
profile_created: 'profile_created',
|
|
855
858
|
first_login_status: 'first_login_status',
|
|
856
859
|
name: 'name',
|
|
@@ -984,6 +987,13 @@ exports.ApplicationStatus = exports.$Enums.ApplicationStatus = {
|
|
|
984
987
|
REJECTED: 'REJECTED'
|
|
985
988
|
};
|
|
986
989
|
|
|
990
|
+
exports.AssessmentCategory = exports.$Enums.AssessmentCategory = {
|
|
991
|
+
MCQ: 'MCQ',
|
|
992
|
+
COMPETENCY: 'COMPETENCY',
|
|
993
|
+
CASE_STUDY: 'CASE_STUDY',
|
|
994
|
+
ASSIGNMENT: 'ASSIGNMENT'
|
|
995
|
+
};
|
|
996
|
+
|
|
987
997
|
exports.AssignmentStatus = exports.$Enums.AssignmentStatus = {
|
|
988
998
|
AVAILABLE: 'AVAILABLE',
|
|
989
999
|
SCHEDULED: 'SCHEDULED',
|
|
@@ -993,7 +1003,8 @@ exports.AssignmentStatus = exports.$Enums.AssignmentStatus = {
|
|
|
993
1003
|
exports.AuthProvider = exports.$Enums.AuthProvider = {
|
|
994
1004
|
GOOGLE: 'GOOGLE',
|
|
995
1005
|
MICROSOFT: 'MICROSOFT',
|
|
996
|
-
ZOOM: 'ZOOM'
|
|
1006
|
+
ZOOM: 'ZOOM',
|
|
1007
|
+
CALENDLY: 'CALENDLY'
|
|
997
1008
|
};
|
|
998
1009
|
|
|
999
1010
|
exports.JobType = exports.$Enums.JobType = {
|
|
@@ -1121,6 +1132,16 @@ exports.JobProfileStatus = exports.$Enums.JobProfileStatus = {
|
|
|
1121
1132
|
COMPLETE: 'COMPLETE'
|
|
1122
1133
|
};
|
|
1123
1134
|
|
|
1135
|
+
exports.OngoingEvaluationStatus = exports.$Enums.OngoingEvaluationStatus = {
|
|
1136
|
+
LOCKED: 'LOCKED',
|
|
1137
|
+
ACTION_REQUIRED: 'ACTION_REQUIRED',
|
|
1138
|
+
IN_PROGRESS: 'IN_PROGRESS',
|
|
1139
|
+
EVALUATED: 'EVALUATED',
|
|
1140
|
+
CLEARED: 'CLEARED',
|
|
1141
|
+
NOT_CLEARED: 'NOT_CLEARED',
|
|
1142
|
+
SKIPPED: 'SKIPPED'
|
|
1143
|
+
};
|
|
1144
|
+
|
|
1124
1145
|
exports.OngoingEvaluationState = exports.$Enums.OngoingEvaluationState = {
|
|
1125
1146
|
NOT_STARTED: 'NOT_STARTED',
|
|
1126
1147
|
IN_PROGRESS: 'IN_PROGRESS',
|
package/package.json
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
/// Defines how an assessment is conducted.
|
|
2
2
|
|
|
3
|
+
enum AssessmentCategory {
|
|
4
|
+
MCQ
|
|
5
|
+
COMPETENCY
|
|
6
|
+
CASE_STUDY
|
|
7
|
+
ASSIGNMENT
|
|
8
|
+
}
|
|
9
|
+
|
|
3
10
|
model AssessmentLibrary {
|
|
4
|
-
id
|
|
5
|
-
title
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
id String @id @default(uuid())
|
|
12
|
+
title String
|
|
13
|
+
assessment_type String?
|
|
14
|
+
description String?
|
|
15
|
+
assessment_category AssessmentCategory
|
|
16
|
+
time_required Int
|
|
17
|
+
passing_score Float?
|
|
18
|
+
max_score Float?
|
|
19
|
+
organisation_id String
|
|
20
|
+
created_by_ai Boolean @default(false)
|
|
21
|
+
created_at DateTime @default(now())
|
|
22
|
+
updated_at DateTime @updatedAt
|
|
23
|
+
created_by String
|
|
24
|
+
updated_by String
|
|
25
|
+
is_active Boolean @default(true)
|
|
26
|
+
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
27
|
+
questions Question[] // One assessment → many questions
|
|
28
|
+
assessments Assessment[]
|
|
29
|
+
evaluation_Plans EvaluationPlan[]
|
|
19
30
|
|
|
20
31
|
@@index([organisation_id])
|
|
21
32
|
}
|
|
@@ -66,7 +66,7 @@ model EvaluationPlan {
|
|
|
66
66
|
elimination_round Boolean @default(false)
|
|
67
67
|
evaluation_type EvaluationType
|
|
68
68
|
type_of_round RoundType
|
|
69
|
-
timeline Int
|
|
69
|
+
timeline Int
|
|
70
70
|
order_no Int?
|
|
71
71
|
details Json?
|
|
72
72
|
plan_type EvaluationPlanType @default(GENERIC)
|
|
@@ -88,5 +88,6 @@ model EvaluationPlan {
|
|
|
88
88
|
assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)
|
|
89
89
|
ongoing_evaluations OngoingEvaluation[]
|
|
90
90
|
|
|
91
|
+
@@unique([job_description_id, order_no])
|
|
91
92
|
@@index([job_description_id])
|
|
92
93
|
}
|
|
@@ -30,6 +30,7 @@ model Interview {
|
|
|
30
30
|
application_id String?
|
|
31
31
|
resume_id String
|
|
32
32
|
job_description_id String
|
|
33
|
+
calendar_event_id String?
|
|
33
34
|
/// Data
|
|
34
35
|
room_name String?
|
|
35
36
|
interview_summary String[]
|
|
@@ -40,7 +41,6 @@ model Interview {
|
|
|
40
41
|
recording_url String?
|
|
41
42
|
interview_status InterviewStatus @default(SCHEDULED)
|
|
42
43
|
interview_platform InterviewPlatform @default(TREADSPACE)
|
|
43
|
-
google_event_id String?
|
|
44
44
|
/// Old Feedback fields will be deprecated soon
|
|
45
45
|
ai_interview_feedback InterviewFeedback?
|
|
46
46
|
interview_feedback InterviewFeedback?
|
|
@@ -55,26 +55,27 @@ model Interview {
|
|
|
55
55
|
final_feedback Json?
|
|
56
56
|
|
|
57
57
|
/// Audit fields
|
|
58
|
-
created_at
|
|
59
|
-
updated_at
|
|
60
|
-
created_by
|
|
61
|
-
updated_by
|
|
62
|
-
is_active
|
|
58
|
+
created_at DateTime @default(now())
|
|
59
|
+
updated_at DateTime @updatedAt
|
|
60
|
+
created_by String
|
|
61
|
+
updated_by String
|
|
62
|
+
is_active Boolean @default(true)
|
|
63
63
|
// Relations
|
|
64
|
-
candidate
|
|
65
|
-
interviewer
|
|
66
|
-
organisation
|
|
67
|
-
job_description
|
|
68
|
-
resume
|
|
69
|
-
evaluation_plan
|
|
70
|
-
application
|
|
71
|
-
ongoing_evaluation
|
|
72
|
-
transcripts
|
|
73
|
-
suggestions
|
|
74
|
-
feedback
|
|
75
|
-
interviewNotes
|
|
76
|
-
liveAnalysis
|
|
77
|
-
zoom_meeting
|
|
64
|
+
candidate User? @relation("CandidateInterviews", fields: [candidate_id], references: [id], onDelete: SetNull)
|
|
65
|
+
interviewer User? @relation("InterviewerInterviews", fields: [interviewer_id], references: [id], onDelete: SetNull)
|
|
66
|
+
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
67
|
+
job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
68
|
+
resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
69
|
+
evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
70
|
+
application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
71
|
+
ongoing_evaluation OngoingEvaluation?
|
|
72
|
+
transcripts Transcript[]
|
|
73
|
+
suggestions Suggestion[]
|
|
74
|
+
feedback Feedback[]
|
|
75
|
+
interviewNotes InterviewNotes[]
|
|
76
|
+
liveAnalysis LiveAnalysis[]
|
|
77
|
+
zoom_meeting ZoomMeeting?
|
|
78
|
+
|
|
78
79
|
@@unique([interviewer_id, candidate_id, evaluation_plan_id])
|
|
79
80
|
@@index([candidate_id])
|
|
80
81
|
@@index([interviewer_id])
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
enum OngoingEvaluationStatus {
|
|
2
|
+
LOCKED
|
|
3
|
+
ACTION_REQUIRED
|
|
4
|
+
IN_PROGRESS
|
|
5
|
+
EVALUATED
|
|
6
|
+
CLEARED
|
|
7
|
+
NOT_CLEARED
|
|
8
|
+
SKIPPED
|
|
9
|
+
}
|
|
10
|
+
|
|
1
11
|
enum OngoingEvaluationState {
|
|
2
12
|
NOT_STARTED
|
|
3
13
|
IN_PROGRESS
|
|
@@ -16,44 +26,20 @@ enum OngoingEvaluationRoundStatus {
|
|
|
16
26
|
}
|
|
17
27
|
|
|
18
28
|
model OngoingEvaluation {
|
|
19
|
-
// Primary Key
|
|
20
29
|
id String @id @default(uuid())
|
|
21
|
-
// Foreign Keys
|
|
22
|
-
organisation_id String
|
|
23
30
|
application_id String
|
|
24
31
|
candidate_id String
|
|
25
32
|
resume_id String
|
|
33
|
+
organisation_id String
|
|
26
34
|
job_description_id String
|
|
27
35
|
evaluation_plan_id String
|
|
28
36
|
interview_id String? @unique
|
|
29
37
|
assignment_id String? @unique
|
|
30
38
|
assessment_id String? @unique
|
|
31
|
-
|
|
39
|
+
status OngoingEvaluationStatus?
|
|
32
40
|
state OngoingEvaluationState? @default(NOT_STARTED)
|
|
33
41
|
round_status OngoingEvaluationRoundStatus? @default(NOT_SCHEDULED)
|
|
34
42
|
comments String? @default("")
|
|
35
|
-
completed_at DateTime?
|
|
36
|
-
/// Evaluation Plan Fields Filled After Round Started
|
|
37
|
-
title String?
|
|
38
|
-
description String?
|
|
39
|
-
order_no Int?
|
|
40
|
-
format EvaluationRoundFormat?
|
|
41
|
-
topics String[]
|
|
42
|
-
assignee String?
|
|
43
|
-
elimination_round Boolean? @default(false)
|
|
44
|
-
evaluation_type EvaluationType?
|
|
45
|
-
type_of_round RoundType?
|
|
46
|
-
duration Int?
|
|
47
|
-
deadline Int?
|
|
48
|
-
duration_unit DurationUnit?
|
|
49
|
-
details Json?
|
|
50
|
-
// Audit Fields
|
|
51
|
-
created_at DateTime @default(now())
|
|
52
|
-
updated_at DateTime @updatedAt
|
|
53
|
-
created_by String
|
|
54
|
-
updated_by String
|
|
55
|
-
is_active Boolean @default(true)
|
|
56
|
-
is_current Boolean @default(false)
|
|
57
43
|
// Relations
|
|
58
44
|
jobDescription JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)
|
|
59
45
|
application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
@@ -64,6 +50,24 @@ model OngoingEvaluation {
|
|
|
64
50
|
interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
65
51
|
assignment Assignment?
|
|
66
52
|
assessment Assessment? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)
|
|
53
|
+
created_at DateTime @default(now())
|
|
54
|
+
updated_at DateTime @updatedAt
|
|
55
|
+
created_by String
|
|
56
|
+
updated_by String
|
|
57
|
+
is_active Boolean @default(true)
|
|
58
|
+
is_current Boolean @default(false)
|
|
59
|
+
// Evaluation Plan Details Will be stored only when candidate starts for the evaluation round
|
|
60
|
+
title String?
|
|
61
|
+
description String?
|
|
62
|
+
order_no Int?
|
|
63
|
+
format EvaluationRoundFormat?
|
|
64
|
+
topics String[]
|
|
65
|
+
assignee String?
|
|
66
|
+
elimination_round Boolean? @default(false)
|
|
67
|
+
evaluation_type EvaluationType?
|
|
68
|
+
type_of_round RoundType?
|
|
69
|
+
timeline Int?
|
|
70
|
+
details Json?
|
|
67
71
|
|
|
68
72
|
@@unique([application_id, evaluation_plan_id])
|
|
69
73
|
@@index([application_id])
|
|
@@ -9,6 +9,7 @@ model User {
|
|
|
9
9
|
password String
|
|
10
10
|
role_id String
|
|
11
11
|
role UserRole @relation(fields: [role_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
|
|
12
|
+
organisation_id String?
|
|
12
13
|
// Back-relations are defined from Resume side via user_id
|
|
13
14
|
google_id String? @unique
|
|
14
15
|
refresh_token String?
|
|
@@ -19,8 +20,8 @@ model User {
|
|
|
19
20
|
is_active Boolean @default(true)
|
|
20
21
|
is_self_registered Boolean @default(true)
|
|
21
22
|
permission_id String? @unique
|
|
23
|
+
preferences Json? @default("{}")
|
|
22
24
|
permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
23
|
-
organisation_id String?
|
|
24
25
|
organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
25
26
|
applications Application[]
|
|
26
27
|
resume Resume[]
|
package/prisma/.DS_Store
DELETED
|
Binary file
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
-- CreateTable
|
|
2
|
-
CREATE TABLE "ZoomMeeting" (
|
|
3
|
-
"id" TEXT NOT NULL,
|
|
4
|
-
"interview_id" TEXT NOT NULL,
|
|
5
|
-
"zoom_meeting_id" TEXT NOT NULL,
|
|
6
|
-
"meeting_number" TEXT NOT NULL,
|
|
7
|
-
"join_url" TEXT NOT NULL,
|
|
8
|
-
"start_url" TEXT,
|
|
9
|
-
"password" TEXT,
|
|
10
|
-
"topic" TEXT,
|
|
11
|
-
"scheduled_start_time" TIMESTAMP(3),
|
|
12
|
-
"scheduled_end_time" TIMESTAMP(3),
|
|
13
|
-
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
14
|
-
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
-
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
16
|
-
"created_by" TEXT NOT NULL,
|
|
17
|
-
"updated_by" TEXT NOT NULL,
|
|
18
|
-
|
|
19
|
-
CONSTRAINT "ZoomMeeting_pkey" PRIMARY KEY ("id")
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
-- CreateTable
|
|
23
|
-
CREATE TABLE "ZoomMeetingParticipant" (
|
|
24
|
-
"id" TEXT NOT NULL,
|
|
25
|
-
"zoom_meeting_row_id" TEXT NOT NULL,
|
|
26
|
-
"zoom_participant_id" TEXT,
|
|
27
|
-
"user_name" TEXT,
|
|
28
|
-
"user_email" TEXT,
|
|
29
|
-
"role" TEXT,
|
|
30
|
-
"join_time" TIMESTAMP(3),
|
|
31
|
-
"leave_time" TIMESTAMP(3),
|
|
32
|
-
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
33
|
-
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
34
|
-
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
35
|
-
"created_by" TEXT NOT NULL,
|
|
36
|
-
"updated_by" TEXT NOT NULL,
|
|
37
|
-
|
|
38
|
-
CONSTRAINT "ZoomMeetingParticipant_pkey" PRIMARY KEY ("id")
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
-- CreateIndex
|
|
42
|
-
CREATE UNIQUE INDEX "ZoomMeeting_interview_id_key" ON "ZoomMeeting"("interview_id");
|
|
43
|
-
|
|
44
|
-
-- CreateIndex
|
|
45
|
-
CREATE INDEX "ZoomMeeting_interview_id_idx" ON "ZoomMeeting"("interview_id");
|
|
46
|
-
|
|
47
|
-
-- CreateIndex
|
|
48
|
-
CREATE INDEX "ZoomMeeting_zoom_meeting_id_idx" ON "ZoomMeeting"("zoom_meeting_id");
|
|
49
|
-
|
|
50
|
-
-- CreateIndex
|
|
51
|
-
CREATE INDEX "ZoomMeetingParticipant_zoom_meeting_row_id_idx" ON "ZoomMeetingParticipant"("zoom_meeting_row_id");
|
|
52
|
-
|
|
53
|
-
-- AddForeignKey
|
|
54
|
-
ALTER TABLE "ZoomMeeting" ADD CONSTRAINT "ZoomMeeting_interview_id_fkey" FOREIGN KEY ("interview_id") REFERENCES "Interview"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
55
|
-
|
|
56
|
-
-- AddForeignKey
|
|
57
|
-
ALTER TABLE "ZoomMeetingParticipant" ADD CONSTRAINT "ZoomMeetingParticipant_zoom_meeting_row_id_fkey" FOREIGN KEY ("zoom_meeting_row_id") REFERENCES "ZoomMeeting"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|