@adaptware/eagles-db 0.1.48 → 0.1.49
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 +11 -188
- package/client/index-browser.js +4 -181
- package/client/index.d.ts +33952 -51713
- package/client/index.js +11 -188
- package/client/package.json +1 -1
- package/client/schema.prisma +71 -295
- package/client/wasm.js +4 -181
- package/package.json +1 -1
- package/prisma/.DS_Store +0 -0
- package/prisma/schema/assessment.prisma +0 -2
- package/prisma/schema/evaluationPlan.prisma +4 -7
- package/prisma/schema/feedback.prisma +9 -3
- package/prisma/schema/interview.prisma +37 -46
- package/prisma/schema/jobDescription.prisma +0 -1
- package/prisma/schema/organisation.prisma +2 -6
- package/prisma/schema/transcript.prisma +8 -9
- package/prisma/schema/user.prisma +0 -1
- package/prisma/schema/integration.prisma +0 -92
- package/prisma/schema/intermediateFeedback.prisma +0 -18
- package/prisma/schema/interviewLibrary.prisma +0 -31
- package/prisma/schema/overallFeedback.prisma +0 -34
- package/prisma/schema/panelist.prisma +0 -24
package/client/wasm.js
CHANGED
|
@@ -221,7 +221,6 @@ exports.Prisma.AssessmentScalarFieldEnum = {
|
|
|
221
221
|
created_by: 'created_by',
|
|
222
222
|
updated_by: 'updated_by',
|
|
223
223
|
is_active: 'is_active',
|
|
224
|
-
panelistId: 'panelistId',
|
|
225
224
|
userId: 'userId'
|
|
226
225
|
};
|
|
227
226
|
|
|
@@ -363,6 +362,7 @@ exports.Prisma.EvaluationPlanScalarFieldEnum = {
|
|
|
363
362
|
exports.Prisma.FeedbackScalarFieldEnum = {
|
|
364
363
|
id: 'id',
|
|
365
364
|
interview_id: 'interview_id',
|
|
365
|
+
feedback_type: 'feedback_type',
|
|
366
366
|
order_no: 'order_no',
|
|
367
367
|
ai_feedback: 'ai_feedback',
|
|
368
368
|
human_feedback: 'human_feedback',
|
|
@@ -420,78 +420,16 @@ exports.Prisma.GoogleScalarFieldEnum = {
|
|
|
420
420
|
is_active: 'is_active'
|
|
421
421
|
};
|
|
422
422
|
|
|
423
|
-
exports.Prisma.IntegrationCredentialScalarFieldEnum = {
|
|
424
|
-
id: 'id',
|
|
425
|
-
organisation_id: 'organisation_id',
|
|
426
|
-
provider: 'provider',
|
|
427
|
-
auth_type: 'auth_type',
|
|
428
|
-
access_token: 'access_token',
|
|
429
|
-
refresh_token: 'refresh_token',
|
|
430
|
-
token_expires_at: 'token_expires_at',
|
|
431
|
-
api_key: 'api_key',
|
|
432
|
-
api_secret: 'api_secret',
|
|
433
|
-
metadata: 'metadata',
|
|
434
|
-
is_active: 'is_active',
|
|
435
|
-
created_at: 'created_at',
|
|
436
|
-
updated_at: 'updated_at',
|
|
437
|
-
created_by: 'created_by',
|
|
438
|
-
updated_by: 'updated_by'
|
|
439
|
-
};
|
|
440
|
-
|
|
441
|
-
exports.Prisma.IntegrationJobSyncScalarFieldEnum = {
|
|
442
|
-
id: 'id',
|
|
443
|
-
job_description_id: 'job_description_id',
|
|
444
|
-
provider: 'provider',
|
|
445
|
-
external_id: 'external_id',
|
|
446
|
-
sync_enabled: 'sync_enabled',
|
|
447
|
-
last_synced_at: 'last_synced_at',
|
|
448
|
-
sync_direction: 'sync_direction',
|
|
449
|
-
metadata: 'metadata',
|
|
450
|
-
created_at: 'created_at',
|
|
451
|
-
updated_at: 'updated_at'
|
|
452
|
-
};
|
|
453
|
-
|
|
454
|
-
exports.Prisma.ZohoSyncMappingScalarFieldEnum = {
|
|
455
|
-
id: 'id',
|
|
456
|
-
organisation_id: 'organisation_id',
|
|
457
|
-
entity_type: 'entity_type',
|
|
458
|
-
treadspace_id: 'treadspace_id',
|
|
459
|
-
zoho_module: 'zoho_module',
|
|
460
|
-
zoho_record_id: 'zoho_record_id',
|
|
461
|
-
last_synced_at: 'last_synced_at',
|
|
462
|
-
sync_status: 'sync_status',
|
|
463
|
-
error_message: 'error_message',
|
|
464
|
-
created_at: 'created_at',
|
|
465
|
-
updated_at: 'updated_at'
|
|
466
|
-
};
|
|
467
|
-
|
|
468
|
-
exports.Prisma.IntermediateFeedbackScalarFieldEnum = {
|
|
469
|
-
id: 'id',
|
|
470
|
-
interview_id: 'interview_id',
|
|
471
|
-
overall_feedback_id: 'overall_feedback_id',
|
|
472
|
-
intermediate_feedback: 'intermediate_feedback',
|
|
473
|
-
order_no: 'order_no',
|
|
474
|
-
created_at: 'created_at',
|
|
475
|
-
updated_at: 'updated_at',
|
|
476
|
-
created_by: 'created_by',
|
|
477
|
-
updated_by: 'updated_by',
|
|
478
|
-
is_active: 'is_active'
|
|
479
|
-
};
|
|
480
|
-
|
|
481
423
|
exports.Prisma.InterviewScalarFieldEnum = {
|
|
482
424
|
id: 'id',
|
|
483
425
|
candidate_id: 'candidate_id',
|
|
484
426
|
interviewer_id: 'interviewer_id',
|
|
485
|
-
evaluation_plan_id: 'evaluation_plan_id',
|
|
486
427
|
application_id: 'application_id',
|
|
487
428
|
resume_id: 'resume_id',
|
|
488
429
|
job_description_id: 'job_description_id',
|
|
489
430
|
organisation_id: 'organisation_id',
|
|
490
431
|
room_name: 'room_name',
|
|
491
432
|
interview_summary: 'interview_summary',
|
|
492
|
-
ai_interview_feedback: 'ai_interview_feedback',
|
|
493
|
-
interview_feedback: 'interview_feedback',
|
|
494
|
-
interview_rating: 'interview_rating',
|
|
495
433
|
scheduled_start_time: 'scheduled_start_time',
|
|
496
434
|
scheduled_end_time: 'scheduled_end_time',
|
|
497
435
|
actual_start_time: 'actual_start_time',
|
|
@@ -506,22 +444,6 @@ exports.Prisma.InterviewScalarFieldEnum = {
|
|
|
506
444
|
is_active: 'is_active'
|
|
507
445
|
};
|
|
508
446
|
|
|
509
|
-
exports.Prisma.InterviewLibraryScalarFieldEnum = {
|
|
510
|
-
id: 'id',
|
|
511
|
-
title: 'title',
|
|
512
|
-
description: 'description',
|
|
513
|
-
organisation_id: 'organisation_id',
|
|
514
|
-
category: 'category',
|
|
515
|
-
evaluation_type: 'evaluation_type',
|
|
516
|
-
duration: 'duration',
|
|
517
|
-
passing_marks: 'passing_marks',
|
|
518
|
-
is_active: 'is_active',
|
|
519
|
-
created_by: 'created_by',
|
|
520
|
-
updated_by: 'updated_by',
|
|
521
|
-
created_at: 'created_at',
|
|
522
|
-
updated_at: 'updated_at'
|
|
523
|
-
};
|
|
524
|
-
|
|
525
447
|
exports.Prisma.InterviewNotesScalarFieldEnum = {
|
|
526
448
|
id: 'id',
|
|
527
449
|
interview_id: 'interview_id',
|
|
@@ -630,39 +552,6 @@ exports.Prisma.OrganisationScalarFieldEnum = {
|
|
|
630
552
|
logo: 'logo'
|
|
631
553
|
};
|
|
632
554
|
|
|
633
|
-
exports.Prisma.OverallFeedbackScalarFieldEnum = {
|
|
634
|
-
id: 'id',
|
|
635
|
-
interview_id: 'interview_id',
|
|
636
|
-
interviewer_id: 'interviewer_id',
|
|
637
|
-
feedback_type: 'feedback_type',
|
|
638
|
-
overall_score: 'overall_score',
|
|
639
|
-
overall_recommendation: 'overall_recommendation',
|
|
640
|
-
overall_feedback: 'overall_feedback',
|
|
641
|
-
created_at: 'created_at',
|
|
642
|
-
updated_at: 'updated_at',
|
|
643
|
-
created_by: 'created_by',
|
|
644
|
-
updated_by: 'updated_by',
|
|
645
|
-
is_active: 'is_active'
|
|
646
|
-
};
|
|
647
|
-
|
|
648
|
-
exports.Prisma.PanelistScalarFieldEnum = {
|
|
649
|
-
id: 'id',
|
|
650
|
-
name: 'name',
|
|
651
|
-
designation: 'designation',
|
|
652
|
-
experience: 'experience',
|
|
653
|
-
expertise: 'expertise',
|
|
654
|
-
suited_interview: 'suited_interview',
|
|
655
|
-
industry: 'industry',
|
|
656
|
-
special_areas: 'special_areas',
|
|
657
|
-
organisation_id: 'organisation_id',
|
|
658
|
-
user_id: 'user_id',
|
|
659
|
-
created_at: 'created_at',
|
|
660
|
-
updated_at: 'updated_at',
|
|
661
|
-
created_by: 'created_by',
|
|
662
|
-
updated_by: 'updated_by',
|
|
663
|
-
is_active: 'is_active'
|
|
664
|
-
};
|
|
665
|
-
|
|
666
555
|
exports.Prisma.PermissionScalarFieldEnum = {
|
|
667
556
|
id: 'id',
|
|
668
557
|
permissions: 'permissions',
|
|
@@ -830,10 +719,6 @@ exports.Prisma.NullableJsonNullValueInput = {
|
|
|
830
719
|
JsonNull: Prisma.JsonNull
|
|
831
720
|
};
|
|
832
721
|
|
|
833
|
-
exports.Prisma.JsonNullValueInput = {
|
|
834
|
-
JsonNull: Prisma.JsonNull
|
|
835
|
-
};
|
|
836
|
-
|
|
837
722
|
exports.Prisma.QueryMode = {
|
|
838
723
|
default: 'default',
|
|
839
724
|
insensitive: 'insensitive'
|
|
@@ -946,40 +831,9 @@ exports.EvaluationPlanType = exports.$Enums.EvaluationPlanType = {
|
|
|
946
831
|
DELETED: 'DELETED'
|
|
947
832
|
};
|
|
948
833
|
|
|
949
|
-
exports.
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
};
|
|
953
|
-
|
|
954
|
-
exports.IntegrationAuthType = exports.$Enums.IntegrationAuthType = {
|
|
955
|
-
OAUTH2: 'OAUTH2',
|
|
956
|
-
API_KEY: 'API_KEY'
|
|
957
|
-
};
|
|
958
|
-
|
|
959
|
-
exports.SyncDirection = exports.$Enums.SyncDirection = {
|
|
960
|
-
PUSH: 'PUSH',
|
|
961
|
-
PULL: 'PULL',
|
|
962
|
-
BIDIRECTIONAL: 'BIDIRECTIONAL'
|
|
963
|
-
};
|
|
964
|
-
|
|
965
|
-
exports.SyncEntityType = exports.$Enums.SyncEntityType = {
|
|
966
|
-
CANDIDATE: 'CANDIDATE',
|
|
967
|
-
JOB_OPENING: 'JOB_OPENING',
|
|
968
|
-
INTERVIEW: 'INTERVIEW',
|
|
969
|
-
APPLICATION: 'APPLICATION'
|
|
970
|
-
};
|
|
971
|
-
|
|
972
|
-
exports.SyncStatus = exports.$Enums.SyncStatus = {
|
|
973
|
-
SYNCED: 'SYNCED',
|
|
974
|
-
PENDING: 'PENDING',
|
|
975
|
-
FAILED: 'FAILED'
|
|
976
|
-
};
|
|
977
|
-
|
|
978
|
-
exports.InterviewFeedback = exports.$Enums.InterviewFeedback = {
|
|
979
|
-
STRONG_HIRE: 'STRONG_HIRE',
|
|
980
|
-
HIRE: 'HIRE',
|
|
981
|
-
NO_HIRE: 'NO_HIRE',
|
|
982
|
-
STRONG_NO_HIRE: 'STRONG_NO_HIRE'
|
|
834
|
+
exports.FeedbackType = exports.$Enums.FeedbackType = {
|
|
835
|
+
SECTION: 'SECTION',
|
|
836
|
+
OVERALL: 'OVERALL'
|
|
983
837
|
};
|
|
984
838
|
|
|
985
839
|
exports.InterviewStatus = exports.$Enums.InterviewStatus = {
|
|
@@ -992,17 +846,6 @@ exports.InterviewStatus = exports.$Enums.InterviewStatus = {
|
|
|
992
846
|
EVALUATED: 'EVALUATED'
|
|
993
847
|
};
|
|
994
848
|
|
|
995
|
-
exports.InterviewCategory = exports.$Enums.InterviewCategory = {
|
|
996
|
-
SCREENING: 'SCREENING',
|
|
997
|
-
TECHNICAL: 'TECHNICAL',
|
|
998
|
-
BEHAVIORAL: 'BEHAVIORAL',
|
|
999
|
-
CASE_STUDY: 'CASE_STUDY',
|
|
1000
|
-
MANAGERIAL: 'MANAGERIAL',
|
|
1001
|
-
CULTURAL_FIT: 'CULTURAL_FIT',
|
|
1002
|
-
FINAL_DISCUSSION: 'FINAL_DISCUSSION',
|
|
1003
|
-
GENERAL: 'GENERAL'
|
|
1004
|
-
};
|
|
1005
|
-
|
|
1006
849
|
exports.JobDescriptionStatus = exports.$Enums.JobDescriptionStatus = {
|
|
1007
850
|
CREATED: 'CREATED',
|
|
1008
851
|
DRAFT: 'DRAFT',
|
|
@@ -1046,19 +889,6 @@ exports.OrganisationSize = exports.$Enums.OrganisationSize = {
|
|
|
1046
889
|
FIVE_HUNDRED_PLUS: 'FIVE_HUNDRED_PLUS'
|
|
1047
890
|
};
|
|
1048
891
|
|
|
1049
|
-
exports.FeedbackType = exports.$Enums.FeedbackType = {
|
|
1050
|
-
HUMAN: 'HUMAN',
|
|
1051
|
-
AI: 'AI'
|
|
1052
|
-
};
|
|
1053
|
-
|
|
1054
|
-
exports.OverallRecommendation = exports.$Enums.OverallRecommendation = {
|
|
1055
|
-
StrongHire: 'StrongHire',
|
|
1056
|
-
Hire: 'Hire',
|
|
1057
|
-
LeaningHire: 'LeaningHire',
|
|
1058
|
-
NoHire: 'NoHire',
|
|
1059
|
-
StrongNoHire: 'StrongNoHire'
|
|
1060
|
-
};
|
|
1061
|
-
|
|
1062
892
|
exports.AsyncOperationStatus = exports.$Enums.AsyncOperationStatus = {
|
|
1063
893
|
PENDING: 'PENDING',
|
|
1064
894
|
IN_PROGRESS: 'IN_PROGRESS',
|
|
@@ -1105,20 +935,13 @@ exports.Prisma.ModelName = {
|
|
|
1105
935
|
Feedback: 'Feedback',
|
|
1106
936
|
FitCheck: 'FitCheck',
|
|
1107
937
|
Google: 'Google',
|
|
1108
|
-
IntegrationCredential: 'IntegrationCredential',
|
|
1109
|
-
IntegrationJobSync: 'IntegrationJobSync',
|
|
1110
|
-
ZohoSyncMapping: 'ZohoSyncMapping',
|
|
1111
|
-
IntermediateFeedback: 'IntermediateFeedback',
|
|
1112
938
|
Interview: 'Interview',
|
|
1113
|
-
InterviewLibrary: 'InterviewLibrary',
|
|
1114
939
|
InterviewNotes: 'InterviewNotes',
|
|
1115
940
|
JobDescription: 'JobDescription',
|
|
1116
941
|
JobDescriptionData: 'JobDescriptionData',
|
|
1117
942
|
Message: 'Message',
|
|
1118
943
|
OngoingEvaluation: 'OngoingEvaluation',
|
|
1119
944
|
Organisation: 'Organisation',
|
|
1120
|
-
OverallFeedback: 'OverallFeedback',
|
|
1121
|
-
Panelist: 'Panelist',
|
|
1122
945
|
Permission: 'Permission',
|
|
1123
946
|
AsyncOperation: 'AsyncOperation',
|
|
1124
947
|
Question: 'Question',
|
package/package.json
CHANGED
package/prisma/.DS_Store
ADDED
|
Binary file
|
|
@@ -29,8 +29,6 @@ model Assessment {
|
|
|
29
29
|
reviewer User? @relation("ReviewerAssessments", fields: [reviewer_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
30
30
|
questions AssessmentQuestion[] @relation("AssessmentToAssessmentQuestion")
|
|
31
31
|
candidateResponse CandidateQuestionResponse[]
|
|
32
|
-
Panelist Panelist? @relation(fields: [panelistId], references: [id])
|
|
33
|
-
panelistId String?
|
|
34
32
|
User User? @relation(fields: [userId], references: [id])
|
|
35
33
|
userId String?
|
|
36
34
|
|
|
@@ -72,13 +72,10 @@ model EvaluationPlan {
|
|
|
72
72
|
// Relations
|
|
73
73
|
jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)
|
|
74
74
|
questions Question[] // One evaluation plan → many questions
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
assessment AssessmentLibrary? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)
|
|
80
|
-
assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)
|
|
81
|
-
ongoing_evaluations OngoingEvaluation[]
|
|
75
|
+
applications Application[]
|
|
76
|
+
assessment AssessmentLibrary? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)
|
|
77
|
+
assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)
|
|
78
|
+
ongoing_evaluations OngoingEvaluation[]
|
|
82
79
|
|
|
83
80
|
@@unique([job_description_id, order_no])
|
|
84
81
|
@@index([job_description_id])
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
enum FeedbackType {
|
|
2
|
+
SECTION
|
|
3
|
+
OVERALL
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
model Feedback {
|
|
2
|
-
id
|
|
3
|
-
interview_id
|
|
4
|
-
|
|
7
|
+
id String @id @default(uuid())
|
|
8
|
+
interview_id String
|
|
9
|
+
feedback_type FeedbackType
|
|
10
|
+
order_no Int?
|
|
5
11
|
|
|
6
12
|
ai_feedback Json?
|
|
7
13
|
human_feedback Json?
|
|
@@ -8,54 +8,45 @@ enum InterviewStatus {
|
|
|
8
8
|
EVALUATED // Feedback completed and locked
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
enum InterviewFeedback {
|
|
12
|
-
STRONG_HIRE
|
|
13
|
-
HIRE
|
|
14
|
-
NO_HIRE
|
|
15
|
-
STRONG_NO_HIRE
|
|
16
|
-
}
|
|
17
|
-
|
|
18
11
|
model Interview {
|
|
19
|
-
id
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
application_id
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
created_at
|
|
40
|
-
updated_at
|
|
41
|
-
created_by
|
|
42
|
-
updated_by
|
|
43
|
-
is_active
|
|
12
|
+
id String @id @default(uuid())
|
|
13
|
+
/// Foreign keys
|
|
14
|
+
candidate_id String
|
|
15
|
+
interviewer_id String?
|
|
16
|
+
application_id String?
|
|
17
|
+
evaluation_plan_id String?
|
|
18
|
+
resume_id String
|
|
19
|
+
job_description_id String
|
|
20
|
+
organisation_id String
|
|
21
|
+
/// Data
|
|
22
|
+
room_name String?
|
|
23
|
+
interview_summary String[]
|
|
24
|
+
scheduled_start_time DateTime?
|
|
25
|
+
scheduled_end_time DateTime?
|
|
26
|
+
actual_start_time DateTime?
|
|
27
|
+
actual_end_time DateTime?
|
|
28
|
+
recording_url String?
|
|
29
|
+
interview_status InterviewStatus @default(SCHEDULED)
|
|
30
|
+
google_event_id String?
|
|
31
|
+
/// Audit fields
|
|
32
|
+
created_at DateTime @default(now())
|
|
33
|
+
updated_at DateTime @updatedAt
|
|
34
|
+
created_by String
|
|
35
|
+
updated_by String
|
|
36
|
+
is_active Boolean @default(true)
|
|
44
37
|
// Relations
|
|
45
|
-
candidate
|
|
46
|
-
interviewer
|
|
47
|
-
organisation
|
|
48
|
-
job_description
|
|
49
|
-
resume
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ongoing_evaluation
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
feedback Feedback[]
|
|
58
|
-
interviewNotes InterviewNotes[]
|
|
38
|
+
candidate User? @relation("CandidateInterviews", fields: [candidate_id], references: [id], onDelete: SetNull)
|
|
39
|
+
interviewer User? @relation("InterviewerInterviews", fields: [interviewer_id], references: [id], onDelete: SetNull)
|
|
40
|
+
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
41
|
+
job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
42
|
+
resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
43
|
+
application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
44
|
+
evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
45
|
+
ongoing_evaluation OngoingEvaluation?
|
|
46
|
+
transcripts Transcript[]
|
|
47
|
+
suggestions Suggestion[]
|
|
48
|
+
feedback Feedback[]
|
|
49
|
+
interviewNotes InterviewNotes[]
|
|
59
50
|
|
|
60
51
|
@@unique([interviewer_id, candidate_id, evaluation_plan_id])
|
|
61
52
|
@@index([candidate_id])
|
|
@@ -39,7 +39,6 @@ model JobDescription {
|
|
|
39
39
|
hiring_manager User? @relation("HiringManager", fields: [hiring_manager_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
40
40
|
recruiters User[]
|
|
41
41
|
transcripts Transcript[]
|
|
42
|
-
integration_job_syncs IntegrationJobSync[]
|
|
43
42
|
|
|
44
43
|
@@index([organisation_id])
|
|
45
44
|
@@index([hiring_manager_id])
|
|
@@ -17,7 +17,6 @@ model Organisation {
|
|
|
17
17
|
address String
|
|
18
18
|
company_values Json[]
|
|
19
19
|
|
|
20
|
-
interviewers User[]
|
|
21
20
|
created_at DateTime @default(now())
|
|
22
21
|
updated_at DateTime @updatedAt
|
|
23
22
|
created_by String
|
|
@@ -26,21 +25,18 @@ model Organisation {
|
|
|
26
25
|
alias String? @unique
|
|
27
26
|
logo String?
|
|
28
27
|
applications Application[]
|
|
28
|
+
interviewers User[]
|
|
29
29
|
user_roles UserRole[]
|
|
30
30
|
job_descriptions JobDescription[]
|
|
31
31
|
assessment_library AssessmentLibrary[]
|
|
32
32
|
assignment_library AssignmentLibrary[]
|
|
33
|
-
interview_library InterviewLibrary[]
|
|
34
33
|
interviews Interview[]
|
|
35
34
|
fit_check FitCheck[] // one-to-many link
|
|
36
35
|
resumes Resume[] // one-to-many link
|
|
37
|
-
panelists Panelist[] // one-to-many link
|
|
38
36
|
approvals Approval[] // one-to-many link
|
|
39
37
|
suggestions Suggestion[]
|
|
40
38
|
ongoing_evaluations OngoingEvaluation[] // optional one-to-many
|
|
41
|
-
actions
|
|
42
|
-
integration_credentials IntegrationCredential[]
|
|
43
|
-
zoho_sync_mappings ZohoSyncMapping[]
|
|
39
|
+
actions Action[]
|
|
44
40
|
|
|
45
41
|
@@index([name])
|
|
46
42
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
model Transcript {
|
|
2
|
-
id String
|
|
2
|
+
id String @id @default(uuid())
|
|
3
3
|
interview_id String?
|
|
4
4
|
suggestion_id String?
|
|
5
5
|
intermediate_feedback_id String?
|
|
@@ -8,17 +8,16 @@ model Transcript {
|
|
|
8
8
|
candidate_timestamp DateTime?
|
|
9
9
|
interviewer String
|
|
10
10
|
candidate String
|
|
11
|
-
order_no Int
|
|
12
|
-
created_at DateTime
|
|
13
|
-
updated_at DateTime
|
|
11
|
+
order_no Int @default(autoincrement())
|
|
12
|
+
created_at DateTime @default(now())
|
|
13
|
+
updated_at DateTime @updatedAt
|
|
14
14
|
created_by String
|
|
15
15
|
updated_by String
|
|
16
|
-
is_active Boolean
|
|
16
|
+
is_active Boolean @default(true)
|
|
17
17
|
// Relations
|
|
18
|
-
interview Interview?
|
|
19
|
-
suggestion Suggestion?
|
|
20
|
-
|
|
21
|
-
job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
18
|
+
interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: SetNull)
|
|
19
|
+
suggestion Suggestion? @relation(fields: [suggestion_id], references: [id], onDelete: SetNull)
|
|
20
|
+
job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
22
21
|
|
|
23
22
|
@@unique([interview_id, order_no])
|
|
24
23
|
@@index([interview_id])
|
|
@@ -29,7 +29,6 @@ model User {
|
|
|
29
29
|
job_description JobDescription[]
|
|
30
30
|
hiring_manager_job_descriptions JobDescription[] @relation("HiringManager")
|
|
31
31
|
approvals Approval[]
|
|
32
|
-
panelist Panelist?
|
|
33
32
|
sent_messages Message[] @relation("Sent Messages")
|
|
34
33
|
received_messages Message[] @relation("Received Messages")
|
|
35
34
|
profile_created Boolean
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
enum IntegrationProvider {
|
|
2
|
-
NAUKRI
|
|
3
|
-
ZOHO_RECRUIT
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
enum IntegrationAuthType {
|
|
7
|
-
OAUTH2
|
|
8
|
-
API_KEY
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
enum SyncDirection {
|
|
12
|
-
PUSH
|
|
13
|
-
PULL
|
|
14
|
-
BIDIRECTIONAL
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
enum SyncEntityType {
|
|
18
|
-
CANDIDATE
|
|
19
|
-
JOB_OPENING
|
|
20
|
-
INTERVIEW
|
|
21
|
-
APPLICATION
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
enum SyncStatus {
|
|
25
|
-
SYNCED
|
|
26
|
-
PENDING
|
|
27
|
-
FAILED
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
model IntegrationCredential {
|
|
31
|
-
id String @id @default(uuid())
|
|
32
|
-
organisation_id String?
|
|
33
|
-
provider IntegrationProvider
|
|
34
|
-
auth_type IntegrationAuthType
|
|
35
|
-
access_token String?
|
|
36
|
-
refresh_token String?
|
|
37
|
-
token_expires_at DateTime?
|
|
38
|
-
api_key String?
|
|
39
|
-
api_secret String?
|
|
40
|
-
metadata Json @default("{}")
|
|
41
|
-
is_active Boolean @default(true)
|
|
42
|
-
|
|
43
|
-
organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade)
|
|
44
|
-
|
|
45
|
-
created_at DateTime @default(now())
|
|
46
|
-
updated_at DateTime @updatedAt
|
|
47
|
-
created_by String
|
|
48
|
-
updated_by String
|
|
49
|
-
|
|
50
|
-
@@unique([organisation_id, provider])
|
|
51
|
-
@@index([provider])
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
model IntegrationJobSync {
|
|
55
|
-
id String @id @default(uuid())
|
|
56
|
-
job_description_id String
|
|
57
|
-
provider IntegrationProvider
|
|
58
|
-
external_id String?
|
|
59
|
-
sync_enabled Boolean @default(true)
|
|
60
|
-
last_synced_at DateTime?
|
|
61
|
-
sync_direction SyncDirection @default(PUSH)
|
|
62
|
-
metadata Json @default("{}")
|
|
63
|
-
|
|
64
|
-
job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)
|
|
65
|
-
|
|
66
|
-
created_at DateTime @default(now())
|
|
67
|
-
updated_at DateTime @updatedAt
|
|
68
|
-
|
|
69
|
-
@@unique([job_description_id, provider])
|
|
70
|
-
@@index([provider])
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
model ZohoSyncMapping {
|
|
74
|
-
id String @id @default(uuid())
|
|
75
|
-
organisation_id String
|
|
76
|
-
entity_type SyncEntityType
|
|
77
|
-
treadspace_id String
|
|
78
|
-
zoho_module String
|
|
79
|
-
zoho_record_id String
|
|
80
|
-
last_synced_at DateTime @default(now())
|
|
81
|
-
sync_status SyncStatus @default(PENDING)
|
|
82
|
-
error_message String?
|
|
83
|
-
|
|
84
|
-
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)
|
|
85
|
-
|
|
86
|
-
created_at DateTime @default(now())
|
|
87
|
-
updated_at DateTime @updatedAt
|
|
88
|
-
|
|
89
|
-
@@unique([organisation_id, entity_type, treadspace_id])
|
|
90
|
-
@@index([zoho_record_id])
|
|
91
|
-
@@index([sync_status])
|
|
92
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
model IntermediateFeedback {
|
|
2
|
-
id String @id @default(uuid())
|
|
3
|
-
interview_id String
|
|
4
|
-
overall_feedback_id String?
|
|
5
|
-
intermediate_feedback Json
|
|
6
|
-
order_no Int @default(autoincrement())
|
|
7
|
-
created_at DateTime @default(now())
|
|
8
|
-
updated_at DateTime @updatedAt
|
|
9
|
-
created_by String
|
|
10
|
-
updated_by String
|
|
11
|
-
is_active Boolean @default(true)
|
|
12
|
-
// Relations
|
|
13
|
-
interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
14
|
-
OverallFeedback OverallFeedback? @relation(fields: [overall_feedback_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
15
|
-
transcripts Transcript[]
|
|
16
|
-
|
|
17
|
-
@@index([interview_id])
|
|
18
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/// Defines the category or purpose of the interview, suitable for any job role.
|
|
2
|
-
enum InterviewCategory {
|
|
3
|
-
SCREENING // Initial screening interview
|
|
4
|
-
TECHNICAL // Skill or role-specific interview
|
|
5
|
-
BEHAVIORAL // Behavioral or situational round
|
|
6
|
-
CASE_STUDY // Case-based or analytical round
|
|
7
|
-
MANAGERIAL // Leadership or management-focused
|
|
8
|
-
CULTURAL_FIT // Checks alignment with company culture
|
|
9
|
-
FINAL_DISCUSSION // Final HR or offer discussion
|
|
10
|
-
GENERAL // Generic or flexible-purpose interview
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/// Represents a reusable interview template applicable to any job type.
|
|
14
|
-
model InterviewLibrary {
|
|
15
|
-
id String @id @default(uuid())
|
|
16
|
-
title String
|
|
17
|
-
description String
|
|
18
|
-
organisation_id String
|
|
19
|
-
category InterviewCategory
|
|
20
|
-
evaluation_type EvaluationType
|
|
21
|
-
duration Float
|
|
22
|
-
passing_marks Float
|
|
23
|
-
is_active Boolean @default(true)
|
|
24
|
-
created_by String
|
|
25
|
-
updated_by String
|
|
26
|
-
created_at DateTime @default(now())
|
|
27
|
-
updated_at DateTime @updatedAt
|
|
28
|
-
organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
29
|
-
|
|
30
|
-
@@index([organisation_id])
|
|
31
|
-
}
|