@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.
Files changed (32) hide show
  1. package/client/edge.js +41 -20
  2. package/client/index-browser.js +36 -15
  3. package/client/index.d.ts +1434 -1100
  4. package/client/index.js +41 -20
  5. package/client/libquery_engine-darwin.dylib.node +0 -0
  6. package/client/package.json +1 -1
  7. package/client/schema.prisma +62 -44
  8. package/client/wasm.js +36 -15
  9. package/package.json +1 -1
  10. package/prisma/schema/assessmentLibrary.prisma +26 -15
  11. package/prisma/schema/authModule.prisma +1 -0
  12. package/prisma/schema/evaluationPlan.prisma +2 -1
  13. package/prisma/schema/interview.prisma +21 -20
  14. package/prisma/schema/ongoingEvaluation.prisma +30 -26
  15. package/prisma/schema/user.prisma +2 -1
  16. package/prisma/.DS_Store +0 -0
  17. package/prisma/migrations/20260415120000_remove_job_profile_current_phase/migration.sql +0 -2
  18. package/prisma/migrations/20260422120000_add_integration_provider_zoom/migration.sql +0 -2
  19. package/prisma/migrations/20260422140000_add_zoom_meeting_tables/migration.sql +0 -57
  20. package/prisma/migrations/20260422180000_add_zoom_webhook_event/migration.sql +0 -18
  21. package/prisma/migrations/20260423140000_add_interview_platform/migration.sql +0 -6
  22. package/prisma/migrations/20260423150000_remove_interview_zoom_topic/migration.sql +0 -2
  23. package/prisma/migrations/20260423160000_zoom_meeting_uuid/migration.sql +0 -4
  24. package/prisma/migrations/20260424120000_auth_module_user_provider_unique/migration.sql +0 -5
  25. package/prisma/migrations/20260424130000_zoom_meeting_zoom_host_user_id/migration.sql +0 -6
  26. package/prisma/migrations/20260425100000_zoom_participant_user_enum/migration.sql +0 -22
  27. package/prisma/migrations/20260425110000_zoom_participant_zoom_id_required/migration.sql +0 -13
  28. package/prisma/migrations/20260425120000_zoom_participant_id_nullable/migration.sql +0 -4
  29. package/prisma/migrations/20260429140000_drop_evaluation_plan_job_order_unique/migration.sql +0 -5
  30. package/prisma/migrations/20260429180000_eval_plan_timeline_optional_ongoing_duration/migration.sql +0 -15
  31. package/prisma/migrations/20260430120000_drop_assessment_library_metadata_fields/migration.sql +0 -8
  32. package/prisma/migrations/migration_lock.toml +0 -3
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-ce0ead501ab5f4943030635b9183cffe4d4daabd0bff6b1c5e5c12552b7c8110",
2
+ "name": "prisma-client-132116727cdcdad441587fda0233ddbe5933e4b700a944210a2e30459c4f4576",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "index-browser.js",
@@ -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 String @id @default(uuid())
213
- title String
214
- time_required Int
215
- passing_score Float?
216
- max_score Float?
217
- organisation_id String
218
- created_at DateTime @default(now())
219
- updated_at DateTime @updatedAt
220
- created_by String
221
- updated_by String
222
- is_active Boolean @default(true)
223
- organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
224
- questions Question[] // One assessment → many questions
225
- assessments Assessment[]
226
- evaluation_Plans EvaluationPlan[]
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
- // Data Fields
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
- completed_at: 'completed_at',
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
- duration: 'duration',
688
- deadline: 'deadline',
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
- organisation_id: 'organisation_id',
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptware/eagles-db",
3
- "version": "0.1.84",
3
+ "version": "0.1.85",
4
4
  "description": "A Prisma client package for Treadspace database operations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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 String @id @default(uuid())
5
- title String
6
- time_required Int
7
- passing_score Float?
8
- max_score Float?
9
- organisation_id String
10
- created_at DateTime @default(now())
11
- updated_at DateTime @updatedAt
12
- created_by String
13
- updated_by String
14
- is_active Boolean @default(true)
15
- organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
16
- questions Question[] // One assessment → many questions
17
- assessments Assessment[]
18
- evaluation_Plans EvaluationPlan[]
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
  }
@@ -2,6 +2,7 @@ enum AuthProvider {
2
2
  GOOGLE
3
3
  MICROSOFT
4
4
  ZOOM
5
+ CALENDLY
5
6
  }
6
7
 
7
8
  model AuthModule {
@@ -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 DateTime @default(now())
59
- updated_at DateTime @updatedAt
60
- created_by String
61
- updated_by String
62
- is_active Boolean @default(true)
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 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?
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
- // Data Fields
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,2 +0,0 @@
1
- -- AlterTable
2
- ALTER TABLE "JobProfile" DROP COLUMN IF EXISTS "current_phase";
@@ -1,2 +0,0 @@
1
- -- AlterEnum (re-run safe only if your PG version supports IF NOT EXISTS; otherwise apply once)
2
- ALTER TYPE "IntegrationProvider" ADD VALUE 'ZOOM';
@@ -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;