@adaptware/eagles-db 0.4.36 → 0.4.38
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 +870 -10
- package/client/index-browser.js +901 -40
- package/client/index.d.ts +81764 -27557
- package/client/index.js +870 -10
- package/client/libquery_engine-darwin.dylib.node +0 -0
- package/client/package.json +1 -1
- package/client/schema.prisma +1580 -108
- package/client/wasm.js +870 -10
- package/package.json +1 -1
- package/prisma/.DS_Store +0 -0
- package/prisma/migrations/20260519120000_migrate_shortlisted_to_selected/migration.sql +2 -0
- package/prisma/schema/.DS_Store +0 -0
- package/prisma/schema/CandidateQuestionResponse.prisma +1 -0
- package/prisma/schema/UserRole.prisma +1 -0
- package/prisma/schema/action.prisma +5 -0
- package/prisma/schema/activityEvent.prisma +138 -0
- package/prisma/schema/activityLog.prisma +3 -0
- package/prisma/schema/applicationAnalytics.prisma +87 -0
- package/prisma/schema/applications.prisma +12 -2
- package/prisma/schema/approval.prisma +2 -0
- package/prisma/schema/assessment.prisma +1 -0
- package/prisma/schema/assessmentLibrary.prisma +1 -0
- package/prisma/schema/assessmentQuestion.prisma +1 -0
- package/prisma/schema/assessmentRoundAnalytics.prisma +119 -0
- package/prisma/schema/assignment.prisma +3 -0
- package/prisma/schema/assignmentLibrary.prisma +1 -0
- package/prisma/schema/assignmentRoundAnalytics.prisma +109 -0
- package/prisma/schema/authModule.prisma +3 -0
- package/prisma/schema/budget.prisma +6 -0
- package/prisma/schema/calendly.prisma +2 -0
- package/prisma/schema/candidateProfile.prisma +2 -0
- package/prisma/schema/communication.prisma +11 -0
- package/prisma/schema/contactUs.prisma +2 -0
- package/prisma/schema/document.prisma +5 -4
- package/prisma/schema/evaluationPlan.prisma +35 -10
- package/prisma/schema/feedback.prisma +1 -0
- package/prisma/schema/fitCheck.prisma +3 -0
- package/prisma/schema/google.prisma +2 -0
- package/prisma/schema/integration.prisma +13 -0
- package/prisma/schema/interview.prisma +9 -0
- package/prisma/schema/interviewNotes.prisma +1 -0
- package/prisma/schema/interviewRoundAnalytics.prisma +140 -0
- package/prisma/schema/interviewerAnalytics.prisma +129 -0
- package/prisma/schema/jobApplicationFields.prisma +3 -0
- package/prisma/schema/jobApplicationResponse.prisma +1 -0
- package/prisma/schema/jobApplicationTemplate.prisma +3 -0
- package/prisma/schema/jobDescription.prisma +43 -35
- package/prisma/schema/jobDescriptionData.prisma +1 -0
- package/prisma/schema/jobProfile.prisma +3 -0
- package/prisma/schema/jobRoundAnalytics.prisma +101 -0
- package/prisma/schema/liveAnalysis.prisma +1 -0
- package/prisma/schema/message.prisma +2 -0
- package/prisma/schema/migrations/20260519120000_add_analytics_schema/migration.sql +84 -0
- package/prisma/schema/migrations/20260625120000_add_interviewer_analytics/migration.sql +26 -0
- package/prisma/schema/migrations/20260629120000_add_user_lifecycle_activity_events/migration.sql +13 -0
- package/prisma/schema/migrations/20260629140000_drop_organisation_org_code/migration.sql +2 -0
- package/prisma/schema/migrations/20260629160000_employee_codes_dual_interviewer_analytics/migration.sql +87 -0
- package/prisma/schema/migrations/20260630120000_add_application_sources/migration.sql +38 -0
- package/prisma/schema/migrations/20260701120000_add_source_effectiveness_analytics/migration.sql +40 -0
- package/prisma/schema/migrations/20260702120000_add_analytics_daily_tables/migration.sql +232 -0
- package/prisma/schema/migrations/{20260710120000_add_resume_rendered_export_fields → 20260706120000_add_resume_rendered_export}/migration.sql +5 -2
- package/prisma/schema/notes.prisma +1 -0
- package/prisma/schema/ongoingEvaluation.prisma +7 -0
- package/prisma/schema/openJobAnalytics.prisma +81 -0
- package/prisma/schema/organisation.prisma +39 -31
- package/prisma/schema/organisationConfig.prisma +1 -0
- package/prisma/schema/permission.prisma +1 -0
- package/prisma/schema/pipelineDistributionAnalytics.prisma +64 -0
- package/prisma/schema/promise.prisma +3 -0
- package/prisma/schema/questions.prisma +4 -0
- package/prisma/schema/refreshToken.prisma +2 -0
- package/prisma/schema/reportingOverviewJobAnalytics.prisma +49 -0
- package/prisma/schema/resume.prisma +5 -4
- package/prisma/schema/resumeData.prisma +1 -0
- package/prisma/schema/roundAnalytics.prisma +145 -0
- package/prisma/schema/schema.prisma +2 -0
- package/prisma/schema/source.prisma +36 -0
- package/prisma/schema/sourceEffectivenessAnalytics.prisma +79 -0
- package/prisma/schema/suggestion.prisma +1 -0
- package/prisma/schema/transcript.prisma +1 -0
- package/prisma/schema/user.prisma +10 -0
- package/prisma/schema/userProfile.prisma +2 -0
- package/prisma/schema/zoomMeeting.prisma +5 -0
- package/prisma/schema/migrations/20260522120000_ongoing_evaluation_record_kind/migration.sql +0 -25
- package/prisma/schema/migrations/20260523120000_replace_record_kind_with_is_committed/migration.sql +0 -24
- package/prisma/schema/migrations/20260528120000_drop_job_description_recommendation_config/migration.sql +0 -2
|
@@ -6,6 +6,8 @@ enum CommChannel {
|
|
|
6
6
|
EMAIL
|
|
7
7
|
SMS
|
|
8
8
|
CALL
|
|
9
|
+
|
|
10
|
+
@@schema("public")
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
enum CommProvider {
|
|
@@ -18,11 +20,15 @@ enum CommProvider {
|
|
|
18
20
|
OUTLOOK
|
|
19
21
|
GENERIC_SMTP
|
|
20
22
|
GENERIC
|
|
23
|
+
|
|
24
|
+
@@schema("public")
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
enum CommDirection {
|
|
24
28
|
INBOUND
|
|
25
29
|
OUTBOUND
|
|
30
|
+
|
|
31
|
+
@@schema("public")
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
enum CommMessageStatus {
|
|
@@ -32,6 +38,8 @@ enum CommMessageStatus {
|
|
|
32
38
|
READ
|
|
33
39
|
FAILED
|
|
34
40
|
RECEIVED
|
|
41
|
+
|
|
42
|
+
@@schema("public")
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
/// Per-organisation provider selection + (encrypted) credentials for one channel.
|
|
@@ -60,6 +68,7 @@ model ChannelProviderConfig {
|
|
|
60
68
|
@@unique([organisation_id, channel, provider])
|
|
61
69
|
@@index([organisation_id, channel])
|
|
62
70
|
@@index([organisation_id, channel, is_active])
|
|
71
|
+
@@schema("public")
|
|
63
72
|
}
|
|
64
73
|
|
|
65
74
|
/// A logical conversation thread with one external party on one channel.
|
|
@@ -104,6 +113,7 @@ model Conversation {
|
|
|
104
113
|
@@index([external_id])
|
|
105
114
|
@@index([organisation_id, application_id])
|
|
106
115
|
@@index([organisation_id, job_description_id])
|
|
116
|
+
@@schema("public")
|
|
107
117
|
}
|
|
108
118
|
|
|
109
119
|
/// Individual message in a conversation. Inbound + outbound share the same model.
|
|
@@ -153,4 +163,5 @@ model CommunicationMessage {
|
|
|
153
163
|
@@index([organisation_id, status])
|
|
154
164
|
@@index([organisation_id, application_id])
|
|
155
165
|
@@index([organisation_id, job_description_id])
|
|
166
|
+
@@schema("public")
|
|
156
167
|
}
|
|
@@ -23,10 +23,10 @@ model Document {
|
|
|
23
23
|
// Relations
|
|
24
24
|
organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
25
25
|
candidate User? @relation(fields: [candidate_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
26
|
-
resume Resume?
|
|
27
|
-
resume_rendered_export Resume?
|
|
28
|
-
job_description_source JobDescription?
|
|
29
|
-
job_description_rendered JobDescription?
|
|
26
|
+
resume Resume? @relation("ResumeSourceDocument")
|
|
27
|
+
resume_rendered_export Resume? @relation("RenderedResumeExport")
|
|
28
|
+
job_description_source JobDescription? @relation("SourceDocument")
|
|
29
|
+
job_description_rendered JobDescription? @relation("RenderedJdDocument")
|
|
30
30
|
interview_recording Interview?
|
|
31
31
|
job_application_responses JobApplicationResponse[]
|
|
32
32
|
assignment_solution Assignment? @relation("AssignmentSolutionDocument")
|
|
@@ -36,4 +36,5 @@ model Document {
|
|
|
36
36
|
@@index([candidate_id])
|
|
37
37
|
@@index([organisation_id, candidate_id])
|
|
38
38
|
@@index([file_hash])
|
|
39
|
+
@@schema("public")
|
|
39
40
|
}
|
|
@@ -3,6 +3,18 @@ enum RoundType {
|
|
|
3
3
|
INTERVIEW
|
|
4
4
|
ASSIGNMENT
|
|
5
5
|
SCREENING
|
|
6
|
+
|
|
7
|
+
@@schema("public")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
enum EvaluationCategory {
|
|
11
|
+
EXPERIENCE_SCREENING
|
|
12
|
+
TECHNICAL_SCREENING
|
|
13
|
+
TECHNICAL_INTERVIEW
|
|
14
|
+
BUSINESS_ROUND
|
|
15
|
+
BEHAVIORAL_ROUND
|
|
16
|
+
|
|
17
|
+
@@schema("public")
|
|
6
18
|
}
|
|
7
19
|
|
|
8
20
|
enum EvaluationRoundFormat {
|
|
@@ -32,6 +44,8 @@ enum EvaluationRoundFormat {
|
|
|
32
44
|
TREADSPACE_AI_ASSISTED
|
|
33
45
|
EXTERNAL_VIDEO_AI_ASSISTED
|
|
34
46
|
EXTERNAL_VIDEO_UNASSISTED
|
|
47
|
+
|
|
48
|
+
@@schema("public")
|
|
35
49
|
}
|
|
36
50
|
|
|
37
51
|
enum EvaluationType {
|
|
@@ -40,28 +54,36 @@ enum EvaluationType {
|
|
|
40
54
|
TREADSPACE_FULL_AI
|
|
41
55
|
EXTERNAL_AI_ASSISTED
|
|
42
56
|
NON_AI_ASSISTED
|
|
57
|
+
|
|
58
|
+
@@schema("public")
|
|
43
59
|
}
|
|
44
60
|
|
|
45
61
|
enum EvaluationPlanType {
|
|
46
62
|
CUSTOM
|
|
47
63
|
GENERIC
|
|
48
64
|
DELETED
|
|
65
|
+
|
|
66
|
+
@@schema("public")
|
|
49
67
|
}
|
|
50
68
|
|
|
51
69
|
enum EvaluationPlanShareScope {
|
|
52
70
|
PRIVATE
|
|
53
71
|
CREATOR
|
|
54
72
|
ORGANIZATION
|
|
73
|
+
|
|
74
|
+
@@schema("public")
|
|
55
75
|
}
|
|
56
76
|
|
|
57
77
|
enum DurationUnit {
|
|
58
78
|
MINUTES
|
|
59
79
|
HOURS
|
|
60
80
|
DAYS
|
|
81
|
+
|
|
82
|
+
@@schema("public")
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
model EvaluationPlan {
|
|
64
|
-
id String
|
|
86
|
+
id String @id @default(uuid())
|
|
65
87
|
job_description_id String
|
|
66
88
|
assessment_id String?
|
|
67
89
|
assignment_library_id String?
|
|
@@ -70,33 +92,36 @@ model EvaluationPlan {
|
|
|
70
92
|
format EvaluationRoundFormat?
|
|
71
93
|
topics String[]
|
|
72
94
|
assignee String?
|
|
73
|
-
elimination_round Boolean
|
|
74
|
-
evaluation_type EvaluationType
|
|
95
|
+
elimination_round Boolean @default(false)
|
|
96
|
+
evaluation_type EvaluationType @default(TREADSPACE_AI_ASSISTED)
|
|
75
97
|
type_of_round RoundType
|
|
98
|
+
round_purpose String?
|
|
76
99
|
timeline Int?
|
|
77
100
|
order_no Int?
|
|
78
101
|
details Json?
|
|
79
|
-
plan_type EvaluationPlanType
|
|
102
|
+
plan_type EvaluationPlanType @default(GENERIC)
|
|
80
103
|
share_scope EvaluationPlanShareScope @default(PRIVATE)
|
|
81
104
|
duration Int?
|
|
82
105
|
duration_unit DurationUnit?
|
|
83
106
|
deadline Int?
|
|
107
|
+
category EvaluationCategory?
|
|
84
108
|
created_by String
|
|
85
109
|
updated_by String
|
|
86
|
-
created_at DateTime
|
|
87
|
-
updated_at DateTime
|
|
88
|
-
is_active Boolean
|
|
110
|
+
created_at DateTime @default(now())
|
|
111
|
+
updated_at DateTime @updatedAt
|
|
112
|
+
is_active Boolean @default(true)
|
|
89
113
|
// Relations
|
|
90
|
-
jobDescription JobDescription
|
|
114
|
+
jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)
|
|
91
115
|
questions Question[] // One evaluation plan → many questions
|
|
92
116
|
interviews Interview[]
|
|
93
117
|
applications Application[]
|
|
94
118
|
// New optional one-to-one relation with AssessmentLibrary
|
|
95
|
-
assessment AssessmentLibrary?
|
|
96
|
-
assignment_library AssignmentLibrary?
|
|
119
|
+
assessment AssessmentLibrary? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)
|
|
120
|
+
assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)
|
|
97
121
|
ongoing_evaluations OngoingEvaluation[]
|
|
98
122
|
|
|
99
123
|
@@index([job_description_id])
|
|
100
124
|
@@index([job_description_id, plan_type, share_scope])
|
|
101
125
|
@@index([created_by, share_scope])
|
|
126
|
+
@@schema("public")
|
|
102
127
|
}
|
|
@@ -2,6 +2,8 @@ enum FitCheckStatus {
|
|
|
2
2
|
RECOMMENDED
|
|
3
3
|
TO_REVIEW
|
|
4
4
|
NOT_RECOMMENDED
|
|
5
|
+
|
|
6
|
+
@@schema("public")
|
|
5
7
|
}
|
|
6
8
|
|
|
7
9
|
model FitCheck {
|
|
@@ -55,4 +57,5 @@ model FitCheck {
|
|
|
55
57
|
/// Ensure one FitCheck per (resume_id, job_description_id) pair
|
|
56
58
|
@@unique([resume_id, job_description_id])
|
|
57
59
|
@@index([resume_id])
|
|
60
|
+
@@schema("public")
|
|
58
61
|
}
|
|
@@ -6,18 +6,24 @@ enum IntegrationProvider {
|
|
|
6
6
|
MICROSOFT
|
|
7
7
|
ZOOM
|
|
8
8
|
CALENDLY
|
|
9
|
+
|
|
10
|
+
@@schema("public")
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
enum IntegrationAuthType {
|
|
12
14
|
OAUTH2
|
|
13
15
|
API_KEY
|
|
14
16
|
SSO
|
|
17
|
+
|
|
18
|
+
@@schema("public")
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
enum SyncDirection {
|
|
18
22
|
PUSH
|
|
19
23
|
PULL
|
|
20
24
|
BIDIRECTIONAL
|
|
25
|
+
|
|
26
|
+
@@schema("public")
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
enum SyncEntityType {
|
|
@@ -25,12 +31,16 @@ enum SyncEntityType {
|
|
|
25
31
|
JOB_OPENING
|
|
26
32
|
INTERVIEW
|
|
27
33
|
APPLICATION
|
|
34
|
+
|
|
35
|
+
@@schema("public")
|
|
28
36
|
}
|
|
29
37
|
|
|
30
38
|
enum SyncStatus {
|
|
31
39
|
SYNCED
|
|
32
40
|
PENDING
|
|
33
41
|
FAILED
|
|
42
|
+
|
|
43
|
+
@@schema("public")
|
|
34
44
|
}
|
|
35
45
|
|
|
36
46
|
model IntegrationCredential {
|
|
@@ -55,6 +65,7 @@ model IntegrationCredential {
|
|
|
55
65
|
|
|
56
66
|
@@unique([organisation_id, provider])
|
|
57
67
|
@@index([provider])
|
|
68
|
+
@@schema("public")
|
|
58
69
|
}
|
|
59
70
|
|
|
60
71
|
model IntegrationJobSync {
|
|
@@ -74,6 +85,7 @@ model IntegrationJobSync {
|
|
|
74
85
|
|
|
75
86
|
@@unique([job_description_id, provider])
|
|
76
87
|
@@index([provider])
|
|
88
|
+
@@schema("public")
|
|
77
89
|
}
|
|
78
90
|
|
|
79
91
|
model ZohoSyncMapping {
|
|
@@ -95,4 +107,5 @@ model ZohoSyncMapping {
|
|
|
95
107
|
@@unique([organisation_id, entity_type, treadspace_id])
|
|
96
108
|
@@index([zoho_record_id])
|
|
97
109
|
@@index([sync_status])
|
|
110
|
+
@@schema("public")
|
|
98
111
|
}
|
|
@@ -6,6 +6,8 @@ enum InterviewStatus {
|
|
|
6
6
|
NO_SHOW // Candidate or interviewer failed to appear
|
|
7
7
|
EVALUATION_PENDING // Waiting for feedback or evaluation
|
|
8
8
|
EVALUATED // Feedback completed and locked
|
|
9
|
+
|
|
10
|
+
@@schema("public")
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
enum InterviewFeedback {
|
|
@@ -13,16 +15,22 @@ enum InterviewFeedback {
|
|
|
13
15
|
HIRE
|
|
14
16
|
NO_HIRE
|
|
15
17
|
STRONG_NO_HIRE
|
|
18
|
+
|
|
19
|
+
@@schema("public")
|
|
16
20
|
}
|
|
17
21
|
|
|
18
22
|
enum InterviewPlatform {
|
|
19
23
|
TREADSPACE
|
|
20
24
|
ZOOM
|
|
25
|
+
|
|
26
|
+
@@schema("public")
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
enum AiAssistanceMode {
|
|
24
30
|
NONE
|
|
25
31
|
ASSISTED
|
|
32
|
+
|
|
33
|
+
@@schema("public")
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
model Interview {
|
|
@@ -109,4 +117,5 @@ model Interview {
|
|
|
109
117
|
@@index([candidate_id])
|
|
110
118
|
@@index([interviewer_id])
|
|
111
119
|
@@index([job_description_id])
|
|
120
|
+
@@schema("public")
|
|
112
121
|
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
enum InterviewRecommendation {
|
|
2
|
+
ACCEPTED
|
|
3
|
+
REJECTED
|
|
4
|
+
UNSURE
|
|
5
|
+
|
|
6
|
+
@@schema("analytics")
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
model InterviewRoundAnalytics {
|
|
10
|
+
id String @id @default(uuid())
|
|
11
|
+
|
|
12
|
+
organisation_id String
|
|
13
|
+
round_id String @unique
|
|
14
|
+
interview_id String @unique
|
|
15
|
+
application_id String?
|
|
16
|
+
candidate_id String
|
|
17
|
+
job_description_id String
|
|
18
|
+
evaluation_plan_id String
|
|
19
|
+
|
|
20
|
+
job_code String?
|
|
21
|
+
job_number Int?
|
|
22
|
+
role_title String?
|
|
23
|
+
hiring_manager_id String?
|
|
24
|
+
department String?
|
|
25
|
+
location String?
|
|
26
|
+
|
|
27
|
+
round_name String?
|
|
28
|
+
evaluation_category EvaluationCategory?
|
|
29
|
+
round_type RoundType?
|
|
30
|
+
round_format EvaluationRoundFormat?
|
|
31
|
+
plan_order_no Int?
|
|
32
|
+
plan_type EvaluationPlanType?
|
|
33
|
+
is_custom Boolean @default(false)
|
|
34
|
+
|
|
35
|
+
interviewer_id String?
|
|
36
|
+
interviewer_employee_id String?
|
|
37
|
+
interviewer_name String?
|
|
38
|
+
|
|
39
|
+
candidate_name String?
|
|
40
|
+
candidate_email String?
|
|
41
|
+
|
|
42
|
+
evaluation_type EvaluationType?
|
|
43
|
+
ai_assistance_mode AiAssistanceMode?
|
|
44
|
+
interview_platform InterviewPlatform?
|
|
45
|
+
interview_status InterviewStatus?
|
|
46
|
+
|
|
47
|
+
scheduled_start_at DateTime?
|
|
48
|
+
scheduled_end_at DateTime?
|
|
49
|
+
actual_start_at DateTime?
|
|
50
|
+
actual_end_at DateTime?
|
|
51
|
+
evaluated_at DateTime?
|
|
52
|
+
first_assigned_at DateTime?
|
|
53
|
+
duration_minutes Int?
|
|
54
|
+
|
|
55
|
+
human_rating String?
|
|
56
|
+
ai_rating String?
|
|
57
|
+
recommendation InterviewRecommendation?
|
|
58
|
+
ai_disagrees_with_ai Boolean?
|
|
59
|
+
|
|
60
|
+
difficulty_score Float?
|
|
61
|
+
supportiveness_score Float?
|
|
62
|
+
topics_coverage_percent Float?
|
|
63
|
+
|
|
64
|
+
updated_at DateTime @updatedAt
|
|
65
|
+
|
|
66
|
+
@@index([organisation_id, evaluated_at])
|
|
67
|
+
@@index([organisation_id, interviewer_id, evaluated_at])
|
|
68
|
+
@@index([job_description_id])
|
|
69
|
+
@@index([application_id])
|
|
70
|
+
@@index([organisation_id, hiring_manager_id])
|
|
71
|
+
@@map("interview_round_analytics")
|
|
72
|
+
@@schema("analytics")
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
model InterviewRoundAnalyticsDaily {
|
|
76
|
+
id String @id @default(uuid())
|
|
77
|
+
|
|
78
|
+
snapshot_date DateTime @db.Date
|
|
79
|
+
|
|
80
|
+
organisation_id String
|
|
81
|
+
round_id String
|
|
82
|
+
interview_id String
|
|
83
|
+
application_id String?
|
|
84
|
+
candidate_id String
|
|
85
|
+
job_description_id String
|
|
86
|
+
evaluation_plan_id String
|
|
87
|
+
|
|
88
|
+
job_code String?
|
|
89
|
+
job_number Int?
|
|
90
|
+
role_title String?
|
|
91
|
+
hiring_manager_id String?
|
|
92
|
+
department String?
|
|
93
|
+
location String?
|
|
94
|
+
|
|
95
|
+
round_name String?
|
|
96
|
+
evaluation_category EvaluationCategory?
|
|
97
|
+
round_type RoundType?
|
|
98
|
+
round_format EvaluationRoundFormat?
|
|
99
|
+
plan_order_no Int?
|
|
100
|
+
plan_type EvaluationPlanType?
|
|
101
|
+
is_custom Boolean @default(false)
|
|
102
|
+
|
|
103
|
+
interviewer_id String?
|
|
104
|
+
interviewer_employee_id String?
|
|
105
|
+
interviewer_name String?
|
|
106
|
+
|
|
107
|
+
candidate_name String?
|
|
108
|
+
candidate_email String?
|
|
109
|
+
|
|
110
|
+
evaluation_type EvaluationType?
|
|
111
|
+
ai_assistance_mode AiAssistanceMode?
|
|
112
|
+
interview_platform InterviewPlatform?
|
|
113
|
+
interview_status InterviewStatus?
|
|
114
|
+
|
|
115
|
+
scheduled_start_at DateTime?
|
|
116
|
+
scheduled_end_at DateTime?
|
|
117
|
+
actual_start_at DateTime?
|
|
118
|
+
actual_end_at DateTime?
|
|
119
|
+
evaluated_at DateTime?
|
|
120
|
+
first_assigned_at DateTime?
|
|
121
|
+
duration_minutes Int?
|
|
122
|
+
|
|
123
|
+
human_rating String?
|
|
124
|
+
ai_rating String?
|
|
125
|
+
recommendation InterviewRecommendation?
|
|
126
|
+
ai_disagrees_with_ai Boolean?
|
|
127
|
+
|
|
128
|
+
difficulty_score Float?
|
|
129
|
+
supportiveness_score Float?
|
|
130
|
+
topics_coverage_percent Float?
|
|
131
|
+
|
|
132
|
+
@@unique([snapshot_date, interview_id])
|
|
133
|
+
@@index([snapshot_date], map: "irad_snapshot_date_idx")
|
|
134
|
+
@@index([snapshot_date, organisation_id], map: "irad_snapshot_org_idx")
|
|
135
|
+
@@index([snapshot_date, organisation_id, interviewer_id], map: "irad_snapshot_org_interviewer_idx")
|
|
136
|
+
@@index([snapshot_date, job_description_id], map: "irad_snapshot_job_idx")
|
|
137
|
+
@@index([snapshot_date, organisation_id, evaluated_at], map: "irad_snapshot_org_evaluated_idx")
|
|
138
|
+
@@map("interview_round_analytics_daily")
|
|
139
|
+
@@schema("analytics")
|
|
140
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
model InterviewerOrganisationAnalytics {
|
|
2
|
+
id String @id @default(uuid())
|
|
3
|
+
organisation_id String
|
|
4
|
+
user_id String
|
|
5
|
+
|
|
6
|
+
name String?
|
|
7
|
+
employee_id String?
|
|
8
|
+
|
|
9
|
+
interview_count Int @default(0)
|
|
10
|
+
accepted_count Int @default(0)
|
|
11
|
+
rejected_count Int @default(0)
|
|
12
|
+
unsure_count Int @default(0)
|
|
13
|
+
ai_disagreement_count Int @default(0)
|
|
14
|
+
ai_disagreement_percent Float?
|
|
15
|
+
avg_difficulty Float?
|
|
16
|
+
avg_supportiveness Float?
|
|
17
|
+
avg_topics_coverage_percent Float?
|
|
18
|
+
|
|
19
|
+
updated_at DateTime @updatedAt
|
|
20
|
+
|
|
21
|
+
@@unique([organisation_id, user_id])
|
|
22
|
+
@@index([organisation_id])
|
|
23
|
+
@@index([organisation_id, user_id])
|
|
24
|
+
@@map("interviewer_organisation_analytics")
|
|
25
|
+
@@schema("analytics")
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
model InterviewerJobAnalytics {
|
|
29
|
+
id String @id @default(uuid())
|
|
30
|
+
organisation_id String
|
|
31
|
+
user_id String
|
|
32
|
+
job_description_id String
|
|
33
|
+
|
|
34
|
+
hiring_manager_id String?
|
|
35
|
+
department String?
|
|
36
|
+
location String?
|
|
37
|
+
role_title String?
|
|
38
|
+
job_code String?
|
|
39
|
+
opened_at DateTime?
|
|
40
|
+
|
|
41
|
+
name String?
|
|
42
|
+
employee_id String?
|
|
43
|
+
|
|
44
|
+
interview_count Int @default(0)
|
|
45
|
+
accepted_count Int @default(0)
|
|
46
|
+
rejected_count Int @default(0)
|
|
47
|
+
unsure_count Int @default(0)
|
|
48
|
+
ai_disagreement_count Int @default(0)
|
|
49
|
+
ai_disagreement_percent Float?
|
|
50
|
+
avg_difficulty Float?
|
|
51
|
+
avg_supportiveness Float?
|
|
52
|
+
avg_topics_coverage_percent Float?
|
|
53
|
+
|
|
54
|
+
updated_at DateTime @updatedAt
|
|
55
|
+
|
|
56
|
+
@@unique([organisation_id, user_id, job_description_id])
|
|
57
|
+
@@index([organisation_id, job_description_id])
|
|
58
|
+
@@index([organisation_id, hiring_manager_id])
|
|
59
|
+
@@index([organisation_id, department])
|
|
60
|
+
@@index([organisation_id, location])
|
|
61
|
+
@@index([organisation_id, user_id])
|
|
62
|
+
@@map("interviewer_job_analytics")
|
|
63
|
+
@@schema("analytics")
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
model InterviewerOrganisationAnalyticsDaily {
|
|
67
|
+
id String @id @default(uuid())
|
|
68
|
+
snapshot_date DateTime @db.Date
|
|
69
|
+
organisation_id String
|
|
70
|
+
user_id String
|
|
71
|
+
|
|
72
|
+
name String?
|
|
73
|
+
employee_id String?
|
|
74
|
+
|
|
75
|
+
interview_count Int @default(0)
|
|
76
|
+
accepted_count Int @default(0)
|
|
77
|
+
rejected_count Int @default(0)
|
|
78
|
+
unsure_count Int @default(0)
|
|
79
|
+
ai_disagreement_count Int @default(0)
|
|
80
|
+
ai_disagreement_percent Float?
|
|
81
|
+
avg_difficulty Float?
|
|
82
|
+
avg_supportiveness Float?
|
|
83
|
+
avg_topics_coverage_percent Float?
|
|
84
|
+
|
|
85
|
+
@@unique([snapshot_date, organisation_id, user_id])
|
|
86
|
+
@@index([snapshot_date], map: "ioad_snapshot_date_idx")
|
|
87
|
+
@@index([snapshot_date, organisation_id], map: "ioad_snapshot_org_idx")
|
|
88
|
+
@@index([snapshot_date, organisation_id, user_id], map: "ioad_snapshot_org_user_idx")
|
|
89
|
+
@@map("interviewer_organisation_analytics_daily")
|
|
90
|
+
@@schema("analytics")
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
model InterviewerJobAnalyticsDaily {
|
|
94
|
+
id String @id @default(uuid())
|
|
95
|
+
snapshot_date DateTime @db.Date
|
|
96
|
+
organisation_id String
|
|
97
|
+
user_id String
|
|
98
|
+
job_description_id String
|
|
99
|
+
|
|
100
|
+
hiring_manager_id String?
|
|
101
|
+
department String?
|
|
102
|
+
location String?
|
|
103
|
+
role_title String?
|
|
104
|
+
job_code String?
|
|
105
|
+
opened_at DateTime?
|
|
106
|
+
|
|
107
|
+
name String?
|
|
108
|
+
employee_id String?
|
|
109
|
+
|
|
110
|
+
interview_count Int @default(0)
|
|
111
|
+
accepted_count Int @default(0)
|
|
112
|
+
rejected_count Int @default(0)
|
|
113
|
+
unsure_count Int @default(0)
|
|
114
|
+
ai_disagreement_count Int @default(0)
|
|
115
|
+
ai_disagreement_percent Float?
|
|
116
|
+
avg_difficulty Float?
|
|
117
|
+
avg_supportiveness Float?
|
|
118
|
+
avg_topics_coverage_percent Float?
|
|
119
|
+
|
|
120
|
+
@@unique([snapshot_date, organisation_id, user_id, job_description_id])
|
|
121
|
+
@@index([snapshot_date], map: "ijad_snapshot_date_idx")
|
|
122
|
+
@@index([snapshot_date, organisation_id, job_description_id], map: "ijad_snapshot_org_job_idx")
|
|
123
|
+
@@index([snapshot_date, organisation_id, hiring_manager_id], map: "ijad_snapshot_org_hm_idx")
|
|
124
|
+
@@index([snapshot_date, organisation_id, department], map: "ijad_snapshot_org_dept_idx")
|
|
125
|
+
@@index([snapshot_date, organisation_id, location], map: "ijad_snapshot_org_loc_idx")
|
|
126
|
+
@@index([snapshot_date, organisation_id, user_id], map: "ijad_snapshot_org_user_idx")
|
|
127
|
+
@@map("interviewer_job_analytics_daily")
|
|
128
|
+
@@schema("analytics")
|
|
129
|
+
}
|
|
@@ -6,6 +6,8 @@ enum JobApplicationFieldType {
|
|
|
6
6
|
MULTI_SELECT
|
|
7
7
|
FILE
|
|
8
8
|
DROP_DOWN
|
|
9
|
+
|
|
10
|
+
@@schema("public")
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
model JobApplicationField {
|
|
@@ -34,4 +36,5 @@ model JobApplicationField {
|
|
|
34
36
|
|
|
35
37
|
/// Indexes
|
|
36
38
|
@@index([organisation_id, template_id])
|
|
39
|
+
@@schema("public")
|
|
37
40
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
enum JobApplicationTemplateScope {
|
|
2
2
|
ORGANIZATION
|
|
3
3
|
JOB
|
|
4
|
+
|
|
5
|
+
@@schema("public")
|
|
4
6
|
}
|
|
5
7
|
|
|
6
8
|
model JobApplicationTemplate {
|
|
@@ -27,4 +29,5 @@ model JobApplicationTemplate {
|
|
|
27
29
|
/// Indexes
|
|
28
30
|
@@index([organisation_id, scope])
|
|
29
31
|
@@index([job_description_id])
|
|
32
|
+
@@schema("public")
|
|
30
33
|
}
|