@adaptware/eagles-db 0.5.64 → 0.5.68

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-d74526f1a30c6d557bd44d4d7187069253b3e53a24475a87103f0b235fd0e520",
2
+ "name": "prisma-client-bdd087ce1ce4ed2ca1137f9502a6ad5a458c491726e6e181f032eea6b01b9172",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "default.js",
@@ -2002,6 +2002,7 @@ model Interview {
2002
2002
  recording_url String?
2003
2003
  recording_document_id String? @unique
2004
2004
  evaluation_type EvaluationType? @default(TREADSPACE_AI_ASSISTED)
2005
+ is_proctored Boolean @default(true) @map("is_proctored")
2005
2006
  ai_assistance_mode AiAssistanceMode? @default(ASSISTED)
2006
2007
  interview_status InterviewStatus @default(SCHEDULED)
2007
2008
  interview_platform InterviewPlatform @default(TREADSPACE)
@@ -2032,36 +2033,47 @@ model Interview {
2032
2033
  /// When final human feedback was submitted.
2033
2034
  evaluated_at DateTime?
2034
2035
 
2036
+ /// Candidate Acceptance & DPDP Consent
2037
+ candidate_status String? @default("INVITED")
2038
+ dpdp_consent_given Boolean @default(false)
2039
+ dpdp_consent_given_at DateTime?
2040
+ candidate_responded_at DateTime?
2041
+ decline_reason String?
2042
+
2035
2043
  /// Self-scheduling
2036
- reschedule_count Int @default(0)
2044
+ reschedule_count Int @default(0)
2037
2045
  last_rescheduled_at DateTime?
2038
2046
  first_assigned_at DateTime?
2039
2047
  /// True while the candidate is waiting on recruiter action (typically a
2040
2048
  /// reassign) after they submitted alternate slots via "None match" /
2041
2049
  /// "Suggest times". Cleared whenever the recruiter routes a fresh
2042
2050
  /// request via `upsertInterviewRequestRecord`.
2043
- awaiting_recruiter_action Boolean @default(false)
2051
+ awaiting_recruiter_action Boolean @default(false)
2044
2052
  /// Audit fields
2045
- created_at DateTime @default(now())
2046
- updated_at DateTime @updatedAt
2053
+ created_at DateTime @default(now())
2054
+ updated_at DateTime @updatedAt
2047
2055
  created_by String
2048
2056
  updated_by String
2049
- is_active Boolean @default(true)
2057
+ is_active Boolean @default(true)
2058
+
2059
+ //interview proctoring
2060
+ proctoringSession ProctoringSession?
2061
+
2050
2062
  // Relations
2051
- candidate User? @relation("CandidateInterviews", fields: [candidate_id], references: [id], onDelete: SetNull)
2052
- interviewer User? @relation("InterviewerInterviews", fields: [interviewer_id], references: [id], onDelete: SetNull)
2053
- organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2054
- recording_document Document? @relation(fields: [recording_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2055
- job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2056
- resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2057
- evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2058
- application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2059
- ongoing_evaluation OngoingEvaluation?
2060
- transcripts Transcript[]
2061
- suggestions Suggestion[]
2062
- interviewNotes InterviewNotes[]
2063
- liveAnalysis LiveAnalysis[]
2064
- zoom_meeting ZoomMeeting?
2063
+ candidate User? @relation("CandidateInterviews", fields: [candidate_id], references: [id], onDelete: SetNull)
2064
+ interviewer User? @relation("InterviewerInterviews", fields: [interviewer_id], references: [id], onDelete: SetNull)
2065
+ organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2066
+ recording_document Document? @relation(fields: [recording_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2067
+ job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2068
+ resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2069
+ evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2070
+ application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2071
+ ongoing_evaluation OngoingEvaluation?
2072
+ transcripts Transcript[]
2073
+ suggestions Suggestion[]
2074
+ interviewNotes InterviewNotes[]
2075
+ liveAnalysis LiveAnalysis[]
2076
+ zoom_meeting ZoomMeeting?
2065
2077
 
2066
2078
  // Indexes
2067
2079
  @@index([candidate_id])
@@ -3818,6 +3830,125 @@ model PipelineDistributionAnalyticsDaily {
3818
3830
  @@schema("analytics")
3819
3831
  }
3820
3832
 
3833
+ enum RiskLevel {
3834
+ LOW
3835
+ MEDIUM
3836
+ HIGH
3837
+ CRITICAL
3838
+
3839
+ @@schema("public")
3840
+ }
3841
+
3842
+ enum AnalysisStatus {
3843
+ QUEUED
3844
+ RUNNING
3845
+ COMPLETED
3846
+ FAILED
3847
+
3848
+ @@schema("public")
3849
+ }
3850
+
3851
+ enum ProctoringEventType {
3852
+ GAZE_DISRUPTION
3853
+ OBJECT_DETECTED
3854
+ FACE_MISSING
3855
+ MULTIPLE_FACES
3856
+ BROWSER_TAB_SWITCH
3857
+ BROWSER_BLUR
3858
+ FULLSCREEN_EXIT
3859
+
3860
+ @@schema("public")
3861
+ }
3862
+
3863
+ enum ProctoringSessionStatus {
3864
+ NOT_STARTED
3865
+ CALIBRATING
3866
+ CALIBRATED
3867
+ PROCESSING
3868
+ COMPLETED
3869
+ FAILED
3870
+
3871
+ @@schema("public")
3872
+ }
3873
+
3874
+ model ProctoringSession {
3875
+ id String @id @default(uuid()) @map("id")
3876
+ interviewId String @unique @map("interview_id")
3877
+ interview Interview @relation(fields: [interviewId], references: [id], onDelete: Cascade)
3878
+
3879
+ // Proctoring Lifecycle & Media
3880
+ status ProctoringSessionStatus @default(NOT_STARTED) @map("status")
3881
+ calibrationFeatures Json? @map("calibration_features")
3882
+ chunkCount Int @default(0) @map("chunk_count")
3883
+ completedChunks Int @default(0) @map("completed_chunks")
3884
+
3885
+ // High-Level Aggregated Metrics for Downstream AI Evaluation
3886
+ overallRisk RiskLevel @default(LOW) @map("overall_risk")
3887
+ integrityScore Float @default(100.0) @map("integrity_score")
3888
+
3889
+ totalDurationSec Float @default(0.0) @map("total_duration_sec")
3890
+ faceDetectedPct Float? @map("face_detected_pct")
3891
+ onScreenGazePct Float? @map("on_screen_gaze_pct")
3892
+
3893
+ // Event Counters
3894
+ totalGazeEvents Int @default(0) @map("total_gaze_events")
3895
+ totalObjectEvents Int @default(0) @map("total_object_events")
3896
+ totalFaceEvents Int @default(0) @map("total_face_events")
3897
+ totalBrowserEvents Int @default(0) @map("total_browser_events")
3898
+
3899
+ createdAt DateTime @default(now()) @map("created_at")
3900
+ updatedAt DateTime @updatedAt @map("updated_at")
3901
+
3902
+ analyses ProctoringAnalysis[]
3903
+ events ProctoringEvent[]
3904
+
3905
+ @@map("proctoring_sessions")
3906
+ @@schema("public")
3907
+ }
3908
+
3909
+ model ProctoringAnalysis {
3910
+ id String @id @default(uuid()) @map("id")
3911
+ sessionId String @map("session_id")
3912
+ session ProctoringSession @relation(fields: [sessionId], references: [id], onDelete: Cascade)
3913
+
3914
+ status AnalysisStatus @default(QUEUED)
3915
+
3916
+ chunkIndex Int @default(0) @map("chunk_index")
3917
+ startTimeSec Float @default(0.0) @map("start_time_sec")
3918
+ endTimeSec Float @default(0.0) @map("end_time_sec")
3919
+
3920
+ videoKey String? @map("video_key")
3921
+ annotatedKey String? @map("annotated_key")
3922
+
3923
+ error String?
3924
+ createdAt DateTime @default(now()) @map("created_at")
3925
+ updatedAt DateTime @updatedAt @map("updated_at")
3926
+
3927
+ @@unique([sessionId, chunkIndex])
3928
+ @@map("proctoring_analyses")
3929
+ @@schema("public")
3930
+ }
3931
+
3932
+ model ProctoringEvent {
3933
+ id String @id @default(uuid()) @map("id")
3934
+ sessionId String @map("session_id")
3935
+ session ProctoringSession @relation(fields: [sessionId], references: [id], onDelete: Cascade)
3936
+
3937
+ eventType ProctoringEventType @map("event_type")
3938
+ timestampSec Float @map("timestamp_sec")
3939
+ timestampStr String @map("timestamp_str")
3940
+
3941
+ risk RiskLevel @default(LOW)
3942
+ metadata Json?
3943
+
3944
+ createdAt DateTime @default(now()) @map("created_at")
3945
+
3946
+ @@index([sessionId, timestampSec])
3947
+ @@index([sessionId, eventType])
3948
+ @@map("proctoring_events")
3949
+ @@schema("public")
3950
+ }
3951
+
3821
3952
  enum AsyncOperationStatus {
3822
3953
  PENDING
3823
3954
  IN_PROGRESS