@adaptware/eagles-db 0.5.29 → 0.5.30

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/wasm.js CHANGED
@@ -1328,14 +1328,18 @@ exports.Prisma.JobProfileScalarFieldEnum = {
1328
1328
  status: 'status',
1329
1329
  title: 'title',
1330
1330
  role_type: 'role_type',
1331
+ job_role_level: 'job_role_level',
1331
1332
  work_arrangement: 'work_arrangement',
1332
1333
  employment_type: 'employment_type',
1334
+ country_code: 'country_code',
1335
+ state_code: 'state_code',
1336
+ city: 'city',
1333
1337
  location: 'location',
1334
1338
  experience: 'experience',
1335
1339
  experience_min: 'experience_min',
1336
1340
  comp_range: 'comp_range',
1337
1341
  budget: 'budget',
1338
- country_code: 'country_code',
1342
+ openings: 'openings',
1339
1343
  responsibilities: 'responsibilities',
1340
1344
  must_have_skills: 'must_have_skills',
1341
1345
  nice_to_have_skills: 'nice_to_have_skills',
@@ -1343,8 +1347,8 @@ exports.Prisma.JobProfileScalarFieldEnum = {
1343
1347
  competencies: 'competencies',
1344
1348
  conversation_history: 'conversation_history',
1345
1349
  orion_execution_id: 'orion_execution_id',
1346
- created_at: 'created_at',
1347
1350
  created_by: 'created_by',
1351
+ created_at: 'created_at',
1348
1352
  updated_at: 'updated_at',
1349
1353
  is_active: 'is_active'
1350
1354
  };
@@ -2903,13 +2907,13 @@ const config = {
2903
2907
  }
2904
2908
  }
2905
2909
  },
2906
- "inlineSchema": "model CandidateQuestionResponse {\n id String @id @default(uuid())\n //foreign keys\n question_id String\n candidate_id String\n assessment_id String\n //data\n response String\n score Float?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n // Relations\n question Question @relation(fields: [question_id], references: [id], onDelete: Cascade)\n assessment Assessment @relation(fields: [assessment_id], references: [id], onDelete: Cascade)\n candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([assessment_id, question_id, candidate_id])\n @@index([candidate_id])\n @@index([assessment_id])\n @@schema(\"public\")\n}\n\nmodel UserRole {\n id String @id @default(uuid())\n role String\n organisation_id String?\n is_custom Boolean @default(false)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n permission_id String? @unique\n permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n users User[]\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@unique([role, organisation_id])\n @@index([role, organisation_id])\n @@index([organisation_id])\n @@index([permission_id])\n @@schema(\"public\")\n}\n\nenum ActionType {\n TAKE_INTERVIEW\n PROVIDE_FEEDBACK\n SCHEDULE_INTERVIEW\n /// Dept head is asked to submit their department's hiring requirements.\n SUBMIT_DEPARTMENT_HIRING_REQUIREMENTS\n /// CHRO must review a department's submitted hiring requirements.\n REVIEW_DEPARTMENT_HIRING_REQUIREMENTS\n /// Dept head must update requirements after CHRO requested changes.\n UPDATE_DEPARTMENT_HIRING_REQUIREMENTS\n\n @@schema(\"public\")\n}\n\nenum ActionStatus {\n PENDING\n COMPLETED\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel Action {\n id String @id @default(uuid())\n assignee_id String\n title String\n action_type ActionType\n action_id String // Generic foreign key that can link to any entity\n due_date DateTime?\n organisation_id String\n status ActionStatus @default(PENDING)\n // Relations\n user User @relation(fields: [assignee_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@index([assignee_id, action_type])\n @@index([status])\n @@index([due_date])\n @@schema(\"public\")\n}\n\nenum ActivityEventType {\n APPLICATION_CREATED\n APPLICATION_STARTED\n APPLICATION_REJECTED\n APPLICATION_ON_HOLD\n APPLICATION_WITHDRAWN\n APPLICATION_SHORTLISTED\n\n FIT_CHECK_COMPLETED\n\n ROUND_ASSIGNED\n ROUND_COMPLETED\n ROUND_PASSED\n ROUND_FAILED\n\n INTERVIEW_CREATED\n INTERVIEW_SCHEDULED\n INTERVIEW_RESCHEDULED\n INTERVIEW_CANCELLED\n INTERVIEW_STARTED\n INTERVIEW_COMPLETED\n INTERVIEW_NO_SHOW\n INTERVIEW_EVALUATION_PENDING\n INTERVIEW_EVALUATED\n\n FEEDBACK_SUBMITTED\n\n ASSIGNMENT_CREATED\n ASSIGNMENT_STARTED\n ASSIGNMENT_COMPLETED\n ASSIGNMENT_CANCELLED\n ASSIGNMENT_EVALUATED\n\n ASSESSMENT_CREATED\n ASSESSMENT_STARTED\n ASSESSMENT_COMPLETED\n ASSESSMENT_CANCELLED\n ASSESSMENT_EVALUATED\n\n JOB_CREATED\n JOB_PUBLISHED\n JOB_CLOSED\n JOB_DEACTIVATED\n\n /// Offer workflow — one semantic event per business moment.\n OFFER_CREATED\n OFFER_GENERATED\n OFFER_SENT\n OFFER_REVISED\n OFFER_ACCEPTED\n OFFER_DECLINED\n OFFER_WITHDRAWN\n OFFER_JOINED\n OFFER_NO_SHOW\n /// Legacy values kept for historic ActivityEvent rows; not emitted by current flow.\n OFFER_VIEWED\n OFFER_CHANGE_REQUESTED\n OFFER_CHANGE_UNDER_REVIEW\n OFFER_COUNTER_SENT\n OFFER_EXPIRED\n OFFER_CHANGE_REQUEST_REJECTED\n OFFER_CHANGE_REQUEST_WITHDRAWN\n\n USER_INVITED\n USER_INVITATION_RESENT\n USER_CREATED\n USER_INVITATION_ACCEPTED\n USER_INVITATION_EXPIRED\n USER_DEACTIVATED\n USER_REACTIVATED\n USER_ROLE_CHANGED\n USER_PROFILE_COMPLETED\n\n CANDIDATE_REGISTERED\n CANDIDATE_CREATED\n CANDIDATE_PROFILE_COMPLETED\n\n EVALUATION_PLAN_CREATED\n EVALUATION_PLAN_PUBLISHED\n EVALUATION_PLAN_DELETED\n EVALUATION_PLAN_UPDATED\n STATUS_CHANGED\n\n CUSTOM\n\n @@schema(\"public\")\n}\n\nenum ActivityEntityType {\n APPLICATION\n\n CANDIDATE\n\n JOB\n\n ONGOING_EVALUATION\n\n EVALUATION_PLAN\n\n INTERVIEW\n\n ASSIGNMENT\n\n ASSESSMENT\n\n /// Offer workflow entity — entity_id = offer.id\n OFFER\n\n ORGANISATION\n\n USER\n\n @@schema(\"public\")\n}\n\nenum ActivityEntityActorType {\n USER\n\n SYSTEM\n\n AI_AGENT\n\n WEBHOOK\n\n @@schema(\"public\")\n}\n\nmodel ActivityEvent {\n id String @id @default(uuid())\n\n organisation_id String?\n\n event_type ActivityEventType\n\n entity_type ActivityEntityType\n entity_id String\n\n actor_id String?\n actor_type ActivityEntityActorType\n\n related_entities Json?\n\n snapshot Json?\n\n payload Json?\n\n schema_version Int @default(1)\n\n occurred_at DateTime\n\n created_at DateTime @default(now())\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id])\n\n @@index([organisation_id, occurred_at])\n @@index([organisation_id, event_type])\n @@index([entity_type, entity_id])\n @@index([actor_id])\n @@index([occurred_at])\n @@map(\"activity_events\")\n @@schema(\"public\")\n}\n\nenum ActivityActorType {\n USER\n AI\n SYSTEM\n\n @@schema(\"public\")\n}\n\nmodel ActivityLog {\n id String @id @default(uuid())\n application_id String\n actor_id String?\n actor_type ActivityActorType @default(USER)\n message String\n timestamp DateTime @default(now())\n metadata Json?\n created_at DateTime @default(now())\n is_active Boolean @default(true)\n // Relations\n actor User? @relation(\"ActorActivityLogs\", fields: [actor_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([application_id])\n @@schema(\"public\")\n}\n\nmodel ApplicationAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n application_id String @unique\n job_description_id String\n candidate_id String\n\n source_id String?\n source_name String?\n source_category SourceCategory?\n source_colour String?\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n candidate_name String?\n recruiter_id String?\n\n applied_at DateTime\n status_updated_at DateTime?\n\n status ApplicationStatus?\n fit_check_score Float?\n\n is_screened Boolean @default(false)\n is_evaluated Boolean @default(false)\n is_rejected Boolean @default(false)\n is_shortlisted Boolean @default(false)\n is_on_hold Boolean @default(false)\n is_withdrawn Boolean @default(false)\n has_committed_evaluation Boolean @default(false)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, applied_at])\n @@index([organisation_id, source_id, applied_at])\n @@index([job_description_id, applied_at])\n @@index([organisation_id, hiring_manager_id])\n @@map(\"application_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel ApplicationAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n application_id String\n job_description_id String\n candidate_id String\n\n source_id String?\n source_name String?\n source_category SourceCategory?\n source_colour String?\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n candidate_name String?\n recruiter_id String?\n\n applied_at DateTime\n status_updated_at DateTime?\n\n status ApplicationStatus?\n fit_check_score Float?\n\n is_screened Boolean @default(false)\n is_evaluated Boolean @default(false)\n is_rejected Boolean @default(false)\n is_shortlisted Boolean @default(false)\n is_on_hold Boolean @default(false)\n is_withdrawn Boolean @default(false)\n has_committed_evaluation Boolean @default(false)\n\n @@unique([snapshot_date, application_id])\n @@index([snapshot_date], map: \"aad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"aad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, source_id], map: \"aad_snapshot_org_source_idx\")\n @@index([snapshot_date, organisation_id, applied_at], map: \"aad_snapshot_org_applied_idx\")\n @@index([snapshot_date, job_description_id], map: \"aad_snapshot_job_idx\")\n @@map(\"application_analytics_daily\")\n @@schema(\"analytics\")\n}\n\n// PENDING could be understood as unscreened\nenum ApplicationStatus {\n PENDING\n IN_PROGRESS\n SELECTED\n OFFER\n JOINED\n SHORTLISTED\n REJECTED\n ON_HOLD\n WITHDRAWN\n\n @@schema(\"public\")\n}\n\n/// Fine-grained state within ApplicationStatus.OFFER. Owned by Application —\n/// Offer table holds terms/letters/audit only, no lifecycle enum of its own.\nenum ApplicationOfferSubstatus {\n /// Offer row created with terms, no letter generated yet.\n PREPARING\n /// Letter DOCX generated and downloaded — awaiting manual send outside TreadSpace.\n GENERATED\n /// Staff manually marked the letter as sent to the candidate.\n SENT\n /// Revising after SENT — current letter is superseded, no active letter until next Generate.\n NEGOTIATING\n /// Candidate accepted (staff-recorded, no candidate portal).\n ACCEPTED\n /// Candidate declined — Application.status also flips to REJECTED.\n DECLINED\n /// Offer withdrawn by staff — Application.status also flips to REJECTED.\n WITHDRAWN\n /// Candidate accepted but did not join — Application.status also flips to REJECTED.\n NO_SHOW\n\n @@schema(\"public\")\n}\n\nmodel Application {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n candidate_id String\n resume_id String\n job_description_id String\n evaluation_plan_id String?\n recruiter_id String?\n source_id String?\n /// Data fields\n fit_check_score Float?\n applied_at DateTime @default(now())\n round_no Int @default(0)\n is_jaf_completed Boolean @default(false)\n proceed_to_next_round Boolean? @default(false)\n evaluationComment String?\n /// Candidate flag (orthogonal to ApplicationStatus). Latest actor/comment only.\n is_flagged Boolean @default(false)\n flag_comment String?\n flagged_at DateTime?\n flagged_by String?\n unflag_comment String?\n unflagged_at DateTime?\n unflagged_by String?\n fit_check_status FitCheckStatus?\n status ApplicationStatus @default(PENDING)\n /// Fine-grained offer-stage state. Meaningful only when status = OFFER (or was OFFER for a terminal-substatus that flipped to REJECTED / JOINED).\n offer_substatus ApplicationOfferSubstatus?\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n /// Relations\n evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id])\n candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n fit_check FitCheck?\n recruiter User? @relation(\"ApplicationRecruiter\", fields: [recruiter_id], references: [id])\n source Source? @relation(fields: [source_id], references: [id], onDelete: SetNull)\n interviews Interview[]\n assignments Assignment[]\n ongoing_evaluations OngoingEvaluation[]\n activity_logs ActivityLog[]\n notes Notes[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n job_application_responses JobApplicationResponse[]\n offer Offer?\n\n @@unique([candidate_id, job_description_id]) // Ensures candidate applies only once per job\n @@index([candidate_id])\n @@index([job_description_id])\n @@index([source_id])\n @@index([organisation_id, is_flagged])\n @@index([job_description_id, is_flagged])\n @@index([organisation_id, is_active, status])\n @@index([job_description_id, is_active, status])\n @@index([organisation_id, offer_substatus])\n @@schema(\"public\")\n}\n\nmodel Approval {\n id String @id @default(uuid())\n job_description_id String\n user_id String\n organisaton_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisaton_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@schema(\"public\")\n}\n\nmodel Assessment {\n id String @id @default(uuid())\n //foreign keys\n organisation_id String?\n assessment_library_id String\n candidate_id String\n reviewer_id String?\n //data\n score Float?\n feedback Json?\n // Scheduled Deadline Window\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n /// Actual Start and End Time\n actual_start_time DateTime?\n actual_end_time DateTime?\n /// Attempt Expires At\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n assessment_library AssessmentLibrary @relation(fields: [assessment_library_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User @relation(\"CandidateAssessments\", fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n reviewer User? @relation(\"ReviewerAssessments\", fields: [reviewer_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n questions AssessmentQuestion[] @relation(\"AssessmentToAssessmentQuestion\")\n candidateResponse CandidateQuestionResponse[]\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n User User? @relation(fields: [userId], references: [id])\n userId String?\n ongoingEvaluation OngoingEvaluation?\n\n @@unique([assessment_library_id, candidate_id])\n @@index([assessment_library_id])\n @@index([candidate_id])\n @@schema(\"public\")\n}\n\n/// Defines how an assessment is conducted.\n\nmodel AssessmentLibrary {\n id String @id @default(uuid())\n title String\n time_required Int\n passing_score Float?\n max_score Float?\n organisation_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n questions Question[] // One assessment → many questions\n assessments Assessment[]\n evaluation_Plans EvaluationPlan[]\n\n @@index([organisation_id])\n @@schema(\"public\")\n}\n\n/**\n * Join table linking Assessments and Questions in a many-to-many relationship.\n * - Each row represents one link between a specific Assessment and a specific Question.\n * - Composite ID ensures no duplicate pairings exist.\n * - Cascade delete ensures join rows are removed when either side is deleted.\n * - Enables sharing the same Question across multiple Assessments.\n */\nmodel AssessmentQuestion {\n assessment_id String\n question_id String\n assessment Assessment @relation(\"AssessmentToAssessmentQuestion\", fields: [assessment_id], references: [id], onDelete: Cascade)\n question Question @relation(\"QuestionToAssessmentQuestion\", fields: [question_id], references: [id], onDelete: Cascade)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@id([assessment_id, question_id])\n @@schema(\"public\")\n}\n\nenum AssessmentRoundStatus {\n SCHEDULED\n IN_PROGRESS\n COMPLETED\n EVALUATED\n CANCELLED\n\n @@schema(\"analytics\")\n}\n\nmodel AssessmentRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n assessment_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n\n score Float?\n status AssessmentRoundStatus?\n round_result RoundResult?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, reviewer_id])\n @@index([job_description_id])\n @@index([application_id])\n @@map(\"assessment_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel AssessmentRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n assessment_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n\n score Float?\n status AssessmentRoundStatus?\n round_result RoundResult?\n\n @@unique([snapshot_date, assessment_id])\n @@index([snapshot_date], map: \"asrad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"asrad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"asrad_snapshot_job_idx\")\n @@map(\"assessment_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AssignmentStatus {\n AVAILABLE\n SCHEDULED\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel Assignment {\n id String @id @default(uuid())\n candidate_id String\n assignment_library_id String\n reviewer_id String?\n application_id String?\n job_description_id String\n organisation_id String\n ongoing_evaluation_id String? @unique\n overallScore Int?\n feedback Json?\n status AssignmentStatus @default(AVAILABLE)\n cancel_reason String?\n /// @deprecated Prefer `solution_document_id` + `Document`.\n solution_url String?\n /// @deprecated Prefer `zip_document_id` + `Document`.\n zip_url String?\n solution_document_id String? @unique\n zip_document_id String? @unique\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n evaluated_at DateTime?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n candidate User? @relation(\"CandidateAssignments\", fields: [candidate_id], references: [id], onDelete: Cascade)\n assignment_library AssignmentLibrary @relation(fields: [assignment_library_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n reviewer User? @relation(\"AssignmentReviewer\", fields: [reviewer_id], references: [id], onDelete: SetNull)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n ongoing_evaluation OngoingEvaluation? @relation(fields: [ongoing_evaluation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n solution_document Document? @relation(\"AssignmentSolutionDocument\", fields: [solution_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n zip_document Document? @relation(\"AssignmentZipDocument\", fields: [zip_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([candidate_id, ongoing_evaluation_id])\n @@index([candidate_id])\n @@index([reviewer_id])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nmodel AssignmentLibrary {\n id String @id @default(uuid())\n deadline Int\n /// Flexible JSON for assignment-specific config (rubrics, instructions, criteria, etc.)\n assignment Json?\n job_description_id String\n organisation_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Back-relation: one-to-one from EvaluationPlan (FK lives on EvaluationPlan.assignment_library_id)\n evaluationPlan EvaluationPlan[]\n assignments Assignment[]\n\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nmodel AssignmentRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n assignment_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n completed_at DateTime?\n evaluated_at DateTime?\n cancelled_at DateTime?\n\n status AssignmentStatus?\n overall_score Int?\n cancel_reason String?\n round_result RoundResult?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, reviewer_id])\n @@index([job_description_id])\n @@index([application_id])\n @@map(\"assignment_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel AssignmentRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n assignment_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n completed_at DateTime?\n evaluated_at DateTime?\n cancelled_at DateTime?\n\n status AssignmentStatus?\n overall_score Int?\n cancel_reason String?\n round_result RoundResult?\n\n @@unique([snapshot_date, assignment_id])\n @@index([snapshot_date], map: \"arad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"arad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"arad_snapshot_job_idx\")\n @@map(\"assignment_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AuthProvider {\n GOOGLE\n MICROSOFT\n ZOOM\n CALENDLY\n\n @@schema(\"public\")\n}\n\nmodel AuthModule {\n id String @id @default(uuid())\n user_id String\n /// The provider of the authentication module\n provider AuthProvider\n provider_account_id String? @db.Text\n\n access_token String? @db.Text\n refresh_token String? @db.Text\n id_token String? @db.Text\n expires_at DateTime?\n\n token_type String?\n\n scope String?\n is_active Boolean @default(true)\n\n /// Provider-specific JSON (e.g. Zoom: email, display); tokens remain in encrypted columns.\n metadata Json @default(\"{}\")\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n user User @relation(\"UserAuthModule\", fields: [user_id], references: [id], onDelete: Cascade)\n\n @@unique([user_id, provider])\n @@unique([provider, provider_account_id])\n @@index([user_id])\n @@schema(\"public\")\n}\n\nenum JobType {\n Full_time\n Part_time\n Contract\n Internship\n Temporary\n\n @@schema(\"public\")\n}\n\nenum JDCreationType {\n Pick_from_Library\n Upload_JD\n Create_New\n Create_From_Profile\n\n @@schema(\"public\")\n}\n\nmodel Budget {\n id String @id @default(uuid())\n job_type JobType\n location String\n shift String\n openings Int\n budget_per_job String\n level String\n start_date DateTime\n closing_date DateTime\n business_unit String\n purpose String\n role String\n domain String\n jd_creation_type JDCreationType\n job_description_id String @unique\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Optional link to annual plan line (legacy Budget API; primary commit path is JobDescription).\n hiring_plan_line_id String?\n hiring_plan_line HiringPlanLine? @relation(fields: [hiring_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@index([hiring_plan_line_id])\n @@schema(\"public\")\n}\n\nmodel Calendly {\n id String @id @default(uuid())\n user_id String @unique\n\n access_token String\n refresh_token String\n expires_at DateTime\n calendly_user_uri String\n scope String?\n\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nmodel CandidateProfile {\n id String @id @default(uuid())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n name String\n phone String\n location String\n salary String?\n description String?\n resume_id String? @unique\n date_of_birth DateTime?\n\n user User? @relation(fields: [user_id], references: [id])\n user_id String? @unique\n\n resume Resume? @relation(fields: [resume_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n work_experience Json?\n education Json?\n notice_period String?\n gender String?\n ethnicity String?\n veteran_status String?\n disability_status String?\n is_active Boolean @default(true)\n planned_candidates PlannedCandidate[]\n\n @@schema(\"public\")\n}\n\n// Multi-channel communication (WhatsApp, Email, SMS, Call) with provider abstraction.\n// Strategy: typed columns for everything stable; JSON only for genuinely variable data.\n\nenum CommChannel {\n WHATSAPP\n EMAIL\n SMS\n CALL\n\n @@schema(\"public\")\n}\n\nenum CommProvider {\n META_WHATSAPP\n TWILIO\n GUPSHUP\n MTALKZ\n THREE_SIXTY_DIALOG\n GMAIL\n OUTLOOK\n GENERIC_SMTP\n GENERIC\n\n @@schema(\"public\")\n}\n\nenum CommDirection {\n INBOUND\n OUTBOUND\n\n @@schema(\"public\")\n}\n\nenum CommMessageStatus {\n QUEUED\n SENT\n DELIVERED\n READ\n FAILED\n RECEIVED\n\n @@schema(\"public\")\n}\n\n/// Per-organisation provider selection + (encrypted) credentials for one channel.\n/// `metadata` stores non-secret provider settings (e.g. phone_number_id, waba_id, webhook_verify_token).\nmodel ChannelProviderConfig {\n id String @id @default(uuid())\n organisation_id String\n channel CommChannel\n provider CommProvider\n /// Encrypted JSON blob of secrets (token, app_secret, …) using integrationTokenCrypto.\n credentials String?\n metadata Json @default(\"{}\")\n is_active Boolean @default(true)\n is_default Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n conversations Conversation[]\n messages CommunicationMessage[]\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, channel, provider])\n @@index([organisation_id, channel])\n @@index([organisation_id, channel, is_active])\n @@schema(\"public\")\n}\n\n/// A logical conversation thread with one external party on one channel.\n/// `external_id` is the channel-native identifier (E.164 phone for WhatsApp/SMS, email address for email).\n///\n/// `application_id` / `job_description_id` are the *current* recruiting scope\n/// the thread is bound to (the recruiter can switch context, but individual\n/// `CommunicationMessage` rows record the scope they were sent under so the\n/// audit trail is preserved). Both nullable so pre-application sourcing\n/// (no application yet, just a JD) still works.\nmodel Conversation {\n id String @id @default(uuid())\n organisation_id String\n channel CommChannel\n provider CommProvider\n channel_provider_id String?\n external_id String\n contact_user_id String?\n application_id String?\n job_description_id String?\n provider_thread_id String?\n subject String?\n status String @default(\"open\")\n unread_count Int @default(0)\n last_message_at DateTime?\n metadata Json @default(\"{}\")\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n channel_provider ChannelProviderConfig? @relation(fields: [channel_provider_id], references: [id], onDelete: SetNull)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n messages CommunicationMessage[]\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, channel, provider, external_id])\n @@index([organisation_id, channel])\n @@index([organisation_id, last_message_at])\n @@index([external_id])\n @@index([organisation_id, application_id])\n @@index([organisation_id, job_description_id])\n @@schema(\"public\")\n}\n\n/// Individual message in a conversation. Inbound + outbound share the same model.\n/// `body` is plain text. `attachments` is a JSON array of media descriptors (no binaries persisted).\n/// `metadata` stores raw provider payloads + interactive payloads for audit/debug.\n///\n/// `application_id` / `job_description_id` are the recruiting scope this\n/// specific message was sent/received under, captured at the time of the\n/// event (not derived from the parent conversation, since a recruiter may\n/// reuse a thread across multiple applications). Both nullable.\nmodel CommunicationMessage {\n id String @id @default(uuid())\n conversation_id String\n organisation_id String\n channel CommChannel\n provider CommProvider\n channel_provider_id String?\n direction CommDirection\n status CommMessageStatus\n body String?\n from_identifier String\n to_identifier String\n sender_user_id String?\n application_id String?\n job_description_id String?\n provider_message_id String?\n template_name String?\n attachments Json @default(\"[]\")\n metadata Json @default(\"{}\")\n error String?\n sent_at DateTime?\n delivered_at DateTime?\n read_at DateTime?\n\n conversation Conversation @relation(fields: [conversation_id], references: [id], onDelete: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n channel_provider ChannelProviderConfig? @relation(fields: [channel_provider_id], references: [id], onDelete: SetNull)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([provider, provider_message_id])\n @@index([conversation_id, created_at])\n @@index([organisation_id, channel, created_at])\n @@index([organisation_id, status])\n @@index([organisation_id, application_id])\n @@index([organisation_id, job_description_id])\n @@schema(\"public\")\n}\n\nenum CompetencyCategory {\n TECHNICAL\n BEHAVIOURAL\n AI\n\n @@schema(\"public\")\n}\n\nmodel CompetencyDictionary {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String?\n /// Data fields\n category CompetencyCategory\n /// Optional department catalog value (DepartmentType in app code; not linked to Department model).\n department String?\n /// Optional free-text job role / job profile title (not a FK).\n jobRole String?\n /// Optional free-text provenance / source label (not an enum).\n dictionary_source String?\n /// Industry catalog value (Industry enum in app code).\n industry String\n name String\n description String?\n /// Proficiency ladder definitions (competency-specific text)\n level1 String?\n level2 String?\n level3 String?\n level4 String?\n level5 String?\n metadata Json?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([organisation_id])\n @@index([organisation_id, category])\n @@index([organisation_id, industry, department, category])\n @@schema(\"public\")\n}\n\nmodel ContactUs {\n id String @id @default(uuid())\n first_name String\n last_name String\n email String?\n phone String?\n organisation_name String\n organisation_website String?\n subject String?\n message String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\n/// Section-level status for a department's slice of the hiring plan.\n/// DRAFT — legacy pre-request state (heads had free edit); still used\n/// when a section row exists before CHRO has \"requested input\".\n/// REQUESTED — CHRO has requested input; head may edit.\n/// SUBMITTED — head submitted; awaiting CHRO review; head is frozen.\n/// CHANGES_REQUESTED — CHRO sent back with a note; head may edit again.\n/// APPROVED — CHRO approved; heads frozen. CHRO may still edit\n/// (product default). Reopen returns to CHANGES_REQUESTED.\n/// SKIPPED — CHRO opted out of collecting input for this dept.\nenum HiringPlanSectionStatus {\n DRAFT\n REQUESTED\n SUBMITTED\n CHANGES_REQUESTED\n APPROVED\n SKIPPED\n\n @@schema(\"public\")\n}\n\n/// First-class org unit that owns a slice of the annual hiring plan.\n/// Replaces the free-text `business_unit` string on HiringPlanLine / Employee.\n/// Headship lives on DepartmentMember.is_head (at most one per dept, enforced in service).\nmodel Department {\n id String @id @default(uuid())\n organisation_id String\n name String\n code String?\n /// Global display order across departments within the org (drag-reorder in plan grid).\n sort_order Int @default(0)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n members DepartmentMember[]\n hiring_plan_lines HiringPlanLine[]\n employees Employee[]\n job_descriptions JobDescription[]\n job_profiles JobProfile[]\n sections HiringPlanSection[]\n\n @@unique([organisation_id, name])\n @@index([organisation_id])\n @@schema(\"public\")\n}\n\n/// Many-to-many membership: a user can belong to multiple departments.\n/// is_head marks the department head for that membership row. The same user can\n/// be head of multiple departments (multiple rows with is_head=true). At most\n/// one is_head=true per department is enforced in DepartmentService.\nmodel DepartmentMember {\n id String @id @default(uuid())\n department_id String\n user_id String\n is_head Boolean @default(false)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n department Department @relation(fields: [department_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(\"DepartmentMemberships\", fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([department_id, user_id])\n @@index([user_id])\n @@index([department_id, is_head])\n @@schema(\"public\")\n}\n\n/// Per-department status for a specific hiring plan (request → submit → approve/lock).\nmodel HiringPlanSection {\n id String @id @default(uuid())\n hiring_plan_id String\n department_id String\n status HiringPlanSectionStatus @default(DRAFT)\n /// CHRO/Exec who invoked \"Request input\" for this dept.\n requested_by String?\n requested_at DateTime?\n submitted_by String?\n submitted_at DateTime?\n approved_by String?\n approved_at DateTime?\n /// CHRO/Exec who opted to skip this dept (or the dept-head request lifecycle).\n skipped_by String?\n skipped_at DateTime?\n /// Latest CHRO note attached to Request Changes / Reopen.\n review_note String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan HiringPlan @relation(fields: [hiring_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department @relation(fields: [department_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([hiring_plan_id, department_id])\n @@index([hiring_plan_id])\n @@index([department_id])\n @@index([status])\n @@schema(\"public\")\n}\n\nmodel Document {\n // Primary key\n id String @id @default(uuid())\n // Foreign keys\n organisation_id String?\n candidate_id String?\n // Data fields\n original_file_name String\n stored_file_name String\n file_extension String?\n s3_bucket String?\n s3_key String?\n mime_type String?\n file_size BigInt?\n file_hash String?\n metadata Json?\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n resume Resume? @relation(\"ResumeSourceDocument\")\n resume_rendered_export Resume? @relation(\"RenderedResumeExport\")\n job_description_source JobDescription? @relation(\"SourceDocument\")\n job_description_rendered JobDescription? @relation(\"RenderedJdDocument\")\n job_description_display_html JobDescription? @relation(\"DisplayHtmlDocument\")\n interview_recording Interview?\n job_application_responses JobApplicationResponse[]\n assignment_solution Assignment? @relation(\"AssignmentSolutionDocument\")\n assignment_zip Assignment? @relation(\"AssignmentZipDocument\")\n offer_letter_template_docx OfferLetterTemplate[] @relation(\"OfferLetterTemplateDocx\")\n offer_letter_template_html OfferLetterTemplate[] @relation(\"OfferLetterTemplateHtml\")\n offer_letters OfferLetter[] @relation(\"OfferLetterPdf\")\n offer_letter_template_snapshots OfferLetter[] @relation(\"OfferLetterTemplateSnapshot\")\n offer_draft_edited_html Offer[] @relation(\"OfferDraftEditedHtml\")\n\n // Indexes\n @@index([candidate_id])\n @@index([organisation_id, candidate_id])\n @@index([file_hash])\n @@schema(\"public\")\n}\n\nenum CriteriaScope {\n ORGANISATION\n TREADSPACE\n\n @@schema(\"public\")\n}\n\nmodel EvaluationCriteria {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String?\n /// Data fields\n scope CriteriaScope\n key String\n criteria String?\n description String?\n weightage Float?\n is_elimination Boolean @default(false)\n metadata Json?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Indexes\n @@index([scope, organisation_id])\n @@schema(\"public\")\n}\n\nenum RoundType {\n ASSESSMENT\n INTERVIEW\n ASSIGNMENT\n SCREENING\n\n @@schema(\"public\")\n}\n\nenum EvaluationCategory {\n SCREENING\n BUSINESS_SCREENING\n BUSINESS_ROUND\n BEHAVIORAL_ROUND\n\n @@schema(\"public\")\n}\n\nenum EvaluationType {\n // New (In active use now)\n TREADSPACE_AI_ASSISTED\n TREADSPACE_FULL_AI\n EXTERNAL_AI_ASSISTED\n NON_AI_ASSISTED\n\n @@schema(\"public\")\n}\n\nenum EvaluationPlanType {\n CUSTOM\n GENERIC\n DELETED\n\n @@schema(\"public\")\n}\n\nenum EvaluationPlanShareScope {\n PRIVATE\n CREATOR\n ORGANIZATION\n\n @@schema(\"public\")\n}\n\nenum DurationUnit {\n MINUTES\n HOURS\n DAYS\n\n @@schema(\"public\")\n}\n\nmodel EvaluationPlan {\n id String @id @default(uuid())\n job_description_id String\n assessment_id String?\n assignment_library_id String?\n title String\n description String?\n focus_areas String[]\n topics String[]\n assignee String?\n elimination_round Boolean @default(false)\n evaluation_type EvaluationType @default(TREADSPACE_AI_ASSISTED)\n type_of_round RoundType\n round_purpose String?\n timeline Int?\n order_no Int?\n details Json?\n plan_type EvaluationPlanType @default(GENERIC)\n share_scope EvaluationPlanShareScope @default(PRIVATE)\n duration Int?\n duration_unit DurationUnit?\n deadline Int?\n category EvaluationCategory?\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n // Relations\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)\n questions Question[] // One evaluation plan → many questions\n interviews Interview[]\n applications Application[]\n // New optional one-to-one relation with AssessmentLibrary\n assessment AssessmentLibrary? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)\n assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)\n ongoing_evaluations OngoingEvaluation[]\n\n @@index([job_description_id])\n @@index([job_description_id, plan_type, share_scope])\n @@index([created_by, share_scope])\n @@schema(\"public\")\n}\n\nmodel Feedback {\n id String @id @default(uuid())\n interview_id String\n order_no Int\n\n ai_feedback Json?\n human_feedback Json?\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([interview_id, order_no])\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nenum FitCheckStatus {\n RECOMMENDED\n TO_REVIEW\n NOT_RECOMMENDED\n\n @@schema(\"public\")\n}\n\nmodel FitCheck {\n /// Primary key (UUID)\n id String @id @default(uuid())\n /// FK to organisations table\n organisation_id String?\n candidate_id String?\n resume_id String\n job_description_id String\n /// Owning application (inverted from Application.fit_check_id)\n application_id String? @unique\n skills_analysis Json?\n overall_analysis Json?\n overall_score Float\n short_match_analysis Json[]\n fit_comparison Json?\n recommendation Json?\n competencies_analysis Json?\n /// Audit fields\n created_by String\n updated_by String\n is_active Boolean @default(true)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Ensure one FitCheck per (resume_id, job_description_id) pair\n @@unique([resume_id, job_description_id])\n @@index([resume_id])\n @@schema(\"public\")\n}\n\nmodel Google {\n id String @id @default(uuid())\n user_id String @unique\n\n google_email String\n refresh_token String\n scope String?\n\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nenum HiringPlanStatus {\n DRAFT\n ACTIVE\n CLOSED\n\n @@schema(\"public\")\n}\n\nenum PeriodType {\n ANNUAL\n\n @@schema(\"public\")\n}\n\nenum EmployeeStatus {\n ACTIVE\n ATTRITION_EXPECTED\n DEPARTED\n\n @@schema(\"public\")\n}\n\nenum AttritionRisk {\n LOW\n MEDIUM\n HIGH\n\n @@schema(\"public\")\n}\n\nenum ReviewRating {\n OUTSTANDING\n EXCEEDS_EXPECTATIONS\n MEETS_EXPECTATIONS\n NEEDS_IMPROVEMENT\n UNSATISFACTORY\n\n @@schema(\"public\")\n}\n\nenum PlannedCandidateStatus {\n IDENTIFIED\n IN_PIPELINE\n OFFER\n SELECTED\n DECLINED\n\n @@schema(\"public\")\n}\n\n/// Org-level annual hiring plan (CHRO budgeting).\nmodel HiringPlan {\n id String @id @default(uuid())\n organisation_id String\n fiscal_year Int\n period_type PeriodType @default(ANNUAL)\n currency String @default(\"INR\")\n status HiringPlanStatus @default(DRAFT)\n total_headcount_budget Int?\n total_cost_budget Decimal? @db.Decimal(18, 2)\n /// Workbook assumptions (multipliers, inflation, fiscal start month, etc.).\n assumptions Json?\n notes String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n lines HiringPlanLine[]\n sections HiringPlanSection[]\n\n @@unique([organisation_id, fiscal_year])\n @@index([organisation_id])\n @@index([status])\n @@schema(\"public\")\n}\n\n/// One allocation row: dimensions + planned headcount + monthly phasing inputs.\nmodel HiringPlanLine {\n id String @id @default(uuid())\n hiring_plan_id String\n /// Owning department (grouping + section ownership). Legacy `business_unit` is\n /// kept for back-compat and populated from Department.name for a while.\n department_id String?\n business_unit String?\n level String?\n location String?\n role String?\n planned_headcount Int @default(1)\n /// Fully-loaded annual run-rate cost per hire (not in-year cost).\n cost_per_hire Decimal @db.Decimal(18, 2)\n /// Fiscal month 1–12 when hires start (used when hire_schedule is null).\n start_month Int @default(1)\n /// Optional staggered starts: { \"1\": 2, \"4\": 2 } (fiscal-month → count).\n hire_schedule Json?\n /// Free-form requirement details captured by dept heads: priority, skills,\n /// justification, salary_range, etc. Kept as JSON to avoid wide migrations\n /// while the workflow settles.\n details Json?\n /// Display order within a business unit (lower first).\n sort_order Int @default(0)\n /// Reference/template JD for this role (definition).\n job_description_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan HiringPlan @relation(fields: [hiring_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription? @relation(\"PlanLineTemplateJd\", fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n requisitions JobDescription[] @relation(\"PlanLineRequisitions\")\n budgets Budget[]\n planned_candidates PlannedCandidate[]\n backfill_from_employees Employee[] @relation(\"EmployeeBackfillLine\")\n\n @@index([hiring_plan_id])\n @@index([department_id])\n @@index([job_description_id])\n @@index([business_unit, level, location, role])\n @@schema(\"public\")\n}\n\n/// Existing workforce roster (manual / CSV). Baseline for net-new vs backfill.\nmodel Employee {\n id String @id @default(uuid())\n organisation_id String\n /// Owning department (Department.name mirrors legacy business_unit for back-compat).\n department_id String?\n employee_code String?\n name String?\n email String?\n gender String?\n business_unit String?\n level String?\n location String?\n role String?\n employment_type JobType?\n starting_designation String?\n current_designation String?\n start_date DateTime?\n starting_salary Decimal? @db.Decimal(18, 2)\n /// Comp immediately before the latest raise (or prior cycle). Optional.\n previous_salary Decimal? @db.Decimal(18, 2)\n /// Current fully-loaded comp. Optional — workforce roster may be captured\n /// before salary details are collected.\n current_comp Decimal? @db.Decimal(18, 2)\n currency String @default(\"INR\")\n last_increment_date DateTime?\n last_increment_amount Decimal? @db.Decimal(18, 2)\n last_increment_pct Decimal? @db.Decimal(8, 4)\n last_review_date DateTime?\n last_review_rating ReviewRating?\n last_feedback_date DateTime?\n last_feedback_summary String?\n status EmployeeStatus @default(ACTIVE)\n attrition_risk AttritionRisk?\n expected_exit_date DateTime?\n backfill_plan_line_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n backfill_plan_line HiringPlanLine? @relation(\"EmployeeBackfillLine\", fields: [backfill_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([organisation_id, employee_code])\n @@index([organisation_id])\n @@index([department_id])\n @@index([status])\n @@index([business_unit, level, location, role])\n @@index([backfill_plan_line_id])\n @@schema(\"public\")\n}\n\n/// Tentative candidate attached to a plan line (ATS CandidateProfile or free-text).\nmodel PlannedCandidate {\n id String @id @default(uuid())\n hiring_plan_line_id String\n candidate_profile_id String?\n name String?\n status PlannedCandidateStatus @default(IDENTIFIED)\n note String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan_line HiringPlanLine @relation(fields: [hiring_plan_line_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate_profile CandidateProfile? @relation(fields: [candidate_profile_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@index([hiring_plan_line_id])\n @@index([candidate_profile_id])\n @@index([status])\n @@schema(\"public\")\n}\n\nenum IntegrationProvider {\n NAUKRI\n ZOHO_RECRUIT\n ZOHO_SIGN\n LINKEDIN\n GOOGLE\n MICROSOFT\n ZOOM\n CALENDLY\n RAZORPAY\n\n @@schema(\"public\")\n}\n\nenum IntegrationAuthType {\n OAUTH2\n API_KEY\n SSO\n\n @@schema(\"public\")\n}\n\nenum SyncDirection {\n PUSH\n PULL\n BIDIRECTIONAL\n\n @@schema(\"public\")\n}\n\nenum SyncEntityType {\n CANDIDATE\n JOB_OPENING\n INTERVIEW\n APPLICATION\n\n @@schema(\"public\")\n}\n\nenum SyncStatus {\n SYNCED\n PENDING\n FAILED\n\n @@schema(\"public\")\n}\n\nmodel IntegrationCredential {\n id String @id @default(uuid())\n organisation_id String?\n provider IntegrationProvider\n auth_type IntegrationAuthType\n access_token String?\n refresh_token String?\n token_expires_at DateTime?\n api_key String?\n api_secret String?\n metadata Json @default(\"{}\")\n is_active Boolean @default(true)\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, provider])\n @@index([provider])\n @@schema(\"public\")\n}\n\nmodel IntegrationJobSync {\n id String @id @default(uuid())\n job_description_id String\n provider IntegrationProvider\n external_id String?\n sync_enabled Boolean @default(true)\n last_synced_at DateTime?\n sync_direction SyncDirection @default(PUSH)\n metadata Json @default(\"{}\")\n\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([job_description_id, provider])\n @@index([provider])\n @@schema(\"public\")\n}\n\nmodel ZohoSyncMapping {\n id String @id @default(uuid())\n organisation_id String\n entity_type SyncEntityType\n treadspace_id String\n zoho_module String\n zoho_record_id String\n last_synced_at DateTime @default(now())\n sync_status SyncStatus @default(PENDING)\n error_message String?\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, entity_type, treadspace_id])\n @@index([zoho_record_id])\n @@index([sync_status])\n @@schema(\"public\")\n}\n\nenum InterviewStatus {\n INTERVIEW_REQUESTED\n SCHEDULED\n IN_PROGRESS\n CANCELLED\n NO_SHOW // Candidate or interviewer failed to appear\n EVALUATION_PENDING // Waiting for feedback or evaluation\n EVALUATED // Feedback completed and locked\n\n @@schema(\"public\")\n}\n\nenum InterviewPlatform {\n TREADSPACE\n ZOOM\n\n @@schema(\"public\")\n}\n\nenum AiAssistanceMode {\n NONE\n ASSISTED\n\n @@schema(\"public\")\n}\n\nmodel Interview {\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n candidate_id String\n interviewer_id String?\n evaluation_plan_id String\n application_id String?\n resume_id String\n job_description_id String\n calendar_event_id String?\n /// Data\n room_name String?\n /// @deprecated Prefer `ai_feedback.feedback` (narrative string on AI feedback JSON).\n interview_summary String[]\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n actual_start_time DateTime?\n actual_end_time DateTime?\n /// Interview length in minutes (source of truth; not derived from schedule window).\n duration Int?\n /// @deprecated Prefer `recording_document_id` + `Document` (type INTERVIEW_RECORDING).\n recording_url String?\n recording_document_id String? @unique\n evaluation_type EvaluationType? @default(TREADSPACE_AI_ASSISTED)\n ai_assistance_mode AiAssistanceMode? @default(ASSISTED)\n interview_status InterviewStatus @default(SCHEDULED)\n interview_platform InterviewPlatform @default(TREADSPACE)\n overall_feedback String?\n /// Feedback JSON fields\n /// AI overall payload: `{ score, rating, feedback? }` where `feedback` is the\n /// narrative summary string (replaces deprecated `interview_summary`).\n ai_feedback Json?\n human_feedback Json?\n section_feedback Json[]\n interview_preparation Json?\n final_feedback Json?\n interview_analysis_ranges Json?\n interview_flow_summary String?\n /// When Orion AI feedback was last persisted on this interview.\n ai_feedback_generated_at DateTime?\n /// Experimental Beta AI feedback store (parallel to production AI columns).\n /// Used by Beta Feedback page so regenerating AI does not overwrite production.\n beta_ai_feedback Json?\n beta_section_feedback Json[] @default([])\n beta_final_feedback Json?\n beta_interview_flow_summary String?\n beta_ai_feedback_generated_at DateTime?\n /// When recruiter human feedback was last saved (draft or final).\n human_feedback_updated_at DateTime?\n /// When final human feedback was submitted.\n evaluated_at DateTime?\n\n /// Self-scheduling\n reschedule_count Int @default(0)\n last_rescheduled_at DateTime?\n first_assigned_at DateTime?\n /// True while the candidate is waiting on recruiter action (typically a\n /// reassign) after they submitted alternate slots via \"None match\" /\n /// \"Suggest times\". Cleared whenever the recruiter routes a fresh\n /// request via `upsertInterviewRequestRecord`.\n awaiting_recruiter_action Boolean @default(false)\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n candidate User? @relation(\"CandidateInterviews\", fields: [candidate_id], references: [id], onDelete: SetNull)\n interviewer User? @relation(\"InterviewerInterviews\", fields: [interviewer_id], references: [id], onDelete: SetNull)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n recording_document Document? @relation(fields: [recording_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n ongoing_evaluation OngoingEvaluation?\n transcripts Transcript[]\n suggestions Suggestion[]\n feedback Feedback[]\n interviewNotes InterviewNotes[]\n liveAnalysis LiveAnalysis[]\n zoom_meeting ZoomMeeting?\n\n // Indexes\n @@unique([interviewer_id, candidate_id, evaluation_plan_id])\n @@index([candidate_id])\n @@index([interviewer_id])\n @@index([job_description_id])\n @@index([organisation_id, interview_status])\n @@index([interview_status, scheduled_start_time])\n @@schema(\"public\")\n}\n\nmodel InterviewNotes {\n id String @id @default(uuid())\n interview_id String\n note String\n details Json?\n timestamp DateTime @default(now())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nenum InterviewRecommendation {\n ACCEPTED\n REJECTED\n UNSURE\n\n @@schema(\"analytics\")\n}\n\nmodel InterviewRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n interview_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n interviewer_id String?\n interviewer_employee_id String?\n interviewer_name String?\n\n candidate_name String?\n candidate_email String?\n\n evaluation_type EvaluationType?\n ai_assistance_mode AiAssistanceMode?\n interview_platform InterviewPlatform?\n interview_status InterviewStatus?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n evaluated_at DateTime?\n first_assigned_at DateTime?\n duration_minutes Int?\n\n human_rating String?\n ai_rating String?\n recommendation InterviewRecommendation?\n ai_disagrees_with_ai Boolean?\n\n difficulty_score Float?\n supportiveness_score Float?\n topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, interviewer_id, evaluated_at])\n @@index([job_description_id])\n @@index([application_id])\n @@index([organisation_id, hiring_manager_id])\n @@map(\"interview_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n interview_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n interviewer_id String?\n interviewer_employee_id String?\n interviewer_name String?\n\n candidate_name String?\n candidate_email String?\n\n evaluation_type EvaluationType?\n ai_assistance_mode AiAssistanceMode?\n interview_platform InterviewPlatform?\n interview_status InterviewStatus?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n evaluated_at DateTime?\n first_assigned_at DateTime?\n duration_minutes Int?\n\n human_rating String?\n ai_rating String?\n recommendation InterviewRecommendation?\n ai_disagrees_with_ai Boolean?\n\n difficulty_score Float?\n supportiveness_score Float?\n topics_coverage_percent Float?\n\n @@unique([snapshot_date, interview_id])\n @@index([snapshot_date], map: \"irad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"irad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, interviewer_id], map: \"irad_snapshot_org_interviewer_idx\")\n @@index([snapshot_date, job_description_id], map: \"irad_snapshot_job_idx\")\n @@index([snapshot_date, organisation_id, evaluated_at], map: \"irad_snapshot_org_evaluated_idx\")\n @@map(\"interview_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerOrganisationAnalytics {\n id String @id @default(uuid())\n organisation_id String\n user_id String\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, user_id])\n @@index([organisation_id])\n @@index([organisation_id, user_id])\n @@map(\"interviewer_organisation_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n user_id String\n job_description_id String\n\n hiring_manager_id String?\n department String?\n location String?\n role_title String?\n job_code String?\n opened_at DateTime?\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, user_id, job_description_id])\n @@index([organisation_id, job_description_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, department])\n @@index([organisation_id, location])\n @@index([organisation_id, user_id])\n @@map(\"interviewer_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerOrganisationAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n user_id String\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n @@unique([snapshot_date, organisation_id, user_id])\n @@index([snapshot_date], map: \"ioad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"ioad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, user_id], map: \"ioad_snapshot_org_user_idx\")\n @@map(\"interviewer_organisation_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerJobAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n user_id String\n job_description_id String\n\n hiring_manager_id String?\n department String?\n location String?\n role_title String?\n job_code String?\n opened_at DateTime?\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n @@unique([snapshot_date, organisation_id, user_id, job_description_id])\n @@index([snapshot_date], map: \"ijad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id, job_description_id], map: \"ijad_snapshot_org_job_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"ijad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, department], map: \"ijad_snapshot_org_dept_idx\")\n @@index([snapshot_date, organisation_id, location], map: \"ijad_snapshot_org_loc_idx\")\n @@index([snapshot_date, organisation_id, user_id], map: \"ijad_snapshot_org_user_idx\")\n @@map(\"interviewer_job_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum JobApplicationFieldType {\n TEXT\n NUMBER\n DATE\n BOOLEAN\n MULTI_SELECT\n FILE\n DROP_DOWN\n\n @@schema(\"public\")\n}\n\nmodel JobApplicationField {\n /// Primary key (UUID)\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n template_id String\n /// Data fields\n field_type JobApplicationFieldType\n label String\n description String?\n is_mandatory Boolean @default(false)\n is_draft Boolean @default(true)\n options String[]\n /// Audit fields\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_application_template JobApplicationTemplate @relation(fields: [template_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_application_responses JobApplicationResponse[]\n\n /// Indexes\n @@index([organisation_id, template_id])\n @@schema(\"public\")\n}\n\nmodel JobApplicationResponse {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n application_id String\n job_application_field_id String?\n document_id String?\n /// Answer payload\n response Json?\n /// Denormalized question snapshot (immutable on candidate save)\n field_type JobApplicationFieldType?\n label String?\n description String?\n is_mandatory Boolean?\n is_draft Boolean?\n is_submitted Boolean @default(false)\n options String[]\n updated_by_organisation Boolean @default(false)\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n /// Relations\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n field JobApplicationField? @relation(fields: [job_application_field_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n document Document? @relation(fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n /// Partial unique on (application_id, job_application_field_id) WHERE job_application_field_id IS NOT NULL — see migration SQL\n @@index([application_id])\n @@index([job_application_field_id])\n @@schema(\"public\")\n}\n\nenum JobApplicationTemplateScope {\n ORGANIZATION\n JOB\n\n @@schema(\"public\")\n}\n\nmodel JobApplicationTemplate {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n job_description_id String? @unique\n /// Data fields\n name String\n description String?\n scope JobApplicationTemplateScope @default(ORGANIZATION)\n /// Audit fields\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n fields JobApplicationField[]\n\n /// Indexes\n @@index([organisation_id, scope])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nenum JobDescriptionStatus {\n CREATED\n DRAFT\n ACTIVE\n DEACTIVATED\n CLOSED\n\n @@schema(\"public\")\n}\n\nmodel JobDescription {\n id String @id @default(uuid())\n organisation_id String\n /// Owning department (visibility scope for DepartmentHead; optional).\n department_id String?\n hiring_manager_id String?\n status JobDescriptionStatus @default(DRAFT)\n screeningQuestions String[]\n recommendedQuestions Json[]\n /// @deprecated Prefer `source_document_id` + `Document` (type JOB_DESCRIPTION).\n uploaded_job_description_path String?\n source_document_id String? @unique\n rendered_jd_document_id String? @unique\n rendered_jd_document Document? @relation(\"RenderedJdDocument\", fields: [rendered_jd_document_id], references: [id], onDelete: SetNull)\n display_html_document_id String? @unique\n display_html_document Document? @relation(\"DisplayHtmlDocument\", fields: [display_html_document_id], references: [id], onDelete: SetNull)\n is_plan_published Boolean @default(false)\n is_posted Boolean @default(false)\n summary Json?\n ai_insight Json?\n job_fit_comparison Json?\n target_closing_date DateTime?\n closing_date DateTime?\n opened_at DateTime?\n\n job_number Int?\n job_code String? @unique\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n openings Int @default(1)\n job_profile_id String?\n job_profile JobProfile? @relation(fields: [job_profile_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n source_document Document? @relation(\"SourceDocument\", fields: [source_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n interviews Interview[]\n assignments Assignment[]\n fit_check FitCheck[] // one-to-many link\n job_description_data JobDescriptionData[] // one-to-many link\n evaluationPlan EvaluationPlan[] // relation to evaluation methods\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n assignment_library AssignmentLibrary[]\n approvals Approval[] // one-to-many relation\n resumes Resume[] // one-to-many link\n budget Budget?\n hiring_manager User? @relation(\"HiringManager\", fields: [hiring_manager_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n recruiters User[]\n transcripts Transcript[]\n integration_job_syncs IntegrationJobSync[]\n job_application_template JobApplicationTemplate?\n offer_letter_templates OfferLetterTemplate[]\n offers Offer[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n /// Plan line this opening is committed against (requisition → plan).\n hiring_plan_line_id String?\n hiring_plan_line HiringPlanLine? @relation(\"PlanLineRequisitions\", fields: [hiring_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n /// Plan lines that use this JD as the role template/reference.\n referenced_by_plan_lines HiringPlanLine[] @relation(\"PlanLineTemplateJd\")\n\n @@index([organisation_id])\n @@index([hiring_manager_id])\n @@index([job_profile_id])\n @@index([hiring_plan_line_id])\n @@index([department_id])\n @@index([organisation_id, status])\n @@schema(\"public\")\n}\n\nmodel JobDescriptionData {\n id String @id @default(uuid())\n job_description_id String\n key String\n value String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([job_description_id, key])\n @@schema(\"public\")\n}\n\nenum JobProfileStatus {\n DRAFT\n INTAKE_SENT\n INTAKE_IN_PROGRESS\n COMPLETE\n\n @@schema(\"public\")\n}\n\nmodel JobProfile {\n id String @id @default(uuid())\n organisation_id String\n hiring_manager_id String?\n department_id String?\n assigned_to String?\n status JobProfileStatus @default(DRAFT)\n // Basics\n title String?\n role_type String? // new / replacement / backfill\n work_arrangement String? // onsite / hybrid / remote\n employment_type String? // full_time / part_time / contract / internship\n location String?\n experience String?\n experience_min String?\n comp_range String?\n budget String?\n /// ISO 3166-1 alpha-2 (e.g. IN). Currency is derived in the UI from this.\n country_code String @default(\"IN\")\n // Requirements (structured from AI conversation)\n responsibilities Json?\n must_have_skills Json?\n nice_to_have_skills Json?\n culture Json?\n // Competencies\n competencies Json?\n // Conversation state\n conversation_history Json?\n orion_execution_id String?\n // Audit\n created_at DateTime @default(now())\n created_by String\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n // Relations\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n hiring_manager User? @relation(\"JobProfileHiringManager\", fields: [hiring_manager_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n creator User @relation(\"ProfileCreator\", fields: [created_by], references: [id], onDelete: Restrict, onUpdate: Cascade)\n assignee User? @relation(\"ProfileAssignee\", fields: [assigned_to], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_descriptions JobDescription[]\n\n @@index([organisation_id])\n @@index([hiring_manager_id])\n @@index([assigned_to])\n @@index([created_by])\n @@index([department_id])\n @@schema(\"public\")\n}\n\nmodel JobRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_name String\n\n evaluation_category EvaluationCategory?\n\n job_code String?\n\n role_title String?\n\n hiring_manager_id String?\n\n plan_order_no Int?\n\n plan_type EvaluationPlanType?\n\n is_custom Boolean @default(false)\n\n assigned_count Int @default(0)\n\n completed_count Int @default(0)\n\n passed_count Int @default(0)\n\n failed_count Int @default(0)\n\n withdrawn_count Int @default(0)\n\n no_show_count Int @default(0)\n\n total_completion_minutes BigInt @default(0)\n\n avg_completion_minutes Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([job_description_id, evaluation_plan_id])\n @@index([organisation_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([job_description_id])\n @@schema(\"analytics\")\n}\n\nmodel JobRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_name String\n\n evaluation_category EvaluationCategory?\n\n job_code String?\n\n role_title String?\n\n hiring_manager_id String?\n\n plan_order_no Int?\n\n plan_type EvaluationPlanType?\n\n is_custom Boolean @default(false)\n\n assigned_count Int @default(0)\n\n completed_count Int @default(0)\n\n passed_count Int @default(0)\n\n failed_count Int @default(0)\n\n withdrawn_count Int @default(0)\n\n no_show_count Int @default(0)\n\n total_completion_minutes BigInt @default(0)\n\n avg_completion_minutes Float?\n\n @@unique([snapshot_date, job_description_id, evaluation_plan_id])\n @@index([snapshot_date], map: \"jrad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"jrad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"jrad_snapshot_org_hm_idx\")\n @@index([snapshot_date, job_description_id], map: \"jrad_snapshot_job_idx\")\n @@map(\"job_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel LiveAnalysis {\n id String @id @default(uuid())\n //foreign keys\n interview_id String\n //data\n analysis Json\n //audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n //relations\n interview Interview @relation(fields: [interview_id], references: [id])\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nmodel Message {\n id String @id @default(uuid())\n sender_id String\n receiver_id String\n message String\n\n sender User @relation(\"Sent Messages\", fields: [sender_id], references: [id])\n receiver User @relation(\"Received Messages\", fields: [receiver_id], references: [id])\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nmodel Notes {\n id String @id @default(uuid())\n application_id String\n user_id String\n note String\n pinned Boolean @default(false)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([application_id, created_at])\n @@index([user_id, created_at])\n @@schema(\"public\")\n}\n\nenum OfferLetterStatus {\n /// Current issued letter for the offer (at most one per offer; app-enforced).\n ACTIVE\n /// Replaced by a newer version; PDF remains immutable.\n SUPERSEDED\n\n @@schema(\"public\")\n}\n\nenum OfferWithdrawReason {\n ROLE_CLOSED\n CANDIDATE_ACCEPTED_ELSEWHERE\n BUDGET\n MISFIT\n OTHER\n\n @@schema(\"public\")\n}\n\nenum OfferWithdrawActor {\n CANDIDATE\n ORGANISATION\n\n @@schema(\"public\")\n}\n\nenum OfferNoShowReason {\n ACCEPTED_ELSEWHERE\n OTHER\n\n @@schema(\"public\")\n}\n\nenum OfferLetterTemplateScope {\n ORGANIZATION\n JOB\n\n @@schema(\"public\")\n}\n\nenum WorkMode {\n REMOTE\n OFFICE\n HYBRID\n\n @@schema(\"public\")\n}\n\nmodel OfferLetterTemplate {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String?\n name String\n description String?\n /// Current DOCX template Document\n document_id String\n /// Matching HTML/Handlebars twin Document (same merge fields)\n html_document_id String?\n /// Org-editable section visibility + default section copy (not free-form HTML)\n template_config Json @default(\"{}\")\n /// Incremented when HM uploads new DOCX/HTML.\n version Int @default(1)\n scope OfferLetterTemplateScope @default(ORGANIZATION)\n is_default Boolean @default(false)\n is_active Boolean @default(true)\n /// Drafts (JOB or ORGANIZATION) are hidden from JD Apply / Make Offer until activated (is_draft=false).\n is_draft Boolean @default(false)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n document Document @relation(\"OfferLetterTemplateDocx\", fields: [document_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n html_document Document? @relation(\"OfferLetterTemplateHtml\", fields: [html_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n offers Offer[]\n offer_letters OfferLetter[]\n\n @@index([organisation_id, scope])\n @@index([job_description_id])\n @@index([job_description_id, is_draft])\n @@index([document_id])\n @@index([html_document_id])\n @@schema(\"public\")\n}\n\n/// Offer is a data container: terms, letter versions, timeline audit.\n/// Lifecycle lives on Application.offer_substatus — no status enum here.\nmodel Offer {\n id String @id @default(uuid())\n application_id String @unique\n organisation_id String\n candidate_id String\n job_description_id String\n template_id String?\n letter_version_count Int @default(0)\n /// FK to latest ACTIVE letter; null when NEGOTIATING (v(N) superseded, v(N+1) not generated yet) or PREPARING (no letter yet).\n current_offer_letter_id String?\n /// Merge payload: CTC, joining date, role title, location, etc.\n /// Single structured source of truth — no denormalized term columns.\n terms Json @default(\"{}\")\n /// Draft offer-scoped HTML snapshot (never mutates OfferLetterTemplate).\n draft_edited_html_document_id String?\n /// Staff clicked \"Mark as sent\" (letter is out with candidate).\n sent_at DateTime?\n /// First accept / decline recorded on the Offer.\n responded_at DateTime?\n accepted_at DateTime?\n declined_at DateTime?\n withdrawn_at DateTime?\n joined_at DateTime?\n no_show_at DateTime?\n withdraw_reason OfferWithdrawReason?\n withdraw_note String?\n withdraw_actor OfferWithdrawActor?\n no_show_reason OfferNoShowReason?\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User @relation(\"OfferCandidate\", fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n template OfferLetterTemplate? @relation(fields: [template_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n draft_edited_html_document Document? @relation(\"OfferDraftEditedHtml\", fields: [draft_edited_html_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n current_offer_letter OfferLetter? @relation(\"OfferCurrentLetter\", fields: [current_offer_letter_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n letters OfferLetter[] @relation(\"OfferLetters\")\n\n @@index([organisation_id])\n @@index([candidate_id])\n @@index([job_description_id])\n @@index([current_offer_letter_id])\n @@index([draft_edited_html_document_id])\n @@schema(\"public\")\n}\n\nmodel OfferLetter {\n id String @id @default(uuid())\n offer_id String\n version Int\n /// Business lifecycle — distinct from is_active (soft-delete only).\n status OfferLetterStatus @default(ACTIVE)\n /// Generated PDF Document\n document_id String @unique\n template_id String?\n /// Snapshot of template Document used at render time\n template_document_id String?\n /// Snapshot of OfferLetterTemplate.version at render time\n template_version Int?\n /// When staff clicked \"Generate letter\" — the PDF was rendered and the DOCX downloaded.\n generated_at DateTime?\n /// Free-form note attached at generation time (e.g. \"Revised for updated CTC\").\n generation_note String?\n /// Soft-delete only — never infer supersession from is_active.\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n offer Offer @relation(\"OfferLetters\", fields: [offer_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n current_for_offer Offer[] @relation(\"OfferCurrentLetter\")\n document Document @relation(\"OfferLetterPdf\", fields: [document_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n template OfferLetterTemplate? @relation(fields: [template_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n template_document Document? @relation(\"OfferLetterTemplateSnapshot\", fields: [template_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([offer_id, version])\n @@index([offer_id])\n @@index([offer_id, status])\n @@index([template_id])\n @@schema(\"public\")\n}\n\nenum OngoingEvaluationState {\n NOT_STARTED\n IN_PROGRESS\n CLEARED\n SKIPPED\n NOT_CLEARED\n\n @@schema(\"public\")\n}\n\nenum OngoingEvaluationRoundStatus {\n NOT_SCHEDULED\n REQUESTED_SCHEDULING\n SCHEDULED\n IN_PROGRESS\n PENDING_EVALUATION\n EVALUATED\n\n @@schema(\"public\")\n}\n\nmodel OngoingEvaluation {\n // Primary Key\n id String @id @default(uuid())\n // Foreign Keys \n organisation_id String\n application_id String\n candidate_id String\n resume_id String\n job_description_id String\n evaluation_plan_id String\n interview_id String? @unique\n assignment_id String? @unique\n assessment_id String? @unique\n // Data Fields\n state OngoingEvaluationState? @default(NOT_STARTED)\n round_status OngoingEvaluationRoundStatus? @default(NOT_SCHEDULED)\n comments String? @default(\"\")\n completed_at DateTime?\n assigned_at DateTime?\n result_at DateTime?\n is_committed Boolean?\n /// Evaluation Plan Fields Filled After Round Started\n title String?\n description String?\n order_no Int?\n round_purpose String?\n focus_areas String[]\n topics String[]\n assignee String?\n elimination_round Boolean? @default(false)\n evaluation_type EvaluationType?\n type_of_round RoundType?\n duration Int?\n deadline Int?\n duration_unit DurationUnit?\n details Json?\n category EvaluationCategory?\n // Audit Fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n is_current Boolean @default(false)\n // Relations\n jobDescription JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume? @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n evaluation_plan EvaluationPlan @relation(fields: [evaluation_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n assignment Assignment?\n assessment Assessment? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)\n\n @@unique([application_id, evaluation_plan_id])\n @@index([application_id])\n @@index([evaluation_plan_id])\n @@index([application_id, is_active, state])\n @@index([job_description_id, state, round_status])\n @@schema(\"public\")\n}\n\nmodel OpenJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n role_title String?\n department String?\n hiring_manager_id String?\n hiring_manager_name String?\n location String?\n compensation String?\n vacancies Int @default(1)\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n application_count Int @default(0)\n unscreened_count Int @default(0)\n ongoing_count Int @default(0)\n selected_count Int @default(0)\n offer_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n withdrawn_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, is_open])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, opened_at])\n @@index([organisation_id, job_number])\n @@index([organisation_id, is_open, closure_type, closing_date])\n @@index([job_description_id])\n @@map(\"open_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel OpenJobAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n\n job_code String?\n job_number Int?\n role_title String?\n department String?\n hiring_manager_id String?\n hiring_manager_name String?\n location String?\n compensation String?\n vacancies Int @default(1)\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n application_count Int @default(0)\n unscreened_count Int @default(0)\n ongoing_count Int @default(0)\n selected_count Int @default(0)\n offer_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n withdrawn_count Int @default(0)\n\n @@unique([snapshot_date, job_description_id])\n @@index([snapshot_date], map: \"ojad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id, is_open], map: \"ojad_snapshot_org_open_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"ojad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, opened_at], map: \"ojad_snapshot_org_opened_idx\")\n @@index([snapshot_date, organisation_id, job_number], map: \"ojad_snapshot_org_job_num_idx\")\n @@index([snapshot_date, job_description_id], map: \"ojad_snapshot_job_idx\")\n @@map(\"open_job_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum OrganisationSize {\n ONE_TO_TEN @map(\"1-10\")\n ELEVEN_TO_FIFTY @map(\"11-50\")\n FIFTY_ONE_TO_TWO_HUNDRED @map(\"51-200\")\n TWO_HUNDRED_ONE_TO_FIVE_HUNDRED @map(\"201-500\")\n FIVE_HUNDRED_PLUS @map(\"500+\")\n\n @@schema(\"public\")\n}\n\nmodel Organisation {\n id String @id @default(uuid())\n name String @unique\n industry String\n about String\n website String\n size OrganisationSize @default(ONE_TO_TEN)\n phone String\n address String\n company_values Json[]\n allowed_email_domains String[]\n send_email Boolean @default(true)\n interviewers User[]\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n alias String? @unique\n logo String?\n job_sequence Int @default(1)\n employee_sequence Int @default(1)\n applications Application[]\n user_roles UserRole[]\n job_descriptions JobDescription[]\n job_profiles JobProfile[]\n assessment_library AssessmentLibrary[]\n assignment_library AssignmentLibrary[]\n interviews Interview[]\n assignments Assignment[]\n fit_check FitCheck[] // one-to-many link\n resumes Resume[] // one-to-many link\n approvals Approval[] // one-to-many link\n suggestions Suggestion[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n actions Action[]\n integration_credentials IntegrationCredential[]\n zoho_sync_mappings ZohoSyncMapping[]\n assessments Assessment[]\n timezone String @default(\"Asia/Kolkata\")\n /// ISO 3166-1 alpha-2 (e.g. IN).\n country_code String @default(\"IN\")\n organisation_configs OrganisationConfig[]\n activity_events ActivityEvent[]\n usage_ledger_entries UsageLedgerEntry[]\n usage_aggregates UsageAggregate[]\n channel_provider_configs ChannelProviderConfig[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n job_application_fields JobApplicationField[]\n documents Document[]\n job_application_templates JobApplicationTemplate[]\n offer_letter_templates OfferLetterTemplate[]\n offers Offer[]\n sources Source[]\n evaluation_criteria EvaluationCriteria[]\n departments Department[]\n hiring_plans HiringPlan[]\n employees Employee[]\n competency_dictionaries CompetencyDictionary[]\n billing_transactions BillingTransaction[]\n payment_webhook_events PaymentWebhookEvent[]\n\n @@index([name])\n @@schema(\"public\")\n}\n\nmodel OrganisationConfig {\n id String @id @default(uuid())\n organisation_id String\n config_key String\n value Json\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([organisation_id, config_key])\n @@map(\"organisationConfig\")\n @@schema(\"public\")\n}\n\n// PAYMENT SERVICE boundary — portable payment microservice owns these enums/columns.\n\nenum BillingTransactionStatus {\n INITIATED\n ORDER_CREATED\n PAYMENT_PENDING\n SUCCESS\n FAILED\n CANCELLED\n REFUND_PENDING\n REFUND_FAILED\n REFUNDED\n\n @@schema(\"public\")\n}\n\nenum BillingTransactionType {\n PURCHASE\n TOP_UP\n REFUND\n\n @@schema(\"public\")\n}\n\nenum BillingTransactionFailureCategory {\n RAZORPAY_ORDER\n RAZORPAY_PAYMENT\n REFUND\n INTERNAL\n\n @@schema(\"public\")\n}\n\n/// Payment reconciliation state when Treadspace status is FAILED but Razorpay captured payment.\nenum BillingPaymentMismatchStatus {\n DETECTED\n UNFULFILLED\n\n @@schema(\"public\")\n}\n\n/// Financial transaction lifecycle for organisation billing purchases.\nmodel BillingTransaction {\n id String @id @default(uuid())\n organisation_id String\n /// Opaque plan/product identity supplied at checkout. Not a catalog FK.\n purchase_reference String\n /// Human-readable snapshot captured at checkout for invoices and receipts.\n purchase_display_name String?\n transaction_type BillingTransactionType\n status BillingTransactionStatus @default(INITIATED)\n failure_category BillingTransactionFailureCategory?\n /// Human-readable or provider detail (e.g. Razorpay error_description).\n failure_reason String?\n amount Int\n currency String @default(\"INR\")\n razorpay_order_id String?\n razorpay_payment_id String? @unique\n /// Razorpay payment method at capture (card, netbanking, upi, wallet, etc.).\n payment_method String?\n razorpay_subscription_id String?\n razorpay_refund_id String?\n refund_reason String?\n refund_amount Int?\n idempotency_key String @unique\n invoice_number String? @unique\n /// Email of the org Admin who initiated checkout (bill-to).\n purchaser_email String?\n /// Set when FAILED but Razorpay order/payment is captured (reconciliation path).\n payment_mismatch_status BillingPaymentMismatchStatus?\n /// Strict same-intent SUCCESS transaction that fulfilled the purchase (UNFULFILLED only).\n payment_mismatch_fulfilled_by_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id])\n\n @@index([organisation_id, status])\n @@index([purchase_reference])\n @@index([razorpay_order_id])\n @@map(\"billing_transactions\")\n @@schema(\"public\")\n}\n\nenum PaymentWebhookEventStatus {\n RECEIVED\n PROCESSED\n FAILED\n\n @@schema(\"public\")\n}\n\n/// Idempotent record of payment provider webhook deliveries.\nmodel PaymentWebhookEvent {\n id String @id @default(uuid())\n organisation_id String?\n provider String\n provider_event_id String\n event_type String\n status PaymentWebhookEventStatus @default(RECEIVED)\n billing_transaction_id String?\n error_message String?\n processed_at DateTime?\n created_at DateTime @default(now())\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id])\n\n @@unique([provider, provider_event_id])\n @@index([status, created_at])\n @@map(\"payment_webhook_events\")\n @@schema(\"public\")\n}\n\nmodel Permission {\n id String @id @default(uuid())\n permissions String[] @default([])\n created_by String?\n updated_by String?\n updated_at DateTime @updatedAt\n created_at DateTime @default(now())\n is_active Boolean @default(true)\n user User?\n user_roles UserRole?\n\n @@index([created_at])\n @@schema(\"public\")\n}\n\nmodel PipelineDistributionAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n application_count Int @default(0)\n filtered_in_count Int @default(0)\n min_fit_score Float?\n\n screening_count Int @default(0)\n business_screening_count Int @default(0)\n business_round_count Int @default(0)\n behavioral_round_count Int @default(0)\n\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, job_number])\n @@index([job_description_id])\n @@map(\"pipeline_distribution_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel PipelineDistributionAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n application_count Int @default(0)\n filtered_in_count Int @default(0)\n min_fit_score Float?\n\n screening_count Int @default(0)\n business_screening_count Int @default(0)\n business_round_count Int @default(0)\n behavioral_round_count Int @default(0)\n\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n\n @@unique([snapshot_date, job_description_id])\n @@index([snapshot_date], map: \"pdad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"pdad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"pdad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, job_number], map: \"pdad_snapshot_org_job_num_idx\")\n @@index([snapshot_date, job_description_id], map: \"pdad_snapshot_job_idx\")\n @@map(\"pipeline_distribution_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AsyncOperationStatus {\n PENDING\n IN_PROGRESS\n SUCCESS\n FAILED\n RETRYING\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel AsyncOperation {\n id String @id @default(uuid())\n // Identification\n operation_name String\n // Status tracking\n status AsyncOperationStatus @default(PENDING)\n started_at DateTime?\n completed_at DateTime?\n // Execution metadata\n payload Json?\n metadata Json?\n // Tracing\n correlationId String?\n sourceService String?\n // Retry information\n retry_count Int @default(0)\n max_retries Int @default(0)\n next_retry_at DateTime?\n // Error information\n error_message String?\n error_details String?\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n\n @@index([status])\n @@index([operation_name])\n @@index([correlationId])\n @@schema(\"public\")\n}\n\nenum Difficulty {\n EASY // simple/basic questions\n MEDIUM // moderate difficulty\n HARD // challenging questions\n\n @@schema(\"public\")\n}\n\nmodel Question {\n id String @id @default(uuid())\n assessment_library_id String?\n evaluation_plan_id String?\n candidate_id String?\n skill String?\n question String\n answer String\n options String[] // For MCQ's\n max_score Float?\n difficulty Difficulty?\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: SetNull)\n assessments AssessmentQuestion[] @relation(\"QuestionToAssessmentQuestion\")\n assessmentLibrary AssessmentLibrary? @relation(fields: [assessment_library_id], references: [id], onDelete: Cascade)\n evaluationPlan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull)\n candidateResponse CandidateQuestionResponse[]\n\n @@schema(\"public\")\n}\n\nmodel RefreshToken {\n id String @id @default(uuid())\n user_id String\n token String @unique\n is_active Boolean @default(true)\n expires_at DateTime\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n user User @relation(\"TokenRefresh\", fields: [user_id], references: [id], onDelete: Cascade)\n\n @@schema(\"public\")\n}\n\nenum OpenJobClosureType {\n FILLED\n CANCELLED\n\n @@schema(\"analytics\")\n}\n\nmodel ReportingOverviewJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n hiring_manager_id String?\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n in_consideration_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n recruiters ReportingOverviewJobRecruiter[]\n\n @@index([organisation_id, is_open])\n @@index([organisation_id, hiring_manager_id, is_open])\n @@index([organisation_id, closing_date, closure_type])\n @@map(\"reporting_overview_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel ReportingOverviewJobRecruiter {\n id String @id @default(uuid())\n job_description_id String\n recruiter_user_id String\n\n job ReportingOverviewJobAnalytics @relation(fields: [job_description_id], references: [job_description_id], onDelete: Cascade)\n\n @@unique([job_description_id, recruiter_user_id])\n @@index([recruiter_user_id])\n @@map(\"reporting_overview_job_recruiters\")\n @@schema(\"analytics\")\n}\n\nmodel Resume {\n id String @id @default(uuid())\n user_id String?\n organisation_id String?\n job_description_id String?\n /// @deprecated Prefer `document_id` + `Document`. Kept until backfill completes.\n uploaded_resume_path String?\n document_id String? @unique\n /// Latest ATS template export (PDF). Null until first successful export.\n rendered_export_document_id String? @unique\n /// Last chosen ATS layout template id (e.g. ats-classic). Set on first export.\n resume_template_id String?\n /// @deprecated Prefer `Document.file_hash`. Kept for legacy read fallback.\n file_hash String?\n summary Json?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n name String?\n user User? @relation(fields: [user_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n document Document? @relation(\"ResumeSourceDocument\", fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n rendered_export_document Document? @relation(\"RenderedResumeExport\", fields: [rendered_export_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n interviews Interview[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n\n resume_data ResumeData[] // one-to-many link\n fit_check FitCheck[] // one-to-many link\n // inverse side of the relation — no foreign key here\n candidate_profile CandidateProfile? // one-to-one link\n yearsOfExperience Int?\n\n @@index([user_id])\n @@index([file_hash])\n @@schema(\"public\")\n}\n\nmodel ResumeData {\n id String @id @default(uuid())\n resume_id String\n key String\n value String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([created_at])\n @@schema(\"public\")\n}\n\nenum RoundResult {\n PASSED\n FAILED\n\n @@schema(\"analytics\")\n}\n\nmodel RoundAnalytics {\n id String @id @default(uuid())\n\n // Core Dimensions\n organisation_id String\n\n application_id String\n\n candidate_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_id String @unique\n\n // Round Information\n round_name String?\n\n evaluation_category EvaluationCategory?\n\n round_type RoundType?\n\n // Lifecycle Timestamps\n assigned_at DateTime?\n\n scheduled_at DateTime?\n\n started_at DateTime?\n\n completed_at DateTime?\n\n evaluated_at DateTime?\n\n round_completed_at DateTime?\n round_created_at DateTime?\n\n // Decision\n round_result RoundResult?\n\n round_result_at DateTime?\n\n // Derived Metrics\n scheduling_duration_minutes Int?\n\n round_duration_minutes Int?\n\n feedback_duration_minutes Int?\n\n decision_duration_minutes Int?\n\n total_round_duration_minutes Int?\n\n is_custom Boolean @default(false)\n\n // Audit\n created_at DateTime @default(now())\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id])\n @@index([job_description_id])\n @@index([application_id])\n @@index([candidate_id])\n @@index([evaluation_category])\n @@index([round_result])\n @@map(\"round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel RoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n // Core Dimensions\n organisation_id String\n\n application_id String\n\n candidate_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_id String\n\n // Round Information\n round_name String?\n\n evaluation_category EvaluationCategory?\n\n round_type RoundType?\n\n // Lifecycle Timestamps\n assigned_at DateTime?\n\n scheduled_at DateTime?\n\n started_at DateTime?\n\n completed_at DateTime?\n\n evaluated_at DateTime?\n\n round_completed_at DateTime?\n round_created_at DateTime?\n\n // Decision\n round_result RoundResult?\n\n round_result_at DateTime?\n\n // Derived Metrics\n scheduling_duration_minutes Int?\n\n round_duration_minutes Int?\n\n feedback_duration_minutes Int?\n\n decision_duration_minutes Int?\n\n total_round_duration_minutes Int?\n\n is_custom Boolean @default(false)\n\n @@unique([snapshot_date, round_id])\n @@index([snapshot_date], map: \"rad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"rad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"rad_snapshot_job_idx\")\n @@index([snapshot_date, application_id], map: \"rad_snapshot_app_idx\")\n @@index([snapshot_date, candidate_id], map: \"rad_snapshot_candidate_idx\")\n @@index([snapshot_date, evaluation_category], map: \"rad_snapshot_eval_cat_idx\")\n @@index([snapshot_date, round_result], map: \"rad_snapshot_round_result_idx\")\n @@map(\"round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\n// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../../client\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n\n schemas = [\"public\", \"analytics\", \"usage\"]\n}\n\nenum SourceCategory {\n JOB_BOARD\n REFERRAL\n AGENCY\n SOCIAL_MEDIA\n CAREERS_PAGE\n EVENT\n OTHER\n\n @@schema(\"public\")\n}\n\nmodel Source {\n id String @id @default(uuid())\n organisation_id String\n name String\n category SourceCategory?\n parent_source_id String?\n colour String?\n description String?\n is_active Boolean @default(true)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n parent Source? @relation(\"SourceHierarchy\", fields: [parent_source_id], references: [id], onDelete: SetNull)\n children Source[] @relation(\"SourceHierarchy\")\n applications Application[]\n\n @@unique([organisation_id, name])\n @@index([organisation_id])\n @@index([organisation_id, category])\n @@index([organisation_id, is_active])\n @@index([parent_source_id])\n @@schema(\"public\")\n}\n\nmodel SourceEffectivenessAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String\n source_id String\n\n source_name String\n source_category SourceCategory?\n source_colour String?\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n applications_count Int @default(0)\n screened_count Int @default(0)\n evaluated_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n hired_count Int @default(0)\n\n total_fit_score Float @default(0)\n fit_score_sample_count Int @default(0)\n average_fit_score Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, job_description_id, source_id])\n @@index([organisation_id])\n @@index([organisation_id, source_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([job_description_id])\n @@map(\"source_effectiveness_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel SourceEffectivenessAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n source_id String\n\n source_name String\n source_category SourceCategory?\n source_colour String?\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n applications_count Int @default(0)\n screened_count Int @default(0)\n evaluated_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n hired_count Int @default(0)\n\n total_fit_score Float @default(0)\n fit_score_sample_count Int @default(0)\n average_fit_score Float?\n\n @@unique([snapshot_date, organisation_id, job_description_id, source_id])\n @@index([snapshot_date], map: \"sead_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"sead_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, source_id], map: \"sead_snapshot_org_source_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"sead_snapshot_org_hm_idx\")\n @@index([snapshot_date, job_description_id], map: \"sead_snapshot_job_idx\")\n @@map(\"source_effectiveness_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel Suggestion {\n id String @id @default(uuid())\n interview_id String?\n transcript_id String? @unique // ✅ ensures one-to-one\n organisation_id String\n suggestion String?\n question String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull)\n transcripts Transcript[]\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nmodel Transcript {\n id String @id @default(uuid())\n interview_id String?\n suggestion_id String?\n intermediate_feedback_id String?\n job_description_id String?\n interviewer_timestamp DateTime?\n candidate_timestamp DateTime?\n interviewer String\n candidate String\n order_no Int @default(autoincrement())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: SetNull)\n suggestion Suggestion? @relation(fields: [suggestion_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([interview_id, order_no])\n @@index([interview_id])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\n/// Orion workflow names bundled in license — excluded from ai.cost metering.\n/// Future license plans will reference subsets of this catalogue.\nmodel LicenseIncludedWorkflow {\n id String @id @default(uuid())\n workflow_name String @unique\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n @@map(\"license_included_workflows\")\n @@schema(\"usage\")\n}\n\nmodel UsageAggregate {\n id String @id @default(uuid())\n organisation_id String\n metric_key String\n dimension_hash String\n dimensions Json\n total_quantity Decimal\n period_start DateTime?\n period_end DateTime?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n metric UsageMetricDefinition @relation(fields: [metric_key], references: [key], onDelete: Restrict, onUpdate: Cascade)\n\n @@unique([organisation_id, metric_key, dimension_hash, period_start])\n @@index([organisation_id, metric_key])\n @@map(\"usage_aggregates\")\n @@schema(\"usage\")\n}\n\nenum UsageUnit {\n COUNT\n BYTES\n SECONDS\n TOKENS\n COST\n\n @@schema(\"usage\")\n}\n\nenum UsageAggregationType {\n SUM\n GAUGE\n\n @@schema(\"usage\")\n}\n\nenum UsageSourceType {\n activity_event\n usage_publisher\n reconcile\n\n @@schema(\"usage\")\n}\n\nmodel UsageLedgerEntry {\n id String @id @default(uuid())\n organisation_id String\n metric_key String\n quantity Decimal @db.Decimal(20, 4)\n occurred_at DateTime\n dimensions Json\n idempotency_key String @unique\n source_type UsageSourceType\n source_id String?\n resource_type String?\n resource_id String?\n created_at DateTime @default(now())\n updated_at DateTime @default(now()) @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n metric UsageMetricDefinition @relation(fields: [metric_key], references: [key], onDelete: Restrict, onUpdate: Cascade)\n\n @@index([organisation_id, metric_key, occurred_at])\n @@index([organisation_id, occurred_at])\n @@map(\"usage_ledger\")\n @@schema(\"usage\")\n}\n\nmodel UsageMetricDefinition {\n id String @id @default(uuid())\n key String @unique\n name String\n unit UsageUnit\n aggregation_type UsageAggregationType\n metadata Json?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n ledger_entries UsageLedgerEntry[]\n aggregates UsageAggregate[]\n\n @@map(\"usage_metric_definitions\")\n @@schema(\"usage\")\n}\n\nenum FirstLoginStatus {\n PENDING\n COMPLETED\n\n @@schema(\"public\")\n}\n\nenum UserInvitationStatus {\n INVITED\n ACCEPTED\n EXPIRED\n\n @@schema(\"public\")\n}\n\nmodel User {\n id String @id @default(uuid())\n email String @unique\n password String\n role_id String\n role UserRole @relation(fields: [role_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n organisation_id String?\n // Back-relations are defined from Resume side via user_id\n google_id String? @unique\n refresh_token String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n is_self_registered Boolean @default(true)\n permission_id String? @unique\n preferences Json? @default(\"{}\")\n invitation_status UserInvitationStatus @default(INVITED)\n invited_at DateTime? @default(now())\n invitation_expires_at DateTime?\n invitation_accepted_at DateTime?\n permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n resume Resume[]\n candidate_profile CandidateProfile?\n user_profile UserProfile?\n job_description JobDescription[]\n hiring_manager_job_descriptions JobDescription[] @relation(\"HiringManager\")\n hiring_manager_job_profiles JobProfile[] @relation(\"JobProfileHiringManager\")\n approvals Approval[]\n sent_messages Message[] @relation(\"Sent Messages\")\n received_messages Message[] @relation(\"Received Messages\")\n profile_created Boolean\n first_login_status FirstLoginStatus @default(PENDING)\n // Back-relations for interviews (optional but recommended for clarity)\n candidate_interviews Interview[] @relation(\"CandidateInterviews\")\n interviewer_interviews Interview[] @relation(\"InterviewerInterviews\")\n assessment_results Assessment[]\n candidate_assessments Assessment[] @relation(\"CandidateAssessments\")\n reviewer_assessments Assessment[] @relation(\"ReviewerAssessments\")\n candidate_assignments Assignment[] @relation(\"CandidateAssignments\")\n reviewer_assignments Assignment[] @relation(\"AssignmentReviewer\")\n candidateResponses CandidateQuestionResponse[]\n questions Question[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n actor_activity_logs ActivityLog[] @relation(\"ActorActivityLogs\")\n actions Action[]\n calendly Calendly?\n google Google?\n fitChecks FitCheck[]\n created_job_profiles JobProfile[] @relation(\"ProfileCreator\")\n assigned_job_profiles JobProfile[] @relation(\"ProfileAssignee\")\n user_auth_modules AuthModule[] @relation(\"UserAuthModule\")\n refresh_token_auth RefreshToken[] @relation(\"TokenRefresh\")\n zoom_meeting_participants ZoomMeetingParticipant[]\n notes Notes[]\n recruiter_applications Application[] @relation(\"ApplicationRecruiter\")\n\n name String?\n phone String?\n description String?\n date_of_birth DateTime?\n designation String?\n location String?\n salary String?\n work_experience Json?\n education Json?\n skills Json?\n notice_period String?\n preferred_work_mode String?\n gender String?\n ethnicity String?\n veteran_status String?\n disability_status String?\n professional_expertise String?\n documents Document[]\n offers Offer[] @relation(\"OfferCandidate\")\n\n employee_number Int?\n employee_code String? @unique\n\n department_members DepartmentMember[] @relation(\"DepartmentMemberships\")\n\n @@index([role_id])\n @@index([permission_id])\n @@index([organisation_id])\n @@index([organisation_id, employee_number])\n @@schema(\"public\")\n}\n\nmodel UserProfile {\n id String @id @default(uuid())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n name String\n phone String\n description String\n date_of_birth String\n designation String\n is_active Boolean @default(true)\n user User? @relation(fields: [user_id], references: [id])\n user_id String? @unique\n\n work_experience Json?\n\n @@schema(\"public\")\n}\n\n/// Expected attendee slot when persisting interview-linked Zoom participants (`CANDIDATE` | `INTERVIEWER`).\nenum ZoomMeetingParticipantRole {\n CANDIDATE\n INTERVIEWER\n\n @@schema(\"public\")\n}\n\n/// Zoom meeting linked 1:1 to an interview; Zoom REST host is `zoom_host_user_id`.\nmodel ZoomMeeting {\n id String @id @default(uuid())\n /// One Zoom row per interview.\n interview_id String @unique\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Treadspace user id whose Zoom User-OAuth token created this meeting; required for PATCH/DELETE on Zoom REST.\n /// Set from the Zoom host `userId` in `ZoomMeetingDAO.upsertZoomParticipants` (same user as `POST /users/me/meetings`).\n zoom_host_user_id String\n\n /// Zoom REST/API meeting id (same value used as Meeting SDK `meetingNumber` / JWT `mn`).\n zoom_meeting_id String\n /// Zoom meeting **instance** UUID from REST create (`uuid`) and RTMS/webhooks (`meeting_uuid`).\n zoom_meeting_uuid String?\n join_url String\n start_url String?\n password String?\n topic String?\n\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n\n is_active Boolean @default(true)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Audit; kept aligned with `zoom_host_user_id` when the meeting is recreated under a new host.\n created_by String\n updated_by String\n\n participants ZoomMeetingParticipant[]\n\n @@index([interview_id])\n @@index([zoom_meeting_id])\n @@index([zoom_meeting_uuid])\n @@schema(\"public\")\n}\n\n/// Expected participants for a `ZoomMeeting`: links to `User` (candidate / interviewer). Replaced on each meeting upsert.\nmodel ZoomMeetingParticipant {\n id String @id @default(uuid())\n zoom_meeting_row_id String\n zoom_meeting ZoomMeeting @relation(fields: [zoom_meeting_row_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user_id String\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Zoom account id (`AuthModule.provider_account_id`) when this `user_id` has linked Zoom; usually set for interviewer, often null for candidate.\n zoom_participant_id String?\n role ZoomMeetingParticipantRole\n\n is_active Boolean @default(true)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@index([zoom_meeting_row_id])\n @@index([user_id])\n @@index([zoom_participant_id])\n @@schema(\"public\")\n}\n\n/// Ledger of processed Zoom webhook deliveries: one row per `dedupe_key` (request id or body hash).\n/// Stops double-handling when Zoom retries the same notification (e.g. RTMS, `meeting.started`).\nmodel ZoomWebhookEvent {\n id String @id @default(uuid())\n /// Stable key: SHA-256 of raw request body, or `x-zm-trackingid` when present.\n dedupe_key String @unique\n event String\n created_at DateTime @default(now())\n\n @@index([event])\n @@index([created_at])\n @@schema(\"public\")\n}\n",
2907
- "inlineSchemaHash": "3d4454ff47f2585d447d454b894e9b9f0a85da99fff7fe405aa762a0a19806da",
2910
+ "inlineSchema": "model CandidateQuestionResponse {\n id String @id @default(uuid())\n //foreign keys\n question_id String\n candidate_id String\n assessment_id String\n //data\n response String\n score Float?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n // Relations\n question Question @relation(fields: [question_id], references: [id], onDelete: Cascade)\n assessment Assessment @relation(fields: [assessment_id], references: [id], onDelete: Cascade)\n candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([assessment_id, question_id, candidate_id])\n @@index([candidate_id])\n @@index([assessment_id])\n @@schema(\"public\")\n}\n\nmodel UserRole {\n id String @id @default(uuid())\n role String\n organisation_id String?\n is_custom Boolean @default(false)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n permission_id String? @unique\n permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n users User[]\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@unique([role, organisation_id])\n @@index([role, organisation_id])\n @@index([organisation_id])\n @@index([permission_id])\n @@schema(\"public\")\n}\n\nenum ActionType {\n TAKE_INTERVIEW\n PROVIDE_FEEDBACK\n SCHEDULE_INTERVIEW\n /// Dept head is asked to submit their department's hiring requirements.\n SUBMIT_DEPARTMENT_HIRING_REQUIREMENTS\n /// CHRO must review a department's submitted hiring requirements.\n REVIEW_DEPARTMENT_HIRING_REQUIREMENTS\n /// Dept head must update requirements after CHRO requested changes.\n UPDATE_DEPARTMENT_HIRING_REQUIREMENTS\n\n @@schema(\"public\")\n}\n\nenum ActionStatus {\n PENDING\n COMPLETED\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel Action {\n id String @id @default(uuid())\n assignee_id String\n title String\n action_type ActionType\n action_id String // Generic foreign key that can link to any entity\n due_date DateTime?\n organisation_id String\n status ActionStatus @default(PENDING)\n // Relations\n user User @relation(fields: [assignee_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@index([assignee_id, action_type])\n @@index([status])\n @@index([due_date])\n @@schema(\"public\")\n}\n\nenum ActivityEventType {\n APPLICATION_CREATED\n APPLICATION_STARTED\n APPLICATION_REJECTED\n APPLICATION_ON_HOLD\n APPLICATION_WITHDRAWN\n APPLICATION_SHORTLISTED\n\n FIT_CHECK_COMPLETED\n\n ROUND_ASSIGNED\n ROUND_COMPLETED\n ROUND_PASSED\n ROUND_FAILED\n\n INTERVIEW_CREATED\n INTERVIEW_SCHEDULED\n INTERVIEW_RESCHEDULED\n INTERVIEW_CANCELLED\n INTERVIEW_STARTED\n INTERVIEW_COMPLETED\n INTERVIEW_NO_SHOW\n INTERVIEW_EVALUATION_PENDING\n INTERVIEW_EVALUATED\n\n FEEDBACK_SUBMITTED\n\n ASSIGNMENT_CREATED\n ASSIGNMENT_STARTED\n ASSIGNMENT_COMPLETED\n ASSIGNMENT_CANCELLED\n ASSIGNMENT_EVALUATED\n\n ASSESSMENT_CREATED\n ASSESSMENT_STARTED\n ASSESSMENT_COMPLETED\n ASSESSMENT_CANCELLED\n ASSESSMENT_EVALUATED\n\n JOB_CREATED\n JOB_PUBLISHED\n JOB_CLOSED\n JOB_DEACTIVATED\n\n /// Offer workflow — one semantic event per business moment.\n OFFER_CREATED\n OFFER_GENERATED\n OFFER_SENT\n OFFER_REVISED\n OFFER_ACCEPTED\n OFFER_DECLINED\n OFFER_WITHDRAWN\n OFFER_JOINED\n OFFER_NO_SHOW\n /// Legacy values kept for historic ActivityEvent rows; not emitted by current flow.\n OFFER_VIEWED\n OFFER_CHANGE_REQUESTED\n OFFER_CHANGE_UNDER_REVIEW\n OFFER_COUNTER_SENT\n OFFER_EXPIRED\n OFFER_CHANGE_REQUEST_REJECTED\n OFFER_CHANGE_REQUEST_WITHDRAWN\n\n USER_INVITED\n USER_INVITATION_RESENT\n USER_CREATED\n USER_INVITATION_ACCEPTED\n USER_INVITATION_EXPIRED\n USER_DEACTIVATED\n USER_REACTIVATED\n USER_ROLE_CHANGED\n USER_PROFILE_COMPLETED\n\n CANDIDATE_REGISTERED\n CANDIDATE_CREATED\n CANDIDATE_PROFILE_COMPLETED\n\n EVALUATION_PLAN_CREATED\n EVALUATION_PLAN_PUBLISHED\n EVALUATION_PLAN_DELETED\n EVALUATION_PLAN_UPDATED\n STATUS_CHANGED\n\n CUSTOM\n\n @@schema(\"public\")\n}\n\nenum ActivityEntityType {\n APPLICATION\n\n CANDIDATE\n\n JOB\n\n ONGOING_EVALUATION\n\n EVALUATION_PLAN\n\n INTERVIEW\n\n ASSIGNMENT\n\n ASSESSMENT\n\n /// Offer workflow entity — entity_id = offer.id\n OFFER\n\n ORGANISATION\n\n USER\n\n @@schema(\"public\")\n}\n\nenum ActivityEntityActorType {\n USER\n\n SYSTEM\n\n AI_AGENT\n\n WEBHOOK\n\n @@schema(\"public\")\n}\n\nmodel ActivityEvent {\n id String @id @default(uuid())\n\n organisation_id String?\n\n event_type ActivityEventType\n\n entity_type ActivityEntityType\n entity_id String\n\n actor_id String?\n actor_type ActivityEntityActorType\n\n related_entities Json?\n\n snapshot Json?\n\n payload Json?\n\n schema_version Int @default(1)\n\n occurred_at DateTime\n\n created_at DateTime @default(now())\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id])\n\n @@index([organisation_id, occurred_at])\n @@index([organisation_id, event_type])\n @@index([entity_type, entity_id])\n @@index([actor_id])\n @@index([occurred_at])\n @@map(\"activity_events\")\n @@schema(\"public\")\n}\n\nenum ActivityActorType {\n USER\n AI\n SYSTEM\n\n @@schema(\"public\")\n}\n\nmodel ActivityLog {\n id String @id @default(uuid())\n application_id String\n actor_id String?\n actor_type ActivityActorType @default(USER)\n message String\n timestamp DateTime @default(now())\n metadata Json?\n created_at DateTime @default(now())\n is_active Boolean @default(true)\n // Relations\n actor User? @relation(\"ActorActivityLogs\", fields: [actor_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([application_id])\n @@schema(\"public\")\n}\n\nmodel ApplicationAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n application_id String @unique\n job_description_id String\n candidate_id String\n\n source_id String?\n source_name String?\n source_category SourceCategory?\n source_colour String?\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n candidate_name String?\n recruiter_id String?\n\n applied_at DateTime\n status_updated_at DateTime?\n\n status ApplicationStatus?\n fit_check_score Float?\n\n is_screened Boolean @default(false)\n is_evaluated Boolean @default(false)\n is_rejected Boolean @default(false)\n is_shortlisted Boolean @default(false)\n is_on_hold Boolean @default(false)\n is_withdrawn Boolean @default(false)\n has_committed_evaluation Boolean @default(false)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, applied_at])\n @@index([organisation_id, source_id, applied_at])\n @@index([job_description_id, applied_at])\n @@index([organisation_id, hiring_manager_id])\n @@map(\"application_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel ApplicationAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n application_id String\n job_description_id String\n candidate_id String\n\n source_id String?\n source_name String?\n source_category SourceCategory?\n source_colour String?\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n candidate_name String?\n recruiter_id String?\n\n applied_at DateTime\n status_updated_at DateTime?\n\n status ApplicationStatus?\n fit_check_score Float?\n\n is_screened Boolean @default(false)\n is_evaluated Boolean @default(false)\n is_rejected Boolean @default(false)\n is_shortlisted Boolean @default(false)\n is_on_hold Boolean @default(false)\n is_withdrawn Boolean @default(false)\n has_committed_evaluation Boolean @default(false)\n\n @@unique([snapshot_date, application_id])\n @@index([snapshot_date], map: \"aad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"aad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, source_id], map: \"aad_snapshot_org_source_idx\")\n @@index([snapshot_date, organisation_id, applied_at], map: \"aad_snapshot_org_applied_idx\")\n @@index([snapshot_date, job_description_id], map: \"aad_snapshot_job_idx\")\n @@map(\"application_analytics_daily\")\n @@schema(\"analytics\")\n}\n\n// PENDING could be understood as unscreened\nenum ApplicationStatus {\n PENDING\n IN_PROGRESS\n SELECTED\n OFFER\n JOINED\n SHORTLISTED\n REJECTED\n ON_HOLD\n WITHDRAWN\n\n @@schema(\"public\")\n}\n\n/// Fine-grained state within ApplicationStatus.OFFER. Owned by Application —\n/// Offer table holds terms/letters/audit only, no lifecycle enum of its own.\nenum ApplicationOfferSubstatus {\n /// Offer row created with terms, no letter generated yet.\n PREPARING\n /// Letter DOCX generated and downloaded — awaiting manual send outside TreadSpace.\n GENERATED\n /// Staff manually marked the letter as sent to the candidate.\n SENT\n /// Revising after SENT — current letter is superseded, no active letter until next Generate.\n NEGOTIATING\n /// Candidate accepted (staff-recorded, no candidate portal).\n ACCEPTED\n /// Candidate declined — Application.status also flips to REJECTED.\n DECLINED\n /// Offer withdrawn by staff — Application.status also flips to REJECTED.\n WITHDRAWN\n /// Candidate accepted but did not join — Application.status also flips to REJECTED.\n NO_SHOW\n\n @@schema(\"public\")\n}\n\nmodel Application {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n candidate_id String\n resume_id String\n job_description_id String\n evaluation_plan_id String?\n recruiter_id String?\n source_id String?\n /// Data fields\n fit_check_score Float?\n applied_at DateTime @default(now())\n round_no Int @default(0)\n is_jaf_completed Boolean @default(false)\n proceed_to_next_round Boolean? @default(false)\n evaluationComment String?\n /// Candidate flag (orthogonal to ApplicationStatus). Latest actor/comment only.\n is_flagged Boolean @default(false)\n flag_comment String?\n flagged_at DateTime?\n flagged_by String?\n unflag_comment String?\n unflagged_at DateTime?\n unflagged_by String?\n fit_check_status FitCheckStatus?\n status ApplicationStatus @default(PENDING)\n /// Fine-grained offer-stage state. Meaningful only when status = OFFER (or was OFFER for a terminal-substatus that flipped to REJECTED / JOINED).\n offer_substatus ApplicationOfferSubstatus?\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n /// Relations\n evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id])\n candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n fit_check FitCheck?\n recruiter User? @relation(\"ApplicationRecruiter\", fields: [recruiter_id], references: [id])\n source Source? @relation(fields: [source_id], references: [id], onDelete: SetNull)\n interviews Interview[]\n assignments Assignment[]\n ongoing_evaluations OngoingEvaluation[]\n activity_logs ActivityLog[]\n notes Notes[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n job_application_responses JobApplicationResponse[]\n offer Offer?\n\n @@unique([candidate_id, job_description_id]) // Ensures candidate applies only once per job\n @@index([candidate_id])\n @@index([job_description_id])\n @@index([source_id])\n @@index([organisation_id, is_flagged])\n @@index([job_description_id, is_flagged])\n @@index([organisation_id, is_active, status])\n @@index([job_description_id, is_active, status])\n @@index([organisation_id, offer_substatus])\n @@schema(\"public\")\n}\n\nmodel Approval {\n id String @id @default(uuid())\n job_description_id String\n user_id String\n organisaton_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisaton_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@schema(\"public\")\n}\n\nmodel Assessment {\n id String @id @default(uuid())\n //foreign keys\n organisation_id String?\n assessment_library_id String\n candidate_id String\n reviewer_id String?\n //data\n score Float?\n feedback Json?\n // Scheduled Deadline Window\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n /// Actual Start and End Time\n actual_start_time DateTime?\n actual_end_time DateTime?\n /// Attempt Expires At\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n assessment_library AssessmentLibrary @relation(fields: [assessment_library_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User @relation(\"CandidateAssessments\", fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n reviewer User? @relation(\"ReviewerAssessments\", fields: [reviewer_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n questions AssessmentQuestion[] @relation(\"AssessmentToAssessmentQuestion\")\n candidateResponse CandidateQuestionResponse[]\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n User User? @relation(fields: [userId], references: [id])\n userId String?\n ongoingEvaluation OngoingEvaluation?\n\n @@unique([assessment_library_id, candidate_id])\n @@index([assessment_library_id])\n @@index([candidate_id])\n @@schema(\"public\")\n}\n\n/// Defines how an assessment is conducted.\n\nmodel AssessmentLibrary {\n id String @id @default(uuid())\n title String\n time_required Int\n passing_score Float?\n max_score Float?\n organisation_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n questions Question[] // One assessment → many questions\n assessments Assessment[]\n evaluation_Plans EvaluationPlan[]\n\n @@index([organisation_id])\n @@schema(\"public\")\n}\n\n/**\n * Join table linking Assessments and Questions in a many-to-many relationship.\n * - Each row represents one link between a specific Assessment and a specific Question.\n * - Composite ID ensures no duplicate pairings exist.\n * - Cascade delete ensures join rows are removed when either side is deleted.\n * - Enables sharing the same Question across multiple Assessments.\n */\nmodel AssessmentQuestion {\n assessment_id String\n question_id String\n assessment Assessment @relation(\"AssessmentToAssessmentQuestion\", fields: [assessment_id], references: [id], onDelete: Cascade)\n question Question @relation(\"QuestionToAssessmentQuestion\", fields: [question_id], references: [id], onDelete: Cascade)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@id([assessment_id, question_id])\n @@schema(\"public\")\n}\n\nenum AssessmentRoundStatus {\n SCHEDULED\n IN_PROGRESS\n COMPLETED\n EVALUATED\n CANCELLED\n\n @@schema(\"analytics\")\n}\n\nmodel AssessmentRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n assessment_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n\n score Float?\n status AssessmentRoundStatus?\n round_result RoundResult?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, reviewer_id])\n @@index([job_description_id])\n @@index([application_id])\n @@map(\"assessment_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel AssessmentRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n assessment_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n attempt_expires_at DateTime?\n evaluated_at DateTime?\n\n score Float?\n status AssessmentRoundStatus?\n round_result RoundResult?\n\n @@unique([snapshot_date, assessment_id])\n @@index([snapshot_date], map: \"asrad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"asrad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"asrad_snapshot_job_idx\")\n @@map(\"assessment_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AssignmentStatus {\n AVAILABLE\n SCHEDULED\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel Assignment {\n id String @id @default(uuid())\n candidate_id String\n assignment_library_id String\n reviewer_id String?\n application_id String?\n job_description_id String\n organisation_id String\n ongoing_evaluation_id String? @unique\n overallScore Int?\n feedback Json?\n status AssignmentStatus @default(AVAILABLE)\n cancel_reason String?\n /// @deprecated Prefer `solution_document_id` + `Document`.\n solution_url String?\n /// @deprecated Prefer `zip_document_id` + `Document`.\n zip_url String?\n solution_document_id String? @unique\n zip_document_id String? @unique\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n evaluated_at DateTime?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n candidate User? @relation(\"CandidateAssignments\", fields: [candidate_id], references: [id], onDelete: Cascade)\n assignment_library AssignmentLibrary @relation(fields: [assignment_library_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n reviewer User? @relation(\"AssignmentReviewer\", fields: [reviewer_id], references: [id], onDelete: SetNull)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n ongoing_evaluation OngoingEvaluation? @relation(fields: [ongoing_evaluation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n solution_document Document? @relation(\"AssignmentSolutionDocument\", fields: [solution_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n zip_document Document? @relation(\"AssignmentZipDocument\", fields: [zip_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([candidate_id, ongoing_evaluation_id])\n @@index([candidate_id])\n @@index([reviewer_id])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nmodel AssignmentLibrary {\n id String @id @default(uuid())\n deadline Int\n /// Flexible JSON for assignment-specific config (rubrics, instructions, criteria, etc.)\n assignment Json?\n job_description_id String\n organisation_id String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Back-relation: one-to-one from EvaluationPlan (FK lives on EvaluationPlan.assignment_library_id)\n evaluationPlan EvaluationPlan[]\n assignments Assignment[]\n\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nmodel AssignmentRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n assignment_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n completed_at DateTime?\n evaluated_at DateTime?\n cancelled_at DateTime?\n\n status AssignmentStatus?\n overall_score Int?\n cancel_reason String?\n round_result RoundResult?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, reviewer_id])\n @@index([job_description_id])\n @@index([application_id])\n @@map(\"assignment_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel AssignmentRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n assignment_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n reviewer_id String?\n reviewer_employee_id String?\n reviewer_name String?\n\n candidate_name String?\n\n evaluation_type EvaluationType?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n completed_at DateTime?\n evaluated_at DateTime?\n cancelled_at DateTime?\n\n status AssignmentStatus?\n overall_score Int?\n cancel_reason String?\n round_result RoundResult?\n\n @@unique([snapshot_date, assignment_id])\n @@index([snapshot_date], map: \"arad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"arad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"arad_snapshot_job_idx\")\n @@map(\"assignment_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AuthProvider {\n GOOGLE\n MICROSOFT\n ZOOM\n CALENDLY\n\n @@schema(\"public\")\n}\n\nmodel AuthModule {\n id String @id @default(uuid())\n user_id String\n /// The provider of the authentication module\n provider AuthProvider\n provider_account_id String? @db.Text\n\n access_token String? @db.Text\n refresh_token String? @db.Text\n id_token String? @db.Text\n expires_at DateTime?\n\n token_type String?\n\n scope String?\n is_active Boolean @default(true)\n\n /// Provider-specific JSON (e.g. Zoom: email, display); tokens remain in encrypted columns.\n metadata Json @default(\"{}\")\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n user User @relation(\"UserAuthModule\", fields: [user_id], references: [id], onDelete: Cascade)\n\n @@unique([user_id, provider])\n @@unique([provider, provider_account_id])\n @@index([user_id])\n @@schema(\"public\")\n}\n\nenum JobType {\n Full_time\n Part_time\n Contract\n Internship\n Temporary\n\n @@schema(\"public\")\n}\n\nenum JDCreationType {\n Pick_from_Library\n Upload_JD\n Create_New\n Create_From_Profile\n\n @@schema(\"public\")\n}\n\nmodel Budget {\n id String @id @default(uuid())\n job_type JobType\n location String\n shift String\n openings Int\n budget_per_job String\n level String\n start_date DateTime\n closing_date DateTime\n business_unit String\n purpose String\n role String\n domain String\n jd_creation_type JDCreationType\n job_description_id String @unique\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Optional link to annual plan line (legacy Budget API; primary commit path is JobDescription).\n hiring_plan_line_id String?\n hiring_plan_line HiringPlanLine? @relation(fields: [hiring_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@index([hiring_plan_line_id])\n @@schema(\"public\")\n}\n\nmodel Calendly {\n id String @id @default(uuid())\n user_id String @unique\n\n access_token String\n refresh_token String\n expires_at DateTime\n calendly_user_uri String\n scope String?\n\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nmodel CandidateProfile {\n id String @id @default(uuid())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n name String\n phone String\n location String\n salary String?\n description String?\n resume_id String? @unique\n date_of_birth DateTime?\n\n user User? @relation(fields: [user_id], references: [id])\n user_id String? @unique\n\n resume Resume? @relation(fields: [resume_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n work_experience Json?\n education Json?\n notice_period String?\n gender String?\n ethnicity String?\n veteran_status String?\n disability_status String?\n is_active Boolean @default(true)\n planned_candidates PlannedCandidate[]\n\n @@schema(\"public\")\n}\n\n// Multi-channel communication (WhatsApp, Email, SMS, Call) with provider abstraction.\n// Strategy: typed columns for everything stable; JSON only for genuinely variable data.\n\nenum CommChannel {\n WHATSAPP\n EMAIL\n SMS\n CALL\n\n @@schema(\"public\")\n}\n\nenum CommProvider {\n META_WHATSAPP\n TWILIO\n GUPSHUP\n MTALKZ\n THREE_SIXTY_DIALOG\n GMAIL\n OUTLOOK\n GENERIC_SMTP\n GENERIC\n\n @@schema(\"public\")\n}\n\nenum CommDirection {\n INBOUND\n OUTBOUND\n\n @@schema(\"public\")\n}\n\nenum CommMessageStatus {\n QUEUED\n SENT\n DELIVERED\n READ\n FAILED\n RECEIVED\n\n @@schema(\"public\")\n}\n\n/// Per-organisation provider selection + (encrypted) credentials for one channel.\n/// `metadata` stores non-secret provider settings (e.g. phone_number_id, waba_id, webhook_verify_token).\nmodel ChannelProviderConfig {\n id String @id @default(uuid())\n organisation_id String\n channel CommChannel\n provider CommProvider\n /// Encrypted JSON blob of secrets (token, app_secret, …) using integrationTokenCrypto.\n credentials String?\n metadata Json @default(\"{}\")\n is_active Boolean @default(true)\n is_default Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n conversations Conversation[]\n messages CommunicationMessage[]\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, channel, provider])\n @@index([organisation_id, channel])\n @@index([organisation_id, channel, is_active])\n @@schema(\"public\")\n}\n\n/// A logical conversation thread with one external party on one channel.\n/// `external_id` is the channel-native identifier (E.164 phone for WhatsApp/SMS, email address for email).\n///\n/// `application_id` / `job_description_id` are the *current* recruiting scope\n/// the thread is bound to (the recruiter can switch context, but individual\n/// `CommunicationMessage` rows record the scope they were sent under so the\n/// audit trail is preserved). Both nullable so pre-application sourcing\n/// (no application yet, just a JD) still works.\nmodel Conversation {\n id String @id @default(uuid())\n organisation_id String\n channel CommChannel\n provider CommProvider\n channel_provider_id String?\n external_id String\n contact_user_id String?\n application_id String?\n job_description_id String?\n provider_thread_id String?\n subject String?\n status String @default(\"open\")\n unread_count Int @default(0)\n last_message_at DateTime?\n metadata Json @default(\"{}\")\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n channel_provider ChannelProviderConfig? @relation(fields: [channel_provider_id], references: [id], onDelete: SetNull)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n messages CommunicationMessage[]\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, channel, provider, external_id])\n @@index([organisation_id, channel])\n @@index([organisation_id, last_message_at])\n @@index([external_id])\n @@index([organisation_id, application_id])\n @@index([organisation_id, job_description_id])\n @@schema(\"public\")\n}\n\n/// Individual message in a conversation. Inbound + outbound share the same model.\n/// `body` is plain text. `attachments` is a JSON array of media descriptors (no binaries persisted).\n/// `metadata` stores raw provider payloads + interactive payloads for audit/debug.\n///\n/// `application_id` / `job_description_id` are the recruiting scope this\n/// specific message was sent/received under, captured at the time of the\n/// event (not derived from the parent conversation, since a recruiter may\n/// reuse a thread across multiple applications). Both nullable.\nmodel CommunicationMessage {\n id String @id @default(uuid())\n conversation_id String\n organisation_id String\n channel CommChannel\n provider CommProvider\n channel_provider_id String?\n direction CommDirection\n status CommMessageStatus\n body String?\n from_identifier String\n to_identifier String\n sender_user_id String?\n application_id String?\n job_description_id String?\n provider_message_id String?\n template_name String?\n attachments Json @default(\"[]\")\n metadata Json @default(\"{}\")\n error String?\n sent_at DateTime?\n delivered_at DateTime?\n read_at DateTime?\n\n conversation Conversation @relation(fields: [conversation_id], references: [id], onDelete: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n channel_provider ChannelProviderConfig? @relation(fields: [channel_provider_id], references: [id], onDelete: SetNull)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([provider, provider_message_id])\n @@index([conversation_id, created_at])\n @@index([organisation_id, channel, created_at])\n @@index([organisation_id, status])\n @@index([organisation_id, application_id])\n @@index([organisation_id, job_description_id])\n @@schema(\"public\")\n}\n\nenum CompetencyCategory {\n TECHNICAL\n BEHAVIOURAL\n AI\n\n @@schema(\"public\")\n}\n\nmodel CompetencyDictionary {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String?\n /// Data fields\n category CompetencyCategory\n /// Optional department catalog value (DepartmentType in app code; not linked to Department model).\n department String?\n /// Optional free-text job role / job profile title (not a FK).\n jobRole String?\n /// Optional free-text provenance / source label (not an enum).\n dictionary_source String?\n /// Industry catalog value (Industry enum in app code).\n industry String\n name String\n description String?\n /// Proficiency ladder definitions (competency-specific text)\n level1 String?\n level2 String?\n level3 String?\n level4 String?\n level5 String?\n metadata Json?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([organisation_id])\n @@index([organisation_id, category])\n @@index([organisation_id, industry, department, category])\n @@schema(\"public\")\n}\n\nmodel ContactUs {\n id String @id @default(uuid())\n first_name String\n last_name String\n email String?\n phone String?\n organisation_name String\n organisation_website String?\n subject String?\n message String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\n/// Section-level status for a department's slice of the hiring plan.\n/// DRAFT — legacy pre-request state (heads had free edit); still used\n/// when a section row exists before CHRO has \"requested input\".\n/// REQUESTED — CHRO has requested input; head may edit.\n/// SUBMITTED — head submitted; awaiting CHRO review; head is frozen.\n/// CHANGES_REQUESTED — CHRO sent back with a note; head may edit again.\n/// APPROVED — CHRO approved; heads frozen. CHRO may still edit\n/// (product default). Reopen returns to CHANGES_REQUESTED.\n/// SKIPPED — CHRO opted out of collecting input for this dept.\nenum HiringPlanSectionStatus {\n DRAFT\n REQUESTED\n SUBMITTED\n CHANGES_REQUESTED\n APPROVED\n SKIPPED\n\n @@schema(\"public\")\n}\n\n/// First-class org unit that owns a slice of the annual hiring plan.\n/// Replaces the free-text `business_unit` string on HiringPlanLine / Employee.\n/// Headship lives on DepartmentMember.is_head (at most one per dept, enforced in service).\nmodel Department {\n id String @id @default(uuid())\n organisation_id String\n name String\n code String?\n /// Global display order across departments within the org (drag-reorder in plan grid).\n sort_order Int @default(0)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n members DepartmentMember[]\n hiring_plan_lines HiringPlanLine[]\n employees Employee[]\n job_descriptions JobDescription[]\n job_profiles JobProfile[]\n sections HiringPlanSection[]\n\n @@unique([organisation_id, name])\n @@index([organisation_id])\n @@schema(\"public\")\n}\n\n/// Many-to-many membership: a user can belong to multiple departments.\n/// is_head marks the department head for that membership row. The same user can\n/// be head of multiple departments (multiple rows with is_head=true). At most\n/// one is_head=true per department is enforced in DepartmentService.\nmodel DepartmentMember {\n id String @id @default(uuid())\n department_id String\n user_id String\n is_head Boolean @default(false)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n department Department @relation(fields: [department_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(\"DepartmentMemberships\", fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([department_id, user_id])\n @@index([user_id])\n @@index([department_id, is_head])\n @@schema(\"public\")\n}\n\n/// Per-department status for a specific hiring plan (request → submit → approve/lock).\nmodel HiringPlanSection {\n id String @id @default(uuid())\n hiring_plan_id String\n department_id String\n status HiringPlanSectionStatus @default(DRAFT)\n /// CHRO/Exec who invoked \"Request input\" for this dept.\n requested_by String?\n requested_at DateTime?\n submitted_by String?\n submitted_at DateTime?\n approved_by String?\n approved_at DateTime?\n /// CHRO/Exec who opted to skip this dept (or the dept-head request lifecycle).\n skipped_by String?\n skipped_at DateTime?\n /// Latest CHRO note attached to Request Changes / Reopen.\n review_note String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan HiringPlan @relation(fields: [hiring_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department @relation(fields: [department_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([hiring_plan_id, department_id])\n @@index([hiring_plan_id])\n @@index([department_id])\n @@index([status])\n @@schema(\"public\")\n}\n\nmodel Document {\n // Primary key\n id String @id @default(uuid())\n // Foreign keys\n organisation_id String?\n candidate_id String?\n // Data fields\n original_file_name String\n stored_file_name String\n file_extension String?\n s3_bucket String?\n s3_key String?\n mime_type String?\n file_size BigInt?\n file_hash String?\n metadata Json?\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n resume Resume? @relation(\"ResumeSourceDocument\")\n resume_rendered_export Resume? @relation(\"RenderedResumeExport\")\n job_description_source JobDescription? @relation(\"SourceDocument\")\n job_description_rendered JobDescription? @relation(\"RenderedJdDocument\")\n job_description_display_html JobDescription? @relation(\"DisplayHtmlDocument\")\n interview_recording Interview?\n job_application_responses JobApplicationResponse[]\n assignment_solution Assignment? @relation(\"AssignmentSolutionDocument\")\n assignment_zip Assignment? @relation(\"AssignmentZipDocument\")\n offer_letter_template_docx OfferLetterTemplate[] @relation(\"OfferLetterTemplateDocx\")\n offer_letter_template_html OfferLetterTemplate[] @relation(\"OfferLetterTemplateHtml\")\n offer_letters OfferLetter[] @relation(\"OfferLetterPdf\")\n offer_letter_template_snapshots OfferLetter[] @relation(\"OfferLetterTemplateSnapshot\")\n offer_draft_edited_html Offer[] @relation(\"OfferDraftEditedHtml\")\n\n // Indexes\n @@index([candidate_id])\n @@index([organisation_id, candidate_id])\n @@index([file_hash])\n @@schema(\"public\")\n}\n\nenum CriteriaScope {\n ORGANISATION\n TREADSPACE\n\n @@schema(\"public\")\n}\n\nmodel EvaluationCriteria {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String?\n /// Data fields\n scope CriteriaScope\n key String\n criteria String?\n description String?\n weightage Float?\n is_elimination Boolean @default(false)\n metadata Json?\n /// Audit fields\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Indexes\n @@index([scope, organisation_id])\n @@schema(\"public\")\n}\n\nenum RoundType {\n ASSESSMENT\n INTERVIEW\n ASSIGNMENT\n SCREENING\n\n @@schema(\"public\")\n}\n\nenum EvaluationCategory {\n SCREENING\n BUSINESS_SCREENING\n BUSINESS_ROUND\n BEHAVIORAL_ROUND\n\n @@schema(\"public\")\n}\n\nenum EvaluationType {\n // New (In active use now)\n TREADSPACE_AI_ASSISTED\n TREADSPACE_FULL_AI\n EXTERNAL_AI_ASSISTED\n NON_AI_ASSISTED\n\n @@schema(\"public\")\n}\n\nenum EvaluationPlanType {\n CUSTOM\n GENERIC\n DELETED\n\n @@schema(\"public\")\n}\n\nenum EvaluationPlanShareScope {\n PRIVATE\n CREATOR\n ORGANIZATION\n\n @@schema(\"public\")\n}\n\nenum DurationUnit {\n MINUTES\n HOURS\n DAYS\n\n @@schema(\"public\")\n}\n\nmodel EvaluationPlan {\n id String @id @default(uuid())\n job_description_id String\n assessment_id String?\n assignment_library_id String?\n title String\n description String?\n focus_areas String[]\n topics String[]\n assignee String?\n elimination_round Boolean @default(false)\n evaluation_type EvaluationType @default(TREADSPACE_AI_ASSISTED)\n type_of_round RoundType\n round_purpose String?\n timeline Int?\n order_no Int?\n details Json?\n plan_type EvaluationPlanType @default(GENERIC)\n share_scope EvaluationPlanShareScope @default(PRIVATE)\n duration Int?\n duration_unit DurationUnit?\n deadline Int?\n category EvaluationCategory?\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n // Relations\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)\n questions Question[] // One evaluation plan → many questions\n interviews Interview[]\n applications Application[]\n // New optional one-to-one relation with AssessmentLibrary\n assessment AssessmentLibrary? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)\n assignment_library AssignmentLibrary? @relation(fields: [assignment_library_id], references: [id], onDelete: SetNull)\n ongoing_evaluations OngoingEvaluation[]\n\n @@index([job_description_id])\n @@index([job_description_id, plan_type, share_scope])\n @@index([created_by, share_scope])\n @@schema(\"public\")\n}\n\nmodel Feedback {\n id String @id @default(uuid())\n interview_id String\n order_no Int\n\n ai_feedback Json?\n human_feedback Json?\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([interview_id, order_no])\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nenum FitCheckStatus {\n RECOMMENDED\n TO_REVIEW\n NOT_RECOMMENDED\n\n @@schema(\"public\")\n}\n\nmodel FitCheck {\n /// Primary key (UUID)\n id String @id @default(uuid())\n /// FK to organisations table\n organisation_id String?\n candidate_id String?\n resume_id String\n job_description_id String\n /// Owning application (inverted from Application.fit_check_id)\n application_id String? @unique\n skills_analysis Json?\n overall_analysis Json?\n overall_score Float\n short_match_analysis Json[]\n fit_comparison Json?\n recommendation Json?\n competencies_analysis Json?\n /// Audit fields\n created_by String\n updated_by String\n is_active Boolean @default(true)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Ensure one FitCheck per (resume_id, job_description_id) pair\n @@unique([resume_id, job_description_id])\n @@index([resume_id])\n @@schema(\"public\")\n}\n\nmodel Google {\n id String @id @default(uuid())\n user_id String @unique\n\n google_email String\n refresh_token String\n scope String?\n\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nenum HiringPlanStatus {\n DRAFT\n ACTIVE\n CLOSED\n\n @@schema(\"public\")\n}\n\nenum PeriodType {\n ANNUAL\n\n @@schema(\"public\")\n}\n\nenum EmployeeStatus {\n ACTIVE\n ATTRITION_EXPECTED\n DEPARTED\n\n @@schema(\"public\")\n}\n\nenum AttritionRisk {\n LOW\n MEDIUM\n HIGH\n\n @@schema(\"public\")\n}\n\nenum ReviewRating {\n OUTSTANDING\n EXCEEDS_EXPECTATIONS\n MEETS_EXPECTATIONS\n NEEDS_IMPROVEMENT\n UNSATISFACTORY\n\n @@schema(\"public\")\n}\n\nenum PlannedCandidateStatus {\n IDENTIFIED\n IN_PIPELINE\n OFFER\n SELECTED\n DECLINED\n\n @@schema(\"public\")\n}\n\n/// Org-level annual hiring plan (CHRO budgeting).\nmodel HiringPlan {\n id String @id @default(uuid())\n organisation_id String\n fiscal_year Int\n period_type PeriodType @default(ANNUAL)\n currency String @default(\"INR\")\n status HiringPlanStatus @default(DRAFT)\n total_headcount_budget Int?\n total_cost_budget Decimal? @db.Decimal(18, 2)\n /// Workbook assumptions (multipliers, inflation, fiscal start month, etc.).\n assumptions Json?\n notes String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n lines HiringPlanLine[]\n sections HiringPlanSection[]\n\n @@unique([organisation_id, fiscal_year])\n @@index([organisation_id])\n @@index([status])\n @@schema(\"public\")\n}\n\n/// One allocation row: dimensions + planned headcount + monthly phasing inputs.\nmodel HiringPlanLine {\n id String @id @default(uuid())\n hiring_plan_id String\n /// Owning department (grouping + section ownership). Legacy `business_unit` is\n /// kept for back-compat and populated from Department.name for a while.\n department_id String?\n business_unit String?\n level String?\n location String?\n role String?\n planned_headcount Int @default(1)\n /// Fully-loaded annual run-rate cost per hire (not in-year cost).\n cost_per_hire Decimal @db.Decimal(18, 2)\n /// Fiscal month 1–12 when hires start (used when hire_schedule is null).\n start_month Int @default(1)\n /// Optional staggered starts: { \"1\": 2, \"4\": 2 } (fiscal-month → count).\n hire_schedule Json?\n /// Free-form requirement details captured by dept heads: priority, skills,\n /// justification, salary_range, etc. Kept as JSON to avoid wide migrations\n /// while the workflow settles.\n details Json?\n /// Display order within a business unit (lower first).\n sort_order Int @default(0)\n /// Reference/template JD for this role (definition).\n job_description_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan HiringPlan @relation(fields: [hiring_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription? @relation(\"PlanLineTemplateJd\", fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n requisitions JobDescription[] @relation(\"PlanLineRequisitions\")\n budgets Budget[]\n planned_candidates PlannedCandidate[]\n backfill_from_employees Employee[] @relation(\"EmployeeBackfillLine\")\n\n @@index([hiring_plan_id])\n @@index([department_id])\n @@index([job_description_id])\n @@index([business_unit, level, location, role])\n @@schema(\"public\")\n}\n\n/// Existing workforce roster (manual / CSV). Baseline for net-new vs backfill.\nmodel Employee {\n id String @id @default(uuid())\n organisation_id String\n /// Owning department (Department.name mirrors legacy business_unit for back-compat).\n department_id String?\n employee_code String?\n name String?\n email String?\n gender String?\n business_unit String?\n level String?\n location String?\n role String?\n employment_type JobType?\n starting_designation String?\n current_designation String?\n start_date DateTime?\n starting_salary Decimal? @db.Decimal(18, 2)\n /// Comp immediately before the latest raise (or prior cycle). Optional.\n previous_salary Decimal? @db.Decimal(18, 2)\n /// Current fully-loaded comp. Optional — workforce roster may be captured\n /// before salary details are collected.\n current_comp Decimal? @db.Decimal(18, 2)\n currency String @default(\"INR\")\n last_increment_date DateTime?\n last_increment_amount Decimal? @db.Decimal(18, 2)\n last_increment_pct Decimal? @db.Decimal(8, 4)\n last_review_date DateTime?\n last_review_rating ReviewRating?\n last_feedback_date DateTime?\n last_feedback_summary String?\n status EmployeeStatus @default(ACTIVE)\n attrition_risk AttritionRisk?\n expected_exit_date DateTime?\n backfill_plan_line_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n backfill_plan_line HiringPlanLine? @relation(\"EmployeeBackfillLine\", fields: [backfill_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([organisation_id, employee_code])\n @@index([organisation_id])\n @@index([department_id])\n @@index([status])\n @@index([business_unit, level, location, role])\n @@index([backfill_plan_line_id])\n @@schema(\"public\")\n}\n\n/// Tentative candidate attached to a plan line (ATS CandidateProfile or free-text).\nmodel PlannedCandidate {\n id String @id @default(uuid())\n hiring_plan_line_id String\n candidate_profile_id String?\n name String?\n status PlannedCandidateStatus @default(IDENTIFIED)\n note String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n hiring_plan_line HiringPlanLine @relation(fields: [hiring_plan_line_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate_profile CandidateProfile? @relation(fields: [candidate_profile_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@index([hiring_plan_line_id])\n @@index([candidate_profile_id])\n @@index([status])\n @@schema(\"public\")\n}\n\nenum IntegrationProvider {\n NAUKRI\n ZOHO_RECRUIT\n ZOHO_SIGN\n LINKEDIN\n GOOGLE\n MICROSOFT\n ZOOM\n CALENDLY\n RAZORPAY\n\n @@schema(\"public\")\n}\n\nenum IntegrationAuthType {\n OAUTH2\n API_KEY\n SSO\n\n @@schema(\"public\")\n}\n\nenum SyncDirection {\n PUSH\n PULL\n BIDIRECTIONAL\n\n @@schema(\"public\")\n}\n\nenum SyncEntityType {\n CANDIDATE\n JOB_OPENING\n INTERVIEW\n APPLICATION\n\n @@schema(\"public\")\n}\n\nenum SyncStatus {\n SYNCED\n PENDING\n FAILED\n\n @@schema(\"public\")\n}\n\nmodel IntegrationCredential {\n id String @id @default(uuid())\n organisation_id String?\n provider IntegrationProvider\n auth_type IntegrationAuthType\n access_token String?\n refresh_token String?\n token_expires_at DateTime?\n api_key String?\n api_secret String?\n metadata Json @default(\"{}\")\n is_active Boolean @default(true)\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@unique([organisation_id, provider])\n @@index([provider])\n @@schema(\"public\")\n}\n\nmodel IntegrationJobSync {\n id String @id @default(uuid())\n job_description_id String\n provider IntegrationProvider\n external_id String?\n sync_enabled Boolean @default(true)\n last_synced_at DateTime?\n sync_direction SyncDirection @default(PUSH)\n metadata Json @default(\"{}\")\n\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([job_description_id, provider])\n @@index([provider])\n @@schema(\"public\")\n}\n\nmodel ZohoSyncMapping {\n id String @id @default(uuid())\n organisation_id String\n entity_type SyncEntityType\n treadspace_id String\n zoho_module String\n zoho_record_id String\n last_synced_at DateTime @default(now())\n sync_status SyncStatus @default(PENDING)\n error_message String?\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, entity_type, treadspace_id])\n @@index([zoho_record_id])\n @@index([sync_status])\n @@schema(\"public\")\n}\n\nenum InterviewStatus {\n INTERVIEW_REQUESTED\n SCHEDULED\n IN_PROGRESS\n CANCELLED\n NO_SHOW // Candidate or interviewer failed to appear\n EVALUATION_PENDING // Waiting for feedback or evaluation\n EVALUATED // Feedback completed and locked\n\n @@schema(\"public\")\n}\n\nenum InterviewPlatform {\n TREADSPACE\n ZOOM\n\n @@schema(\"public\")\n}\n\nenum AiAssistanceMode {\n NONE\n ASSISTED\n\n @@schema(\"public\")\n}\n\nmodel Interview {\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n candidate_id String\n interviewer_id String?\n evaluation_plan_id String\n application_id String?\n resume_id String\n job_description_id String\n calendar_event_id String?\n /// Data\n room_name String?\n /// @deprecated Prefer `ai_feedback.feedback` (narrative string on AI feedback JSON).\n interview_summary String[]\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n actual_start_time DateTime?\n actual_end_time DateTime?\n /// Interview length in minutes (source of truth; not derived from schedule window).\n duration Int?\n /// @deprecated Prefer `recording_document_id` + `Document` (type INTERVIEW_RECORDING).\n recording_url String?\n recording_document_id String? @unique\n evaluation_type EvaluationType? @default(TREADSPACE_AI_ASSISTED)\n ai_assistance_mode AiAssistanceMode? @default(ASSISTED)\n interview_status InterviewStatus @default(SCHEDULED)\n interview_platform InterviewPlatform @default(TREADSPACE)\n overall_feedback String?\n /// Feedback JSON fields\n /// AI overall payload: `{ score, rating, feedback? }` where `feedback` is the\n /// narrative summary string (replaces deprecated `interview_summary`).\n ai_feedback Json?\n human_feedback Json?\n section_feedback Json[]\n interview_preparation Json?\n final_feedback Json?\n interview_analysis_ranges Json?\n interview_flow_summary String?\n /// When Orion AI feedback was last persisted on this interview.\n ai_feedback_generated_at DateTime?\n /// Experimental Beta AI feedback store (parallel to production AI columns).\n /// Used by Beta Feedback page so regenerating AI does not overwrite production.\n beta_ai_feedback Json?\n beta_section_feedback Json[] @default([])\n beta_final_feedback Json?\n beta_interview_flow_summary String?\n beta_ai_feedback_generated_at DateTime?\n /// When recruiter human feedback was last saved (draft or final).\n human_feedback_updated_at DateTime?\n /// When final human feedback was submitted.\n evaluated_at DateTime?\n\n /// Self-scheduling\n reschedule_count Int @default(0)\n last_rescheduled_at DateTime?\n first_assigned_at DateTime?\n /// True while the candidate is waiting on recruiter action (typically a\n /// reassign) after they submitted alternate slots via \"None match\" /\n /// \"Suggest times\". Cleared whenever the recruiter routes a fresh\n /// request via `upsertInterviewRequestRecord`.\n awaiting_recruiter_action Boolean @default(false)\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n candidate User? @relation(\"CandidateInterviews\", fields: [candidate_id], references: [id], onDelete: SetNull)\n interviewer User? @relation(\"InterviewerInterviews\", fields: [interviewer_id], references: [id], onDelete: SetNull)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n recording_document Document? @relation(fields: [recording_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n application Application? @relation(fields: [application_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n ongoing_evaluation OngoingEvaluation?\n transcripts Transcript[]\n suggestions Suggestion[]\n feedback Feedback[]\n interviewNotes InterviewNotes[]\n liveAnalysis LiveAnalysis[]\n zoom_meeting ZoomMeeting?\n\n // Indexes\n @@unique([interviewer_id, candidate_id, evaluation_plan_id])\n @@index([candidate_id])\n @@index([interviewer_id])\n @@index([job_description_id])\n @@index([organisation_id, interview_status])\n @@index([interview_status, scheduled_start_time])\n @@schema(\"public\")\n}\n\nmodel InterviewNotes {\n id String @id @default(uuid())\n interview_id String\n note String\n details Json?\n timestamp DateTime @default(now())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nenum InterviewRecommendation {\n ACCEPTED\n REJECTED\n UNSURE\n\n @@schema(\"analytics\")\n}\n\nmodel InterviewRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n round_id String @unique\n interview_id String @unique\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n interviewer_id String?\n interviewer_employee_id String?\n interviewer_name String?\n\n candidate_name String?\n candidate_email String?\n\n evaluation_type EvaluationType?\n ai_assistance_mode AiAssistanceMode?\n interview_platform InterviewPlatform?\n interview_status InterviewStatus?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n evaluated_at DateTime?\n first_assigned_at DateTime?\n duration_minutes Int?\n\n human_rating String?\n ai_rating String?\n recommendation InterviewRecommendation?\n ai_disagrees_with_ai Boolean?\n\n difficulty_score Float?\n supportiveness_score Float?\n topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, evaluated_at])\n @@index([organisation_id, interviewer_id, evaluated_at])\n @@index([job_description_id])\n @@index([application_id])\n @@index([organisation_id, hiring_manager_id])\n @@map(\"interview_round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n round_id String\n interview_id String\n application_id String?\n candidate_id String\n job_description_id String\n evaluation_plan_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n department String?\n location String?\n\n round_name String?\n evaluation_category EvaluationCategory?\n round_type RoundType?\n plan_order_no Int?\n plan_type EvaluationPlanType?\n is_custom Boolean @default(false)\n\n interviewer_id String?\n interviewer_employee_id String?\n interviewer_name String?\n\n candidate_name String?\n candidate_email String?\n\n evaluation_type EvaluationType?\n ai_assistance_mode AiAssistanceMode?\n interview_platform InterviewPlatform?\n interview_status InterviewStatus?\n\n scheduled_start_at DateTime?\n scheduled_end_at DateTime?\n actual_start_at DateTime?\n actual_end_at DateTime?\n evaluated_at DateTime?\n first_assigned_at DateTime?\n duration_minutes Int?\n\n human_rating String?\n ai_rating String?\n recommendation InterviewRecommendation?\n ai_disagrees_with_ai Boolean?\n\n difficulty_score Float?\n supportiveness_score Float?\n topics_coverage_percent Float?\n\n @@unique([snapshot_date, interview_id])\n @@index([snapshot_date], map: \"irad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"irad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, interviewer_id], map: \"irad_snapshot_org_interviewer_idx\")\n @@index([snapshot_date, job_description_id], map: \"irad_snapshot_job_idx\")\n @@index([snapshot_date, organisation_id, evaluated_at], map: \"irad_snapshot_org_evaluated_idx\")\n @@map(\"interview_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerOrganisationAnalytics {\n id String @id @default(uuid())\n organisation_id String\n user_id String\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, user_id])\n @@index([organisation_id])\n @@index([organisation_id, user_id])\n @@map(\"interviewer_organisation_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n user_id String\n job_description_id String\n\n hiring_manager_id String?\n department String?\n location String?\n role_title String?\n job_code String?\n opened_at DateTime?\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, user_id, job_description_id])\n @@index([organisation_id, job_description_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, department])\n @@index([organisation_id, location])\n @@index([organisation_id, user_id])\n @@map(\"interviewer_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerOrganisationAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n user_id String\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n @@unique([snapshot_date, organisation_id, user_id])\n @@index([snapshot_date], map: \"ioad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"ioad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, user_id], map: \"ioad_snapshot_org_user_idx\")\n @@map(\"interviewer_organisation_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel InterviewerJobAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n user_id String\n job_description_id String\n\n hiring_manager_id String?\n department String?\n location String?\n role_title String?\n job_code String?\n opened_at DateTime?\n\n name String?\n employee_id String?\n\n interview_count Int @default(0)\n accepted_count Int @default(0)\n rejected_count Int @default(0)\n unsure_count Int @default(0)\n ai_disagreement_count Int @default(0)\n ai_disagreement_percent Float?\n avg_difficulty Float?\n avg_supportiveness Float?\n avg_topics_coverage_percent Float?\n\n @@unique([snapshot_date, organisation_id, user_id, job_description_id])\n @@index([snapshot_date], map: \"ijad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id, job_description_id], map: \"ijad_snapshot_org_job_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"ijad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, department], map: \"ijad_snapshot_org_dept_idx\")\n @@index([snapshot_date, organisation_id, location], map: \"ijad_snapshot_org_loc_idx\")\n @@index([snapshot_date, organisation_id, user_id], map: \"ijad_snapshot_org_user_idx\")\n @@map(\"interviewer_job_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum JobApplicationFieldType {\n TEXT\n NUMBER\n DATE\n BOOLEAN\n MULTI_SELECT\n FILE\n DROP_DOWN\n\n @@schema(\"public\")\n}\n\nmodel JobApplicationField {\n /// Primary key (UUID)\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n template_id String\n /// Data fields\n field_type JobApplicationFieldType\n label String\n description String?\n is_mandatory Boolean @default(false)\n is_draft Boolean @default(true)\n options String[]\n /// Audit fields\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_application_template JobApplicationTemplate @relation(fields: [template_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_application_responses JobApplicationResponse[]\n\n /// Indexes\n @@index([organisation_id, template_id])\n @@schema(\"public\")\n}\n\nmodel JobApplicationResponse {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n application_id String\n job_application_field_id String?\n document_id String?\n /// Answer payload\n response Json?\n /// Denormalized question snapshot (immutable on candidate save)\n field_type JobApplicationFieldType?\n label String?\n description String?\n is_mandatory Boolean?\n is_draft Boolean?\n is_submitted Boolean @default(false)\n options String[]\n updated_by_organisation Boolean @default(false)\n /// Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n /// Relations\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n field JobApplicationField? @relation(fields: [job_application_field_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n document Document? @relation(fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n /// Partial unique on (application_id, job_application_field_id) WHERE job_application_field_id IS NOT NULL — see migration SQL\n @@index([application_id])\n @@index([job_application_field_id])\n @@schema(\"public\")\n}\n\nenum JobApplicationTemplateScope {\n ORGANIZATION\n JOB\n\n @@schema(\"public\")\n}\n\nmodel JobApplicationTemplate {\n /// Primary key\n id String @id @default(uuid())\n /// Foreign keys\n organisation_id String\n job_description_id String? @unique\n /// Data fields\n name String\n description String?\n scope JobApplicationTemplateScope @default(ORGANIZATION)\n /// Audit fields\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Relations\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n fields JobApplicationField[]\n\n /// Indexes\n @@index([organisation_id, scope])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\nenum JobDescriptionStatus {\n CREATED\n DRAFT\n ACTIVE\n DEACTIVATED\n CLOSED\n\n @@schema(\"public\")\n}\n\nmodel JobDescription {\n id String @id @default(uuid())\n organisation_id String\n /// Owning department (visibility scope for DepartmentHead; optional).\n department_id String?\n hiring_manager_id String?\n status JobDescriptionStatus @default(DRAFT)\n screeningQuestions String[]\n recommendedQuestions Json[]\n /// @deprecated Prefer `source_document_id` + `Document` (type JOB_DESCRIPTION).\n uploaded_job_description_path String?\n source_document_id String? @unique\n rendered_jd_document_id String? @unique\n rendered_jd_document Document? @relation(\"RenderedJdDocument\", fields: [rendered_jd_document_id], references: [id], onDelete: SetNull)\n display_html_document_id String? @unique\n display_html_document Document? @relation(\"DisplayHtmlDocument\", fields: [display_html_document_id], references: [id], onDelete: SetNull)\n is_plan_published Boolean @default(false)\n is_posted Boolean @default(false)\n summary Json?\n ai_insight Json?\n job_fit_comparison Json?\n target_closing_date DateTime?\n closing_date DateTime?\n opened_at DateTime?\n\n job_number Int?\n job_code String? @unique\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n openings Int @default(1)\n job_profile_id String?\n job_profile JobProfile? @relation(fields: [job_profile_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n source_document Document? @relation(\"SourceDocument\", fields: [source_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n interviews Interview[]\n assignments Assignment[]\n fit_check FitCheck[] // one-to-many link\n job_description_data JobDescriptionData[] // one-to-many link\n evaluationPlan EvaluationPlan[] // relation to evaluation methods\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n assignment_library AssignmentLibrary[]\n approvals Approval[] // one-to-many relation\n resumes Resume[] // one-to-many link\n budget Budget?\n hiring_manager User? @relation(\"HiringManager\", fields: [hiring_manager_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n recruiters User[]\n transcripts Transcript[]\n integration_job_syncs IntegrationJobSync[]\n job_application_template JobApplicationTemplate?\n offer_letter_templates OfferLetterTemplate[]\n offers Offer[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n /// Plan line this opening is committed against (requisition → plan).\n hiring_plan_line_id String?\n hiring_plan_line HiringPlanLine? @relation(\"PlanLineRequisitions\", fields: [hiring_plan_line_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n /// Plan lines that use this JD as the role template/reference.\n referenced_by_plan_lines HiringPlanLine[] @relation(\"PlanLineTemplateJd\")\n\n @@index([organisation_id])\n @@index([hiring_manager_id])\n @@index([job_profile_id])\n @@index([hiring_plan_line_id])\n @@index([department_id])\n @@index([organisation_id, status])\n @@schema(\"public\")\n}\n\nmodel JobDescriptionData {\n id String @id @default(uuid())\n job_description_id String\n key String\n value String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n jobDescription JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([job_description_id, key])\n @@schema(\"public\")\n}\n\nenum JobProfileStatus {\n DRAFT\n INTAKE_SENT\n INTAKE_IN_PROGRESS\n COMPLETE\n\n @@schema(\"public\")\n}\n\nmodel JobProfile {\n id String @id @default(uuid())\n organisation_id String\n hiring_manager_id String?\n department_id String?\n assigned_to String?\n status JobProfileStatus @default(DRAFT)\n title String?\n /// Requisition reason: new / replacement / backfill (not the seniority ladder).\n role_type String?\n /// Seniority ladder (JobRoleLevel), e.g. TRAINEE, SENIOR_IC, CXO.\n job_role_level String?\n work_arrangement String? // onsite / hybrid / remote\n employment_type String? // full_time / part_time / contract / internship\n /// ISO 3166-1 alpha-2 (e.g. IN). Currency is derived in the UI from this.\n country_code String @default(\"IN\")\n /// CSC state iso2 (unique with country_code).\n state_code String?\n /// City display name from CSC (not a code).\n city String?\n /// @deprecated Use `city` + `state_code`. Not written by new setup/PATCH paths.\n location String?\n experience String?\n experience_min String?\n comp_range String?\n budget String?\n openings Int @default(1)\n responsibilities Json?\n must_have_skills Json?\n nice_to_have_skills Json?\n culture Json?\n competencies Json?\n conversation_history Json?\n orion_execution_id String?\n created_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n department Department? @relation(fields: [department_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n hiring_manager User? @relation(\"JobProfileHiringManager\", fields: [hiring_manager_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n creator User @relation(\"ProfileCreator\", fields: [created_by], references: [id], onDelete: Restrict, onUpdate: Cascade)\n assignee User? @relation(\"ProfileAssignee\", fields: [assigned_to], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_descriptions JobDescription[]\n\n @@index([organisation_id])\n @@index([hiring_manager_id])\n @@index([assigned_to])\n @@index([created_by])\n @@index([department_id])\n @@schema(\"public\")\n}\n\nmodel JobRoundAnalytics {\n id String @id @default(uuid())\n\n organisation_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_name String\n\n evaluation_category EvaluationCategory?\n\n job_code String?\n\n role_title String?\n\n hiring_manager_id String?\n\n plan_order_no Int?\n\n plan_type EvaluationPlanType?\n\n is_custom Boolean @default(false)\n\n assigned_count Int @default(0)\n\n completed_count Int @default(0)\n\n passed_count Int @default(0)\n\n failed_count Int @default(0)\n\n withdrawn_count Int @default(0)\n\n no_show_count Int @default(0)\n\n total_completion_minutes BigInt @default(0)\n\n avg_completion_minutes Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([job_description_id, evaluation_plan_id])\n @@index([organisation_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([job_description_id])\n @@schema(\"analytics\")\n}\n\nmodel JobRoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n organisation_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_name String\n\n evaluation_category EvaluationCategory?\n\n job_code String?\n\n role_title String?\n\n hiring_manager_id String?\n\n plan_order_no Int?\n\n plan_type EvaluationPlanType?\n\n is_custom Boolean @default(false)\n\n assigned_count Int @default(0)\n\n completed_count Int @default(0)\n\n passed_count Int @default(0)\n\n failed_count Int @default(0)\n\n withdrawn_count Int @default(0)\n\n no_show_count Int @default(0)\n\n total_completion_minutes BigInt @default(0)\n\n avg_completion_minutes Float?\n\n @@unique([snapshot_date, job_description_id, evaluation_plan_id])\n @@index([snapshot_date], map: \"jrad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"jrad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"jrad_snapshot_org_hm_idx\")\n @@index([snapshot_date, job_description_id], map: \"jrad_snapshot_job_idx\")\n @@map(\"job_round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel LiveAnalysis {\n id String @id @default(uuid())\n //foreign keys\n interview_id String\n //data\n analysis Json\n //audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n //relations\n interview Interview @relation(fields: [interview_id], references: [id])\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nmodel Message {\n id String @id @default(uuid())\n sender_id String\n receiver_id String\n message String\n\n sender User @relation(\"Sent Messages\", fields: [sender_id], references: [id])\n receiver User @relation(\"Received Messages\", fields: [receiver_id], references: [id])\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n @@schema(\"public\")\n}\n\nmodel Notes {\n id String @id @default(uuid())\n application_id String\n user_id String\n note String\n pinned Boolean @default(false)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([application_id, created_at])\n @@index([user_id, created_at])\n @@schema(\"public\")\n}\n\nenum OfferLetterStatus {\n /// Current issued letter for the offer (at most one per offer; app-enforced).\n ACTIVE\n /// Replaced by a newer version; PDF remains immutable.\n SUPERSEDED\n\n @@schema(\"public\")\n}\n\nenum OfferWithdrawReason {\n ROLE_CLOSED\n CANDIDATE_ACCEPTED_ELSEWHERE\n BUDGET\n MISFIT\n OTHER\n\n @@schema(\"public\")\n}\n\nenum OfferWithdrawActor {\n CANDIDATE\n ORGANISATION\n\n @@schema(\"public\")\n}\n\nenum OfferNoShowReason {\n ACCEPTED_ELSEWHERE\n OTHER\n\n @@schema(\"public\")\n}\n\nenum OfferLetterTemplateScope {\n ORGANIZATION\n JOB\n\n @@schema(\"public\")\n}\n\nenum WorkMode {\n REMOTE\n OFFICE\n HYBRID\n\n @@schema(\"public\")\n}\n\nmodel OfferLetterTemplate {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String?\n name String\n description String?\n /// Current DOCX template Document\n document_id String\n /// Matching HTML/Handlebars twin Document (same merge fields)\n html_document_id String?\n /// Org-editable section visibility + default section copy (not free-form HTML)\n template_config Json @default(\"{}\")\n /// Incremented when HM uploads new DOCX/HTML.\n version Int @default(1)\n scope OfferLetterTemplateScope @default(ORGANIZATION)\n is_default Boolean @default(false)\n is_active Boolean @default(true)\n /// Drafts (JOB or ORGANIZATION) are hidden from JD Apply / Make Offer until activated (is_draft=false).\n is_draft Boolean @default(false)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n document Document @relation(\"OfferLetterTemplateDocx\", fields: [document_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n html_document Document? @relation(\"OfferLetterTemplateHtml\", fields: [html_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n offers Offer[]\n offer_letters OfferLetter[]\n\n @@index([organisation_id, scope])\n @@index([job_description_id])\n @@index([job_description_id, is_draft])\n @@index([document_id])\n @@index([html_document_id])\n @@schema(\"public\")\n}\n\n/// Offer is a data container: terms, letter versions, timeline audit.\n/// Lifecycle lives on Application.offer_substatus — no status enum here.\nmodel Offer {\n id String @id @default(uuid())\n application_id String @unique\n organisation_id String\n candidate_id String\n job_description_id String\n template_id String?\n letter_version_count Int @default(0)\n /// FK to latest ACTIVE letter; null when NEGOTIATING (v(N) superseded, v(N+1) not generated yet) or PREPARING (no letter yet).\n current_offer_letter_id String?\n /// Merge payload: CTC, joining date, role title, location, etc.\n /// Single structured source of truth — no denormalized term columns.\n terms Json @default(\"{}\")\n /// Draft offer-scoped HTML snapshot (never mutates OfferLetterTemplate).\n draft_edited_html_document_id String?\n /// Staff clicked \"Mark as sent\" (letter is out with candidate).\n sent_at DateTime?\n /// First accept / decline recorded on the Offer.\n responded_at DateTime?\n accepted_at DateTime?\n declined_at DateTime?\n withdrawn_at DateTime?\n joined_at DateTime?\n no_show_at DateTime?\n withdraw_reason OfferWithdrawReason?\n withdraw_note String?\n withdraw_actor OfferWithdrawActor?\n no_show_reason OfferNoShowReason?\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User @relation(\"OfferCandidate\", fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n template OfferLetterTemplate? @relation(fields: [template_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n draft_edited_html_document Document? @relation(\"OfferDraftEditedHtml\", fields: [draft_edited_html_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n current_offer_letter OfferLetter? @relation(\"OfferCurrentLetter\", fields: [current_offer_letter_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n letters OfferLetter[] @relation(\"OfferLetters\")\n\n @@index([organisation_id])\n @@index([candidate_id])\n @@index([job_description_id])\n @@index([current_offer_letter_id])\n @@index([draft_edited_html_document_id])\n @@schema(\"public\")\n}\n\nmodel OfferLetter {\n id String @id @default(uuid())\n offer_id String\n version Int\n /// Business lifecycle — distinct from is_active (soft-delete only).\n status OfferLetterStatus @default(ACTIVE)\n /// Generated PDF Document\n document_id String @unique\n template_id String?\n /// Snapshot of template Document used at render time\n template_document_id String?\n /// Snapshot of OfferLetterTemplate.version at render time\n template_version Int?\n /// When staff clicked \"Generate letter\" — the PDF was rendered and the DOCX downloaded.\n generated_at DateTime?\n /// Free-form note attached at generation time (e.g. \"Revised for updated CTC\").\n generation_note String?\n /// Soft-delete only — never infer supersession from is_active.\n is_active Boolean @default(true)\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n offer Offer @relation(\"OfferLetters\", fields: [offer_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n current_for_offer Offer[] @relation(\"OfferCurrentLetter\")\n document Document @relation(\"OfferLetterPdf\", fields: [document_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n template OfferLetterTemplate? @relation(fields: [template_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n template_document Document? @relation(\"OfferLetterTemplateSnapshot\", fields: [template_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([offer_id, version])\n @@index([offer_id])\n @@index([offer_id, status])\n @@index([template_id])\n @@schema(\"public\")\n}\n\nenum OngoingEvaluationState {\n NOT_STARTED\n IN_PROGRESS\n CLEARED\n SKIPPED\n NOT_CLEARED\n\n @@schema(\"public\")\n}\n\nenum OngoingEvaluationRoundStatus {\n NOT_SCHEDULED\n REQUESTED_SCHEDULING\n SCHEDULED\n IN_PROGRESS\n PENDING_EVALUATION\n EVALUATED\n\n @@schema(\"public\")\n}\n\nmodel OngoingEvaluation {\n // Primary Key\n id String @id @default(uuid())\n // Foreign Keys \n organisation_id String\n application_id String\n candidate_id String\n resume_id String\n job_description_id String\n evaluation_plan_id String\n interview_id String? @unique\n assignment_id String? @unique\n assessment_id String? @unique\n // Data Fields\n state OngoingEvaluationState? @default(NOT_STARTED)\n round_status OngoingEvaluationRoundStatus? @default(NOT_SCHEDULED)\n comments String? @default(\"\")\n completed_at DateTime?\n assigned_at DateTime?\n result_at DateTime?\n is_committed Boolean?\n /// Evaluation Plan Fields Filled After Round Started\n title String?\n description String?\n order_no Int?\n round_purpose String?\n focus_areas String[]\n topics String[]\n assignee String?\n elimination_round Boolean? @default(false)\n evaluation_type EvaluationType?\n type_of_round RoundType?\n duration Int?\n deadline Int?\n duration_unit DurationUnit?\n details Json?\n category EvaluationCategory?\n // Audit Fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n is_current Boolean @default(false)\n // Relations\n jobDescription JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull)\n application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n resume Resume? @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n evaluation_plan EvaluationPlan @relation(fields: [evaluation_plan_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n assignment Assignment?\n assessment Assessment? @relation(fields: [assessment_id], references: [id], onDelete: SetNull)\n\n @@unique([application_id, evaluation_plan_id])\n @@index([application_id])\n @@index([evaluation_plan_id])\n @@index([application_id, is_active, state])\n @@index([job_description_id, state, round_status])\n @@schema(\"public\")\n}\n\nmodel OpenJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n role_title String?\n department String?\n hiring_manager_id String?\n hiring_manager_name String?\n location String?\n compensation String?\n vacancies Int @default(1)\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n application_count Int @default(0)\n unscreened_count Int @default(0)\n ongoing_count Int @default(0)\n selected_count Int @default(0)\n offer_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n withdrawn_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id, is_open])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, opened_at])\n @@index([organisation_id, job_number])\n @@index([organisation_id, is_open, closure_type, closing_date])\n @@index([job_description_id])\n @@map(\"open_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel OpenJobAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n\n job_code String?\n job_number Int?\n role_title String?\n department String?\n hiring_manager_id String?\n hiring_manager_name String?\n location String?\n compensation String?\n vacancies Int @default(1)\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n application_count Int @default(0)\n unscreened_count Int @default(0)\n ongoing_count Int @default(0)\n selected_count Int @default(0)\n offer_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n withdrawn_count Int @default(0)\n\n @@unique([snapshot_date, job_description_id])\n @@index([snapshot_date], map: \"ojad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id, is_open], map: \"ojad_snapshot_org_open_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"ojad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, opened_at], map: \"ojad_snapshot_org_opened_idx\")\n @@index([snapshot_date, organisation_id, job_number], map: \"ojad_snapshot_org_job_num_idx\")\n @@index([snapshot_date, job_description_id], map: \"ojad_snapshot_job_idx\")\n @@map(\"open_job_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum OrganisationSize {\n ONE_TO_TEN @map(\"1-10\")\n ELEVEN_TO_FIFTY @map(\"11-50\")\n FIFTY_ONE_TO_TWO_HUNDRED @map(\"51-200\")\n TWO_HUNDRED_ONE_TO_FIVE_HUNDRED @map(\"201-500\")\n FIVE_HUNDRED_PLUS @map(\"500+\")\n\n @@schema(\"public\")\n}\n\nmodel Organisation {\n id String @id @default(uuid())\n name String @unique\n industry String\n about String\n website String\n size OrganisationSize @default(ONE_TO_TEN)\n phone String\n address String\n company_values Json[]\n allowed_email_domains String[]\n send_email Boolean @default(true)\n interviewers User[]\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n alias String? @unique\n logo String?\n job_sequence Int @default(1)\n employee_sequence Int @default(1)\n applications Application[]\n user_roles UserRole[]\n job_descriptions JobDescription[]\n job_profiles JobProfile[]\n assessment_library AssessmentLibrary[]\n assignment_library AssignmentLibrary[]\n interviews Interview[]\n assignments Assignment[]\n fit_check FitCheck[] // one-to-many link\n resumes Resume[] // one-to-many link\n approvals Approval[] // one-to-many link\n suggestions Suggestion[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n actions Action[]\n integration_credentials IntegrationCredential[]\n zoho_sync_mappings ZohoSyncMapping[]\n assessments Assessment[]\n timezone String @default(\"Asia/Kolkata\")\n /// ISO 3166-1 alpha-2 (e.g. IN).\n country_code String @default(\"IN\")\n organisation_configs OrganisationConfig[]\n activity_events ActivityEvent[]\n usage_ledger_entries UsageLedgerEntry[]\n usage_aggregates UsageAggregate[]\n channel_provider_configs ChannelProviderConfig[]\n conversations Conversation[]\n communication_messages CommunicationMessage[]\n job_application_fields JobApplicationField[]\n documents Document[]\n job_application_templates JobApplicationTemplate[]\n offer_letter_templates OfferLetterTemplate[]\n offers Offer[]\n sources Source[]\n evaluation_criteria EvaluationCriteria[]\n departments Department[]\n hiring_plans HiringPlan[]\n employees Employee[]\n competency_dictionaries CompetencyDictionary[]\n billing_transactions BillingTransaction[]\n payment_webhook_events PaymentWebhookEvent[]\n\n @@index([name])\n @@schema(\"public\")\n}\n\nmodel OrganisationConfig {\n id String @id @default(uuid())\n organisation_id String\n config_key String\n value Json\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@unique([organisation_id, config_key])\n @@map(\"organisationConfig\")\n @@schema(\"public\")\n}\n\n// PAYMENT SERVICE boundary — portable payment microservice owns these enums/columns.\n\nenum BillingTransactionStatus {\n INITIATED\n ORDER_CREATED\n PAYMENT_PENDING\n SUCCESS\n FAILED\n CANCELLED\n REFUND_PENDING\n REFUND_FAILED\n REFUNDED\n\n @@schema(\"public\")\n}\n\nenum BillingTransactionType {\n PURCHASE\n TOP_UP\n REFUND\n\n @@schema(\"public\")\n}\n\nenum BillingTransactionFailureCategory {\n RAZORPAY_ORDER\n RAZORPAY_PAYMENT\n REFUND\n INTERNAL\n\n @@schema(\"public\")\n}\n\n/// Payment reconciliation state when Treadspace status is FAILED but Razorpay captured payment.\nenum BillingPaymentMismatchStatus {\n DETECTED\n UNFULFILLED\n\n @@schema(\"public\")\n}\n\n/// Financial transaction lifecycle for organisation billing purchases.\nmodel BillingTransaction {\n id String @id @default(uuid())\n organisation_id String\n /// Opaque plan/product identity supplied at checkout. Not a catalog FK.\n purchase_reference String\n /// Human-readable snapshot captured at checkout for invoices and receipts.\n purchase_display_name String?\n transaction_type BillingTransactionType\n status BillingTransactionStatus @default(INITIATED)\n failure_category BillingTransactionFailureCategory?\n /// Human-readable or provider detail (e.g. Razorpay error_description).\n failure_reason String?\n amount Int\n currency String @default(\"INR\")\n razorpay_order_id String?\n razorpay_payment_id String? @unique\n /// Razorpay payment method at capture (card, netbanking, upi, wallet, etc.).\n payment_method String?\n razorpay_subscription_id String?\n razorpay_refund_id String?\n refund_reason String?\n refund_amount Int?\n idempotency_key String @unique\n invoice_number String? @unique\n /// Email of the org Admin who initiated checkout (bill-to).\n purchaser_email String?\n /// Set when FAILED but Razorpay order/payment is captured (reconciliation path).\n payment_mismatch_status BillingPaymentMismatchStatus?\n /// Strict same-intent SUCCESS transaction that fulfilled the purchase (UNFULFILLED only).\n payment_mismatch_fulfilled_by_id String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id])\n\n @@index([organisation_id, status])\n @@index([purchase_reference])\n @@index([razorpay_order_id])\n @@map(\"billing_transactions\")\n @@schema(\"public\")\n}\n\nenum PaymentWebhookEventStatus {\n RECEIVED\n PROCESSED\n FAILED\n\n @@schema(\"public\")\n}\n\n/// Idempotent record of payment provider webhook deliveries.\nmodel PaymentWebhookEvent {\n id String @id @default(uuid())\n organisation_id String?\n provider String\n provider_event_id String\n event_type String\n status PaymentWebhookEventStatus @default(RECEIVED)\n billing_transaction_id String?\n error_message String?\n processed_at DateTime?\n created_at DateTime @default(now())\n\n organisation Organisation? @relation(fields: [organisation_id], references: [id])\n\n @@unique([provider, provider_event_id])\n @@index([status, created_at])\n @@map(\"payment_webhook_events\")\n @@schema(\"public\")\n}\n\nmodel Permission {\n id String @id @default(uuid())\n permissions String[] @default([])\n created_by String?\n updated_by String?\n updated_at DateTime @updatedAt\n created_at DateTime @default(now())\n is_active Boolean @default(true)\n user User?\n user_roles UserRole?\n\n @@index([created_at])\n @@schema(\"public\")\n}\n\nmodel PipelineDistributionAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n application_count Int @default(0)\n filtered_in_count Int @default(0)\n min_fit_score Float?\n\n screening_count Int @default(0)\n business_screening_count Int @default(0)\n business_round_count Int @default(0)\n behavioral_round_count Int @default(0)\n\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([organisation_id, job_number])\n @@index([job_description_id])\n @@map(\"pipeline_distribution_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel PipelineDistributionAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n application_count Int @default(0)\n filtered_in_count Int @default(0)\n min_fit_score Float?\n\n screening_count Int @default(0)\n business_screening_count Int @default(0)\n business_round_count Int @default(0)\n behavioral_round_count Int @default(0)\n\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n\n @@unique([snapshot_date, job_description_id])\n @@index([snapshot_date], map: \"pdad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"pdad_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"pdad_snapshot_org_hm_idx\")\n @@index([snapshot_date, organisation_id, job_number], map: \"pdad_snapshot_org_job_num_idx\")\n @@index([snapshot_date, job_description_id], map: \"pdad_snapshot_job_idx\")\n @@map(\"pipeline_distribution_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nenum AsyncOperationStatus {\n PENDING\n IN_PROGRESS\n SUCCESS\n FAILED\n RETRYING\n CANCELLED\n\n @@schema(\"public\")\n}\n\nmodel AsyncOperation {\n id String @id @default(uuid())\n // Identification\n operation_name String\n // Status tracking\n status AsyncOperationStatus @default(PENDING)\n started_at DateTime?\n completed_at DateTime?\n // Execution metadata\n payload Json?\n metadata Json?\n // Tracing\n correlationId String?\n sourceService String?\n // Retry information\n retry_count Int @default(0)\n max_retries Int @default(0)\n next_retry_at DateTime?\n // Error information\n error_message String?\n error_details String?\n // Audit fields\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n\n @@index([status])\n @@index([operation_name])\n @@index([correlationId])\n @@schema(\"public\")\n}\n\nenum Difficulty {\n EASY // simple/basic questions\n MEDIUM // moderate difficulty\n HARD // challenging questions\n\n @@schema(\"public\")\n}\n\nmodel Question {\n id String @id @default(uuid())\n assessment_library_id String?\n evaluation_plan_id String?\n candidate_id String?\n skill String?\n question String\n answer String\n options String[] // For MCQ's\n max_score Float?\n difficulty Difficulty?\n created_by String\n updated_by String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n is_active Boolean @default(true)\n candidate User? @relation(fields: [candidate_id], references: [id], onDelete: SetNull)\n assessments AssessmentQuestion[] @relation(\"QuestionToAssessmentQuestion\")\n assessmentLibrary AssessmentLibrary? @relation(fields: [assessment_library_id], references: [id], onDelete: Cascade)\n evaluationPlan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull)\n candidateResponse CandidateQuestionResponse[]\n\n @@schema(\"public\")\n}\n\nmodel RefreshToken {\n id String @id @default(uuid())\n user_id String\n token String @unique\n is_active Boolean @default(true)\n expires_at DateTime\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n user User @relation(\"TokenRefresh\", fields: [user_id], references: [id], onDelete: Cascade)\n\n @@schema(\"public\")\n}\n\nenum OpenJobClosureType {\n FILLED\n CANCELLED\n\n @@schema(\"analytics\")\n}\n\nmodel ReportingOverviewJobAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String @unique\n\n job_code String?\n job_number Int?\n hiring_manager_id String?\n\n opened_at DateTime\n target_closing_date DateTime?\n closing_date DateTime?\n is_open Boolean @default(true)\n\n closure_type OpenJobClosureType?\n time_to_hire_days Int?\n\n in_consideration_count Int @default(0)\n\n updated_at DateTime @updatedAt\n\n recruiters ReportingOverviewJobRecruiter[]\n\n @@index([organisation_id, is_open])\n @@index([organisation_id, hiring_manager_id, is_open])\n @@index([organisation_id, closing_date, closure_type])\n @@map(\"reporting_overview_job_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel ReportingOverviewJobRecruiter {\n id String @id @default(uuid())\n job_description_id String\n recruiter_user_id String\n\n job ReportingOverviewJobAnalytics @relation(fields: [job_description_id], references: [job_description_id], onDelete: Cascade)\n\n @@unique([job_description_id, recruiter_user_id])\n @@index([recruiter_user_id])\n @@map(\"reporting_overview_job_recruiters\")\n @@schema(\"analytics\")\n}\n\nmodel Resume {\n id String @id @default(uuid())\n user_id String?\n organisation_id String?\n job_description_id String?\n /// @deprecated Prefer `document_id` + `Document`. Kept until backfill completes.\n uploaded_resume_path String?\n document_id String? @unique\n /// Latest ATS template export (PDF). Null until first successful export.\n rendered_export_document_id String? @unique\n /// Last chosen ATS layout template id (e.g. ats-classic). Set on first export.\n resume_template_id String?\n /// @deprecated Prefer `Document.file_hash`. Kept for legacy read fallback.\n file_hash String?\n summary Json?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n name String?\n user User? @relation(fields: [user_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n document Document? @relation(\"ResumeSourceDocument\", fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n rendered_export_document Document? @relation(\"RenderedResumeExport\", fields: [rendered_export_document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n interviews Interview[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n\n resume_data ResumeData[] // one-to-many link\n fit_check FitCheck[] // one-to-many link\n // inverse side of the relation — no foreign key here\n candidate_profile CandidateProfile? // one-to-one link\n yearsOfExperience Int?\n\n @@index([user_id])\n @@index([file_hash])\n @@schema(\"public\")\n}\n\nmodel ResumeData {\n id String @id @default(uuid())\n resume_id String\n key String\n value String\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n @@index([created_at])\n @@schema(\"public\")\n}\n\nenum RoundResult {\n PASSED\n FAILED\n\n @@schema(\"analytics\")\n}\n\nmodel RoundAnalytics {\n id String @id @default(uuid())\n\n // Core Dimensions\n organisation_id String\n\n application_id String\n\n candidate_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_id String @unique\n\n // Round Information\n round_name String?\n\n evaluation_category EvaluationCategory?\n\n round_type RoundType?\n\n // Lifecycle Timestamps\n assigned_at DateTime?\n\n scheduled_at DateTime?\n\n started_at DateTime?\n\n completed_at DateTime?\n\n evaluated_at DateTime?\n\n round_completed_at DateTime?\n round_created_at DateTime?\n\n // Decision\n round_result RoundResult?\n\n round_result_at DateTime?\n\n // Derived Metrics\n scheduling_duration_minutes Int?\n\n round_duration_minutes Int?\n\n feedback_duration_minutes Int?\n\n decision_duration_minutes Int?\n\n total_round_duration_minutes Int?\n\n is_custom Boolean @default(false)\n\n // Audit\n created_at DateTime @default(now())\n\n updated_at DateTime @updatedAt\n\n @@index([organisation_id])\n @@index([job_description_id])\n @@index([application_id])\n @@index([candidate_id])\n @@index([evaluation_category])\n @@index([round_result])\n @@map(\"round_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel RoundAnalyticsDaily {\n id String @id @default(uuid())\n\n snapshot_date DateTime @db.Date\n\n // Core Dimensions\n organisation_id String\n\n application_id String\n\n candidate_id String\n\n job_description_id String\n\n evaluation_plan_id String\n\n round_id String\n\n // Round Information\n round_name String?\n\n evaluation_category EvaluationCategory?\n\n round_type RoundType?\n\n // Lifecycle Timestamps\n assigned_at DateTime?\n\n scheduled_at DateTime?\n\n started_at DateTime?\n\n completed_at DateTime?\n\n evaluated_at DateTime?\n\n round_completed_at DateTime?\n round_created_at DateTime?\n\n // Decision\n round_result RoundResult?\n\n round_result_at DateTime?\n\n // Derived Metrics\n scheduling_duration_minutes Int?\n\n round_duration_minutes Int?\n\n feedback_duration_minutes Int?\n\n decision_duration_minutes Int?\n\n total_round_duration_minutes Int?\n\n is_custom Boolean @default(false)\n\n @@unique([snapshot_date, round_id])\n @@index([snapshot_date], map: \"rad_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"rad_snapshot_org_idx\")\n @@index([snapshot_date, job_description_id], map: \"rad_snapshot_job_idx\")\n @@index([snapshot_date, application_id], map: \"rad_snapshot_app_idx\")\n @@index([snapshot_date, candidate_id], map: \"rad_snapshot_candidate_idx\")\n @@index([snapshot_date, evaluation_category], map: \"rad_snapshot_eval_cat_idx\")\n @@index([snapshot_date, round_result], map: \"rad_snapshot_round_result_idx\")\n @@map(\"round_analytics_daily\")\n @@schema(\"analytics\")\n}\n\n// This is your Prisma schema file,\n// learn more about it in the docs: https://pris.ly/d/prisma-schema\n\n// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?\n// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init\n\ngenerator client {\n provider = \"prisma-client-js\"\n output = \"../../client\"\n binaryTargets = [\"native\", \"linux-arm64-openssl-1.1.x\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"DATABASE_URL\")\n\n schemas = [\"public\", \"analytics\", \"usage\"]\n}\n\nenum SourceCategory {\n JOB_BOARD\n REFERRAL\n AGENCY\n SOCIAL_MEDIA\n CAREERS_PAGE\n EVENT\n OTHER\n\n @@schema(\"public\")\n}\n\nmodel Source {\n id String @id @default(uuid())\n organisation_id String\n name String\n category SourceCategory?\n parent_source_id String?\n colour String?\n description String?\n is_active Boolean @default(true)\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n parent Source? @relation(\"SourceHierarchy\", fields: [parent_source_id], references: [id], onDelete: SetNull)\n children Source[] @relation(\"SourceHierarchy\")\n applications Application[]\n\n @@unique([organisation_id, name])\n @@index([organisation_id])\n @@index([organisation_id, category])\n @@index([organisation_id, is_active])\n @@index([parent_source_id])\n @@schema(\"public\")\n}\n\nmodel SourceEffectivenessAnalytics {\n id String @id @default(uuid())\n organisation_id String\n job_description_id String\n source_id String\n\n source_name String\n source_category SourceCategory?\n source_colour String?\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n applications_count Int @default(0)\n screened_count Int @default(0)\n evaluated_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n hired_count Int @default(0)\n\n total_fit_score Float @default(0)\n fit_score_sample_count Int @default(0)\n average_fit_score Float?\n\n updated_at DateTime @updatedAt\n\n @@unique([organisation_id, job_description_id, source_id])\n @@index([organisation_id])\n @@index([organisation_id, source_id])\n @@index([organisation_id, hiring_manager_id])\n @@index([job_description_id])\n @@map(\"source_effectiveness_analytics\")\n @@schema(\"analytics\")\n}\n\nmodel SourceEffectivenessAnalyticsDaily {\n id String @id @default(uuid())\n snapshot_date DateTime @db.Date\n organisation_id String\n job_description_id String\n source_id String\n\n source_name String\n source_category SourceCategory?\n source_colour String?\n job_code String?\n job_number Int?\n role_title String?\n hiring_manager_id String?\n\n applications_count Int @default(0)\n screened_count Int @default(0)\n evaluated_count Int @default(0)\n rejected_count Int @default(0)\n on_hold_count Int @default(0)\n shortlisted_count Int @default(0)\n offered_count Int @default(0)\n offer_accepted_count Int @default(0)\n offer_declined_count Int @default(0)\n withdrawn_count Int @default(0)\n hired_count Int @default(0)\n\n total_fit_score Float @default(0)\n fit_score_sample_count Int @default(0)\n average_fit_score Float?\n\n @@unique([snapshot_date, organisation_id, job_description_id, source_id])\n @@index([snapshot_date], map: \"sead_snapshot_date_idx\")\n @@index([snapshot_date, organisation_id], map: \"sead_snapshot_org_idx\")\n @@index([snapshot_date, organisation_id, source_id], map: \"sead_snapshot_org_source_idx\")\n @@index([snapshot_date, organisation_id, hiring_manager_id], map: \"sead_snapshot_org_hm_idx\")\n @@index([snapshot_date, job_description_id], map: \"sead_snapshot_job_idx\")\n @@map(\"source_effectiveness_analytics_daily\")\n @@schema(\"analytics\")\n}\n\nmodel Suggestion {\n id String @id @default(uuid())\n interview_id String?\n transcript_id String? @unique // ✅ ensures one-to-one\n organisation_id String\n suggestion String?\n question String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n\n // Relations\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull)\n transcripts Transcript[]\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade)\n\n @@index([interview_id])\n @@schema(\"public\")\n}\n\nmodel Transcript {\n id String @id @default(uuid())\n interview_id String?\n suggestion_id String?\n intermediate_feedback_id String?\n job_description_id String?\n interviewer_timestamp DateTime?\n candidate_timestamp DateTime?\n interviewer String\n candidate String\n order_no Int @default(autoincrement())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n // Relations\n interview Interview? @relation(fields: [interview_id], references: [id], onDelete: SetNull, onUpdate: SetNull)\n suggestion Suggestion? @relation(fields: [suggestion_id], references: [id], onDelete: SetNull)\n job_description JobDescription? @relation(fields: [job_description_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n\n @@unique([interview_id, order_no])\n @@index([interview_id])\n @@index([job_description_id])\n @@schema(\"public\")\n}\n\n/// Orion workflow names bundled in license — excluded from ai.cost metering.\n/// Future license plans will reference subsets of this catalogue.\nmodel LicenseIncludedWorkflow {\n id String @id @default(uuid())\n workflow_name String @unique\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n @@map(\"license_included_workflows\")\n @@schema(\"usage\")\n}\n\nmodel UsageAggregate {\n id String @id @default(uuid())\n organisation_id String\n metric_key String\n dimension_hash String\n dimensions Json\n total_quantity Decimal\n period_start DateTime?\n period_end DateTime?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n metric UsageMetricDefinition @relation(fields: [metric_key], references: [key], onDelete: Restrict, onUpdate: Cascade)\n\n @@unique([organisation_id, metric_key, dimension_hash, period_start])\n @@index([organisation_id, metric_key])\n @@map(\"usage_aggregates\")\n @@schema(\"usage\")\n}\n\nenum UsageUnit {\n COUNT\n BYTES\n SECONDS\n TOKENS\n COST\n\n @@schema(\"usage\")\n}\n\nenum UsageAggregationType {\n SUM\n GAUGE\n\n @@schema(\"usage\")\n}\n\nenum UsageSourceType {\n activity_event\n usage_publisher\n reconcile\n\n @@schema(\"usage\")\n}\n\nmodel UsageLedgerEntry {\n id String @id @default(uuid())\n organisation_id String\n metric_key String\n quantity Decimal @db.Decimal(20, 4)\n occurred_at DateTime\n dimensions Json\n idempotency_key String @unique\n source_type UsageSourceType\n source_id String?\n resource_type String?\n resource_id String?\n created_at DateTime @default(now())\n updated_at DateTime @default(now()) @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n metric UsageMetricDefinition @relation(fields: [metric_key], references: [key], onDelete: Restrict, onUpdate: Cascade)\n\n @@index([organisation_id, metric_key, occurred_at])\n @@index([organisation_id, occurred_at])\n @@map(\"usage_ledger\")\n @@schema(\"usage\")\n}\n\nmodel UsageMetricDefinition {\n id String @id @default(uuid())\n key String @unique\n name String\n unit UsageUnit\n aggregation_type UsageAggregationType\n metadata Json?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String @default(\"system\")\n updated_by String @default(\"system\")\n is_active Boolean @default(true)\n\n ledger_entries UsageLedgerEntry[]\n aggregates UsageAggregate[]\n\n @@map(\"usage_metric_definitions\")\n @@schema(\"usage\")\n}\n\nenum FirstLoginStatus {\n PENDING\n COMPLETED\n\n @@schema(\"public\")\n}\n\nenum UserInvitationStatus {\n INVITED\n ACCEPTED\n EXPIRED\n\n @@schema(\"public\")\n}\n\nmodel User {\n id String @id @default(uuid())\n email String @unique\n password String\n role_id String\n role UserRole @relation(fields: [role_id], references: [id], onDelete: Restrict, onUpdate: Cascade)\n organisation_id String?\n // Back-relations are defined from Resume side via user_id\n google_id String? @unique\n refresh_token String?\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n is_active Boolean @default(true)\n is_self_registered Boolean @default(true)\n permission_id String? @unique\n preferences Json? @default(\"{}\")\n invitation_status UserInvitationStatus @default(INVITED)\n invited_at DateTime? @default(now())\n invitation_expires_at DateTime?\n invitation_accepted_at DateTime?\n permission Permission? @relation(fields: [permission_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: SetNull, onUpdate: Cascade)\n applications Application[]\n resume Resume[]\n candidate_profile CandidateProfile?\n user_profile UserProfile?\n job_description JobDescription[]\n hiring_manager_job_descriptions JobDescription[] @relation(\"HiringManager\")\n hiring_manager_job_profiles JobProfile[] @relation(\"JobProfileHiringManager\")\n approvals Approval[]\n sent_messages Message[] @relation(\"Sent Messages\")\n received_messages Message[] @relation(\"Received Messages\")\n profile_created Boolean\n first_login_status FirstLoginStatus @default(PENDING)\n // Back-relations for interviews (optional but recommended for clarity)\n candidate_interviews Interview[] @relation(\"CandidateInterviews\")\n interviewer_interviews Interview[] @relation(\"InterviewerInterviews\")\n assessment_results Assessment[]\n candidate_assessments Assessment[] @relation(\"CandidateAssessments\")\n reviewer_assessments Assessment[] @relation(\"ReviewerAssessments\")\n candidate_assignments Assignment[] @relation(\"CandidateAssignments\")\n reviewer_assignments Assignment[] @relation(\"AssignmentReviewer\")\n candidateResponses CandidateQuestionResponse[]\n questions Question[]\n ongoing_evaluations OngoingEvaluation[] // optional one-to-many\n actor_activity_logs ActivityLog[] @relation(\"ActorActivityLogs\")\n actions Action[]\n calendly Calendly?\n google Google?\n fitChecks FitCheck[]\n created_job_profiles JobProfile[] @relation(\"ProfileCreator\")\n assigned_job_profiles JobProfile[] @relation(\"ProfileAssignee\")\n user_auth_modules AuthModule[] @relation(\"UserAuthModule\")\n refresh_token_auth RefreshToken[] @relation(\"TokenRefresh\")\n zoom_meeting_participants ZoomMeetingParticipant[]\n notes Notes[]\n recruiter_applications Application[] @relation(\"ApplicationRecruiter\")\n\n name String?\n phone String?\n description String?\n date_of_birth DateTime?\n designation String?\n location String?\n salary String?\n work_experience Json?\n education Json?\n skills Json?\n notice_period String?\n preferred_work_mode String?\n gender String?\n ethnicity String?\n veteran_status String?\n disability_status String?\n professional_expertise String?\n documents Document[]\n offers Offer[] @relation(\"OfferCandidate\")\n\n employee_number Int?\n employee_code String? @unique\n\n department_members DepartmentMember[] @relation(\"DepartmentMemberships\")\n\n @@index([role_id])\n @@index([permission_id])\n @@index([organisation_id])\n @@index([organisation_id, employee_number])\n @@schema(\"public\")\n}\n\nmodel UserProfile {\n id String @id @default(uuid())\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n name String\n phone String\n description String\n date_of_birth String\n designation String\n is_active Boolean @default(true)\n user User? @relation(fields: [user_id], references: [id])\n user_id String? @unique\n\n work_experience Json?\n\n @@schema(\"public\")\n}\n\n/// Expected attendee slot when persisting interview-linked Zoom participants (`CANDIDATE` | `INTERVIEWER`).\nenum ZoomMeetingParticipantRole {\n CANDIDATE\n INTERVIEWER\n\n @@schema(\"public\")\n}\n\n/// Zoom meeting linked 1:1 to an interview; Zoom REST host is `zoom_host_user_id`.\nmodel ZoomMeeting {\n id String @id @default(uuid())\n /// One Zoom row per interview.\n interview_id String @unique\n interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n\n /// Treadspace user id whose Zoom User-OAuth token created this meeting; required for PATCH/DELETE on Zoom REST.\n /// Set from the Zoom host `userId` in `ZoomMeetingDAO.upsertZoomParticipants` (same user as `POST /users/me/meetings`).\n zoom_host_user_id String\n\n /// Zoom REST/API meeting id (same value used as Meeting SDK `meetingNumber` / JWT `mn`).\n zoom_meeting_id String\n /// Zoom meeting **instance** UUID from REST create (`uuid`) and RTMS/webhooks (`meeting_uuid`).\n zoom_meeting_uuid String?\n join_url String\n start_url String?\n password String?\n topic String?\n\n scheduled_start_time DateTime?\n scheduled_end_time DateTime?\n\n is_active Boolean @default(true)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n /// Audit; kept aligned with `zoom_host_user_id` when the meeting is recreated under a new host.\n created_by String\n updated_by String\n\n participants ZoomMeetingParticipant[]\n\n @@index([interview_id])\n @@index([zoom_meeting_id])\n @@index([zoom_meeting_uuid])\n @@schema(\"public\")\n}\n\n/// Expected participants for a `ZoomMeeting`: links to `User` (candidate / interviewer). Replaced on each meeting upsert.\nmodel ZoomMeetingParticipant {\n id String @id @default(uuid())\n zoom_meeting_row_id String\n zoom_meeting ZoomMeeting @relation(fields: [zoom_meeting_row_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n user_id String\n user User @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)\n /// Zoom account id (`AuthModule.provider_account_id`) when this `user_id` has linked Zoom; usually set for interviewer, often null for candidate.\n zoom_participant_id String?\n role ZoomMeetingParticipantRole\n\n is_active Boolean @default(true)\n\n created_at DateTime @default(now())\n updated_at DateTime @updatedAt\n created_by String\n updated_by String\n\n @@index([zoom_meeting_row_id])\n @@index([user_id])\n @@index([zoom_participant_id])\n @@schema(\"public\")\n}\n\n/// Ledger of processed Zoom webhook deliveries: one row per `dedupe_key` (request id or body hash).\n/// Stops double-handling when Zoom retries the same notification (e.g. RTMS, `meeting.started`).\nmodel ZoomWebhookEvent {\n id String @id @default(uuid())\n /// Stable key: SHA-256 of raw request body, or `x-zm-trackingid` when present.\n dedupe_key String @unique\n event String\n created_at DateTime @default(now())\n\n @@index([event])\n @@index([created_at])\n @@schema(\"public\")\n}\n",
2911
+ "inlineSchemaHash": "6aff9655372f60cc161562ca91e3bb2edcf05acfcbec5d9319e5152d605bc5e7",
2908
2912
  "copyEngine": true
2909
2913
  }
2910
2914
  config.dirname = '/'
2911
2915
 
2912
- config.runtimeDataModel = JSON.parse("{\"models\":{\"CandidateQuestionResponse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"response\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"question\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"CandidateQuestionResponseToQuestion\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToCandidateQuestionResponse\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateQuestionResponseToUser\"}],\"dbName\":null},\"UserRole\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUserRole\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"Permission\",\"relationName\":\"PermissionToUserRole\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Action\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"action_type\",\"kind\":\"enum\",\"type\":\"ActionType\"},{\"name\":\"action_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"due_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ActionStatus\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ActionToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ActionToOrganisation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"ActivityEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event_type\",\"kind\":\"enum\",\"type\":\"ActivityEventType\"},{\"name\":\"entity_type\",\"kind\":\"enum\",\"type\":\"ActivityEntityType\"},{\"name\":\"entity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_type\",\"kind\":\"enum\",\"type\":\"ActivityEntityActorType\"},{\"name\":\"related_entities\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"snapshot\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"schema_version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"occurred_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ActivityEventToOrganisation\"}],\"dbName\":\"activity_events\"},\"ActivityLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_type\",\"kind\":\"enum\",\"type\":\"ActivityActorType\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"actor\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ActorActivityLogs\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ActivityLogToApplication\"}],\"dbName\":null},\"ApplicationAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_screened\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_evaluated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_rejected\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_shortlisted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_on_hold\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_withdrawn\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"has_committed_evaluation\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"application_analytics\"},\"ApplicationAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_screened\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_evaluated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_rejected\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_shortlisted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_on_hold\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_withdrawn\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"has_committed_evaluation\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"application_analytics_daily\"},\"Application\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_jaf_completed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"proceed_to_next_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluationComment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_flagged\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"flag_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"flagged_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"flagged_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unflag_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unflagged_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"unflagged_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fit_check_status\",\"kind\":\"enum\",\"type\":\"FitCheckStatus\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"offer_substatus\",\"kind\":\"enum\",\"type\":\"ApplicationOfferSubstatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"ApplicationToEvaluationPlan\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApplicationToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ApplicationToOrganisation\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ApplicationToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ApplicationToJobDescription\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"ApplicationToFitCheck\"},{\"name\":\"recruiter\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApplicationRecruiter\"},{\"name\":\"source\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"ApplicationToSource\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"ApplicationToInterview\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"ApplicationToAssignment\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"ApplicationToOngoingEvaluation\"},{\"name\":\"activity_logs\",\"kind\":\"object\",\"type\":\"ActivityLog\",\"relationName\":\"ActivityLogToApplication\"},{\"name\":\"notes\",\"kind\":\"object\",\"type\":\"Notes\",\"relationName\":\"ApplicationToNotes\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ApplicationToConversation\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"ApplicationToCommunicationMessage\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"ApplicationToJobApplicationResponse\"},{\"name\":\"offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"ApplicationToOffer\"}],\"dbName\":null},\"Approval\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisaton_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ApprovalToJobDescription\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApprovalToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ApprovalToOrganisation\"}],\"dbName\":null},\"Assessment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assessment_library\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentToAssessmentLibrary\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateAssessments\"},{\"name\":\"reviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ReviewerAssessments\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"AssessmentQuestion\",\"relationName\":\"AssessmentToAssessmentQuestion\"},{\"name\":\"candidateResponse\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"AssessmentToCandidateQuestionResponse\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssessmentToOrganisation\"},{\"name\":\"User\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AssessmentToUser\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ongoingEvaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"AssessmentToOngoingEvaluation\"}],\"dbName\":null},\"AssessmentLibrary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"time_required\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passing_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"max_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssessmentLibraryToOrganisation\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"AssessmentLibraryToQuestion\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToAssessmentLibrary\"},{\"name\":\"evaluation_Plans\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"AssessmentLibraryToEvaluationPlan\"}],\"dbName\":null},\"AssessmentQuestion\":{\"fields\":[{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToAssessmentQuestion\"},{\"name\":\"question\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"QuestionToAssessmentQuestion\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"AssessmentRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssessmentRoundStatus\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"assessment_round_analytics\"},\"AssessmentRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssessmentRoundStatus\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"}],\"dbName\":\"assessment_round_analytics_daily\"},\"Assignment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ongoing_evaluation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"overallScore\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"solution_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zip_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"solution_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zip_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateAssignments\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentToAssignmentLibrary\"},{\"name\":\"reviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AssignmentReviewer\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssignmentToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"AssignmentToJobDescription\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToAssignment\"},{\"name\":\"ongoing_evaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"AssignmentToOngoingEvaluation\"},{\"name\":\"solution_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"AssignmentSolutionDocument\"},{\"name\":\"zip_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"AssignmentZipDocument\"}],\"dbName\":null},\"AssignmentLibrary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"assignment\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssignmentLibraryToOrganisation\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"AssignmentLibraryToJobDescription\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"AssignmentLibraryToEvaluationPlan\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToAssignmentLibrary\"}],\"dbName\":null},\"AssignmentRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"cancelled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"assignment_round_analytics\"},\"AssignmentRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"cancelled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"}],\"dbName\":\"assignment_round_analytics_daily\"},\"AuthModule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"AuthProvider\"},{\"name\":\"provider_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserAuthModule\"}],\"dbName\":null},\"Budget\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_type\",\"kind\":\"enum\",\"type\":\"JobType\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"shift\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openings\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"budget_per_job\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"domain\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jd_creation_type\",\"kind\":\"enum\",\"type\":\"JDCreationType\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"BudgetToJobDescription\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"BudgetToHiringPlanLine\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Calendly\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"calendly_user_uri\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CalendlyToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"CandidateProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"salary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateProfileToUser\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"CandidateProfileToResume\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"education\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notice_period\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ethnicity\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"veteran_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"disability_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"planned_candidates\",\"kind\":\"object\",\"type\":\"PlannedCandidate\",\"relationName\":\"CandidateProfileToPlannedCandidate\"}],\"dbName\":null},\"ChannelProviderConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"credentials\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_default\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ChannelProviderConfigToOrganisation\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ChannelProviderConfigToConversation\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"ChannelProviderConfigToCommunicationMessage\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Conversation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"channel_provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"external_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"contact_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_thread_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unread_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_message_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ConversationToOrganisation\"},{\"name\":\"channel_provider\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToConversation\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToConversation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ConversationToJobDescription\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToConversation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"CommunicationMessage\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"conversation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"channel_provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"direction\",\"kind\":\"enum\",\"type\":\"CommDirection\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CommMessageStatus\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"from_identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"to_identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_message_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachments\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"error\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"delivered_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"read_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"CommunicationMessageToConversation\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"CommunicationMessageToOrganisation\"},{\"name\":\"channel_provider\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToCommunicationMessage\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToCommunicationMessage\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"CommunicationMessageToJobDescription\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"CompetencyDictionary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"CompetencyCategory\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jobRole\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dictionary_source\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level1\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level2\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level3\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level4\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level5\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"CompetencyDictionaryToOrganisation\"}],\"dbName\":null},\"ContactUs\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_website\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Department\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sort_order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"DepartmentToOrganisation\"},{\"name\":\"members\",\"kind\":\"object\",\"type\":\"DepartmentMember\",\"relationName\":\"DepartmentToDepartmentMember\"},{\"name\":\"hiring_plan_lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"DepartmentToHiringPlanLine\"},{\"name\":\"employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"DepartmentToEmployee\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"DepartmentToJobDescription\"},{\"name\":\"job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"DepartmentToJobProfile\"},{\"name\":\"sections\",\"kind\":\"object\",\"type\":\"HiringPlanSection\",\"relationName\":\"DepartmentToHiringPlanSection\"}],\"dbName\":null},\"DepartmentMember\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_head\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToDepartmentMember\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DepartmentMemberships\"}],\"dbName\":null},\"HiringPlanSection\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"HiringPlanSectionStatus\"},{\"name\":\"requested_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"requested_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"submitted_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"submitted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"approved_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approved_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"skipped_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skipped_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"review_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToHiringPlanSection\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToHiringPlanSection\"}],\"dbName\":null},\"Document\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"original_file_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stored_file_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_extension\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"s3_bucket\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"s3_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mime_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_size\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"file_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"DocumentToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DocumentToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeSourceDocument\"},{\"name\":\"resume_rendered_export\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"RenderedResumeExport\"},{\"name\":\"job_description_source\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"SourceDocument\"},{\"name\":\"job_description_rendered\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"RenderedJdDocument\"},{\"name\":\"job_description_display_html\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"DisplayHtmlDocument\"},{\"name\":\"interview_recording\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"DocumentToInterview\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"DocumentToJobApplicationResponse\"},{\"name\":\"assignment_solution\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentSolutionDocument\"},{\"name\":\"assignment_zip\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentZipDocument\"},{\"name\":\"offer_letter_template_docx\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateDocx\"},{\"name\":\"offer_letter_template_html\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateHtml\"},{\"name\":\"offer_letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterPdf\"},{\"name\":\"offer_letter_template_snapshots\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterTemplateSnapshot\"},{\"name\":\"offer_draft_edited_html\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferDraftEditedHtml\"}],\"dbName\":null},\"EvaluationCriteria\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"CriteriaScope\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"criteria\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"weightage\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_elimination\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"EvaluationCriteriaToOrganisation\"}],\"dbName\":null},\"EvaluationPlan\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"focus_areas\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topics\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"elimination_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"type_of_round\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"round_purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"timeline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"share_scope\",\"kind\":\"enum\",\"type\":\"EvaluationPlanShareScope\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"duration_unit\",\"kind\":\"enum\",\"type\":\"DurationUnit\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"EvaluationPlanToJobDescription\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"EvaluationPlanToQuestion\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"EvaluationPlanToInterview\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToEvaluationPlan\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToEvaluationPlan\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToEvaluationPlan\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"EvaluationPlanToOngoingEvaluation\"}],\"dbName\":null},\"Feedback\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"human_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"FeedbackToInterview\"}],\"dbName\":null},\"FitCheck\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skills_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"overall_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"short_match_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"fit_comparison\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"recommendation\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"competencies_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"FitCheckToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"FitCheckToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"FitCheckToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"FitCheckToJobDescription\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToFitCheck\"}],\"dbName\":null},\"Google\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"google_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"GoogleToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"HiringPlan\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal_year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"period_type\",\"kind\":\"enum\",\"type\":\"PeriodType\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"HiringPlanStatus\"},{\"name\":\"total_headcount_budget\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_cost_budget\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"assumptions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"HiringPlanToOrganisation\"},{\"name\":\"lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"HiringPlanToHiringPlanLine\"},{\"name\":\"sections\",\"kind\":\"object\",\"type\":\"HiringPlanSection\",\"relationName\":\"HiringPlanToHiringPlanSection\"}],\"dbName\":null},\"HiringPlanLine\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"planned_headcount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cost_per_hire\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"start_month\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hire_schedule\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"sort_order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToHiringPlanLine\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToHiringPlanLine\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"PlanLineTemplateJd\"},{\"name\":\"requisitions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"PlanLineRequisitions\"},{\"name\":\"budgets\",\"kind\":\"object\",\"type\":\"Budget\",\"relationName\":\"BudgetToHiringPlanLine\"},{\"name\":\"planned_candidates\",\"kind\":\"object\",\"type\":\"PlannedCandidate\",\"relationName\":\"HiringPlanLineToPlannedCandidate\"},{\"name\":\"backfill_from_employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"EmployeeBackfillLine\"}],\"dbName\":null},\"Employee\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employment_type\",\"kind\":\"enum\",\"type\":\"JobType\"},{\"name\":\"starting_designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"current_designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"starting_salary\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"previous_salary\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"current_comp\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_increment_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_increment_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"last_increment_pct\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"last_review_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_review_rating\",\"kind\":\"enum\",\"type\":\"ReviewRating\"},{\"name\":\"last_feedback_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_feedback_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"EmployeeStatus\"},{\"name\":\"attrition_risk\",\"kind\":\"enum\",\"type\":\"AttritionRisk\"},{\"name\":\"expected_exit_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"backfill_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"EmployeeToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToEmployee\"},{\"name\":\"backfill_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"EmployeeBackfillLine\"}],\"dbName\":null},\"PlannedCandidate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_profile_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PlannedCandidateStatus\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"HiringPlanLineToPlannedCandidate\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToPlannedCandidate\"}],\"dbName\":null},\"IntegrationCredential\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"IntegrationProvider\"},{\"name\":\"auth_type\",\"kind\":\"enum\",\"type\":\"IntegrationAuthType\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"api_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"api_secret\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"IntegrationCredentialToOrganisation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"IntegrationJobSync\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"IntegrationProvider\"},{\"name\":\"external_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sync_enabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"last_synced_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sync_direction\",\"kind\":\"enum\",\"type\":\"SyncDirection\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"IntegrationJobSyncToJobDescription\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"ZohoSyncMapping\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"entity_type\",\"kind\":\"enum\",\"type\":\"SyncEntityType\"},{\"name\":\"treadspace_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoho_module\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoho_record_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_synced_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sync_status\",\"kind\":\"enum\",\"type\":\"SyncStatus\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToZohoSyncMapping\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Interview\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"calendar_event_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"room_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"recording_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recording_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"overall_feedback\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"human_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"section_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_preparation\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"final_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_analysis_ranges\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_flow_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_feedback_generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"beta_ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_section_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_final_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_interview_flow_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"beta_ai_feedback_generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"human_feedback_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"reschedule_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_rescheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"awaiting_recruiter_action\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateInterviews\"},{\"name\":\"interviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InterviewerInterviews\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"InterviewToOrganisation\"},{\"name\":\"recording_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToInterview\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"InterviewToJobDescription\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"InterviewToResume\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToInterview\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToInterview\"},{\"name\":\"ongoing_evaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"InterviewToOngoingEvaluation\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"InterviewToTranscript\"},{\"name\":\"suggestions\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"InterviewToSuggestion\"},{\"name\":\"feedback\",\"kind\":\"object\",\"type\":\"Feedback\",\"relationName\":\"FeedbackToInterview\"},{\"name\":\"interviewNotes\",\"kind\":\"object\",\"type\":\"InterviewNotes\",\"relationName\":\"InterviewToInterviewNotes\"},{\"name\":\"liveAnalysis\",\"kind\":\"object\",\"type\":\"LiveAnalysis\",\"relationName\":\"InterviewToLiveAnalysis\"},{\"name\":\"zoom_meeting\",\"kind\":\"object\",\"type\":\"ZoomMeeting\",\"relationName\":\"InterviewToZoomMeeting\"}],\"dbName\":null},\"InterviewNotes\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToInterviewNotes\"}],\"dbName\":null},\"InterviewRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"human_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendation\",\"kind\":\"enum\",\"type\":\"InterviewRecommendation\"},{\"name\":\"ai_disagrees_with_ai\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"difficulty_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"supportiveness_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interview_round_analytics\"},\"InterviewRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"human_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendation\",\"kind\":\"enum\",\"type\":\"InterviewRecommendation\"},{\"name\":\"ai_disagrees_with_ai\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"difficulty_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"supportiveness_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interview_round_analytics_daily\"},\"InterviewerOrganisationAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interviewer_organisation_analytics\"},\"InterviewerJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interviewer_job_analytics\"},\"InterviewerOrganisationAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interviewer_organisation_analytics_daily\"},\"InterviewerJobAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interviewer_job_analytics_daily\"},\"JobApplicationField\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"field_type\",\"kind\":\"enum\",\"type\":\"JobApplicationFieldType\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_mandatory\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobApplicationFieldToOrganisation\"},{\"name\":\"job_application_template\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationFieldToJobApplicationTemplate\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"JobApplicationFieldToJobApplicationResponse\"}],\"dbName\":null},\"JobApplicationResponse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_application_field_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"response\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"field_type\",\"kind\":\"enum\",\"type\":\"JobApplicationFieldType\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_mandatory\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_submitted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by_organisation\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToJobApplicationResponse\"},{\"name\":\"field\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToJobApplicationResponse\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToJobApplicationResponse\"}],\"dbName\":null},\"JobApplicationTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"JobApplicationTemplateScope\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobApplicationTemplateToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobApplicationTemplateToJobDescription\"},{\"name\":\"fields\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToJobApplicationTemplate\"}],\"dbName\":null},\"JobDescription\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"JobDescriptionStatus\"},{\"name\":\"screeningQuestions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendedQuestions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"uploaded_job_description_path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_jd_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_jd_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"RenderedJdDocument\"},{\"name\":\"display_html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"display_html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DisplayHtmlDocument\"},{\"name\":\"is_plan_published\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_posted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"ai_insight\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_fit_comparison\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openings\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_profile_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_profile\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobDescriptionToJobProfile\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobDescriptionToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToJobDescription\"},{\"name\":\"source_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"SourceDocument\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToJobDescription\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToJobDescription\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToJobDescription\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToJobDescription\"},{\"name\":\"job_description_data\",\"kind\":\"object\",\"type\":\"JobDescriptionData\",\"relationName\":\"JobDescriptionToJobDescriptionData\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToJobDescription\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"JobDescriptionToOngoingEvaluation\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToJobDescription\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToJobDescription\"},{\"name\":\"resumes\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"JobDescriptionToResume\"},{\"name\":\"budget\",\"kind\":\"object\",\"type\":\"Budget\",\"relationName\":\"BudgetToJobDescription\"},{\"name\":\"hiring_manager\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"HiringManager\"},{\"name\":\"recruiters\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"JobDescriptionToUser\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"JobDescriptionToTranscript\"},{\"name\":\"integration_job_syncs\",\"kind\":\"object\",\"type\":\"IntegrationJobSync\",\"relationName\":\"IntegrationJobSyncToJobDescription\"},{\"name\":\"job_application_template\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationTemplateToJobDescription\"},{\"name\":\"offer_letter_templates\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"JobDescriptionToOfferLetterTemplate\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"JobDescriptionToOffer\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationToJobDescription\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToJobDescription\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"PlanLineRequisitions\"},{\"name\":\"referenced_by_plan_lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"PlanLineTemplateJd\"}],\"dbName\":null},\"JobDescriptionData\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToJobDescriptionData\"}],\"dbName\":null},\"JobProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assigned_to\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"JobProfileStatus\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_arrangement\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employment_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"experience\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"experience_min\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comp_range\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"budget\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"responsibilities\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"must_have_skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"nice_to_have_skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"culture\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"competencies\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"conversation_history\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"orion_execution_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobProfileToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToJobProfile\"},{\"name\":\"hiring_manager\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"JobProfileHiringManager\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProfileCreator\"},{\"name\":\"assignee\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProfileAssignee\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToJobProfile\"}],\"dbName\":null},\"JobRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assigned_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"failed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"no_show_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_completion_minutes\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"avg_completion_minutes\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"JobRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assigned_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"failed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"no_show_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_completion_minutes\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"avg_completion_minutes\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"job_round_analytics_daily\"},\"LiveAnalysis\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToLiveAnalysis\"}],\"dbName\":null},\"Message\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receiver_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"Sent Messages\"},{\"name\":\"receiver\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"Received Messages\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Notes\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pinned\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToNotes\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotesToUser\"}],\"dbName\":null},\"OfferLetterTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_config\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"OfferLetterTemplateScope\"},{\"name\":\"is_default\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OfferLetterTemplateToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOfferLetterTemplate\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateDocx\"},{\"name\":\"html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateHtml\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferToOfferLetterTemplate\"},{\"name\":\"offer_letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterToOfferLetterTemplate\"}],\"dbName\":null},\"Offer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"letter_version_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"current_offer_letter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"terms\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"draft_edited_html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"responded_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accepted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"declined_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"withdrawn_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"joined_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"no_show_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"withdraw_reason\",\"kind\":\"enum\",\"type\":\"OfferWithdrawReason\"},{\"name\":\"withdraw_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"withdraw_actor\",\"kind\":\"enum\",\"type\":\"OfferWithdrawActor\"},{\"name\":\"no_show_reason\",\"kind\":\"enum\",\"type\":\"OfferNoShowReason\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOffer\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OfferToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfferCandidate\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOffer\"},{\"name\":\"template\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferToOfferLetterTemplate\"},{\"name\":\"draft_edited_html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferDraftEditedHtml\"},{\"name\":\"current_offer_letter\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferCurrentLetter\"},{\"name\":\"letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetters\"}],\"dbName\":null},\"OfferLetter\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"offer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"OfferLetterStatus\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"generation_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferLetters\"},{\"name\":\"current_for_offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferCurrentLetter\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterPdf\"},{\"name\":\"template\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterToOfferLetterTemplate\"},{\"name\":\"template_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateSnapshot\"}],\"dbName\":null},\"OngoingEvaluation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"enum\",\"type\":\"OngoingEvaluationState\"},{\"name\":\"round_status\",\"kind\":\"enum\",\"type\":\"OngoingEvaluationRoundStatus\"},{\"name\":\"comments\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_committed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"focus_areas\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topics\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"elimination_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"type_of_round\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"duration_unit\",\"kind\":\"enum\",\"type\":\"DurationUnit\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_current\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOngoingEvaluation\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOngoingEvaluation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OngoingEvaluationToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"OngoingEvaluationToResume\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OngoingEvaluationToOrganisation\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToOngoingEvaluation\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToOngoingEvaluation\"},{\"name\":\"assignment\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToOngoingEvaluation\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToOngoingEvaluation\"}],\"dbName\":null},\"OpenJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"compensation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"vacancies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unscreened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ongoing_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"selected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"open_job_analytics\"},\"OpenJobAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"compensation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"vacancies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unscreened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ongoing_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"selected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"open_job_analytics_daily\"},\"Organisation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"about\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"website\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"size\",\"kind\":\"enum\",\"type\":\"OrganisationSize\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"company_values\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"allowed_email_domains\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"send_email\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganisationToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"alias\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"logo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_sequence\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_sequence\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOrganisation\"},{\"name\":\"user_roles\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"OrganisationToUserRole\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOrganisation\"},{\"name\":\"job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobProfileToOrganisation\"},{\"name\":\"assessment_library\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToOrganisation\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToOrganisation\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToOrganisation\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToOrganisation\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToOrganisation\"},{\"name\":\"resumes\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"OrganisationToResume\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToOrganisation\"},{\"name\":\"suggestions\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"OrganisationToSuggestion\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToOrganisation\"},{\"name\":\"actions\",\"kind\":\"object\",\"type\":\"Action\",\"relationName\":\"ActionToOrganisation\"},{\"name\":\"integration_credentials\",\"kind\":\"object\",\"type\":\"IntegrationCredential\",\"relationName\":\"IntegrationCredentialToOrganisation\"},{\"name\":\"zoho_sync_mappings\",\"kind\":\"object\",\"type\":\"ZohoSyncMapping\",\"relationName\":\"OrganisationToZohoSyncMapping\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToOrganisation\"},{\"name\":\"timezone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_configs\",\"kind\":\"object\",\"type\":\"OrganisationConfig\",\"relationName\":\"OrganisationToOrganisationConfig\"},{\"name\":\"activity_events\",\"kind\":\"object\",\"type\":\"ActivityEvent\",\"relationName\":\"ActivityEventToOrganisation\"},{\"name\":\"usage_ledger_entries\",\"kind\":\"object\",\"type\":\"UsageLedgerEntry\",\"relationName\":\"OrganisationToUsageLedgerEntry\"},{\"name\":\"usage_aggregates\",\"kind\":\"object\",\"type\":\"UsageAggregate\",\"relationName\":\"OrganisationToUsageAggregate\"},{\"name\":\"channel_provider_configs\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToOrganisation\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationToOrganisation\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToOrganisation\"},{\"name\":\"job_application_fields\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToOrganisation\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToOrganisation\"},{\"name\":\"job_application_templates\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationTemplateToOrganisation\"},{\"name\":\"offer_letter_templates\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateToOrganisation\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferToOrganisation\"},{\"name\":\"sources\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"OrganisationToSource\"},{\"name\":\"evaluation_criteria\",\"kind\":\"object\",\"type\":\"EvaluationCriteria\",\"relationName\":\"EvaluationCriteriaToOrganisation\"},{\"name\":\"departments\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToOrganisation\"},{\"name\":\"hiring_plans\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToOrganisation\"},{\"name\":\"employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"EmployeeToOrganisation\"},{\"name\":\"competency_dictionaries\",\"kind\":\"object\",\"type\":\"CompetencyDictionary\",\"relationName\":\"CompetencyDictionaryToOrganisation\"},{\"name\":\"billing_transactions\",\"kind\":\"object\",\"type\":\"BillingTransaction\",\"relationName\":\"BillingTransactionToOrganisation\"},{\"name\":\"payment_webhook_events\",\"kind\":\"object\",\"type\":\"PaymentWebhookEvent\",\"relationName\":\"OrganisationToPaymentWebhookEvent\"}],\"dbName\":null},\"OrganisationConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"config_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToOrganisationConfig\"}],\"dbName\":\"organisationConfig\"},\"BillingTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchase_reference\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchase_display_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transaction_type\",\"kind\":\"enum\",\"type\":\"BillingTransactionType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"BillingTransactionStatus\"},{\"name\":\"failure_category\",\"kind\":\"enum\",\"type\":\"BillingTransactionFailureCategory\"},{\"name\":\"failure_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_order_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_payment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment_method\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_subscription_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_refund_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refund_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refund_amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"idempotency_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchaser_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment_mismatch_status\",\"kind\":\"enum\",\"type\":\"BillingPaymentMismatchStatus\"},{\"name\":\"payment_mismatch_fulfilled_by_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"BillingTransactionToOrganisation\"}],\"dbName\":\"billing_transactions\"},\"PaymentWebhookEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_event_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PaymentWebhookEventStatus\"},{\"name\":\"billing_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"processed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToPaymentWebhookEvent\"}],\"dbName\":\"payment_webhook_events\"},\"Permission\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permissions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PermissionToUser\"},{\"name\":\"user_roles\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"PermissionToUserRole\"}],\"dbName\":null},\"PipelineDistributionAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filtered_in_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"min_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"behavioral_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"pipeline_distribution_analytics\"},\"PipelineDistributionAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filtered_in_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"min_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"behavioral_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"pipeline_distribution_analytics_daily\"},\"AsyncOperation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"operation_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AsyncOperationStatus\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"correlationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sourceService\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retry_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"max_retries\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"next_retry_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"error_details\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Question\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skill\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"answer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"max_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"difficulty\",\"kind\":\"enum\",\"type\":\"Difficulty\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"QuestionToUser\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"AssessmentQuestion\",\"relationName\":\"QuestionToAssessmentQuestion\"},{\"name\":\"assessmentLibrary\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToQuestion\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToQuestion\"},{\"name\":\"candidateResponse\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"CandidateQuestionResponseToQuestion\"}],\"dbName\":null},\"RefreshToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TokenRefresh\"}],\"dbName\":null},\"ReportingOverviewJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"in_consideration_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"recruiters\",\"kind\":\"object\",\"type\":\"ReportingOverviewJobRecruiter\",\"relationName\":\"ReportingOverviewJobAnalyticsToReportingOverviewJobRecruiter\"}],\"dbName\":\"reporting_overview_job_analytics\"},\"ReportingOverviewJobRecruiter\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job\",\"kind\":\"object\",\"type\":\"ReportingOverviewJobAnalytics\",\"relationName\":\"ReportingOverviewJobAnalyticsToReportingOverviewJobRecruiter\"}],\"dbName\":\"reporting_overview_job_recruiters\"},\"Resume\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uploaded_resume_path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_export_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ResumeToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToResume\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"ResumeSourceDocument\"},{\"name\":\"rendered_export_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"RenderedResumeExport\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToResume\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToResume\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToResume\"},{\"name\":\"resume_data\",\"kind\":\"object\",\"type\":\"ResumeData\",\"relationName\":\"ResumeToResumeData\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToResume\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToResume\"},{\"name\":\"yearsOfExperience\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":null},\"ResumeData\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeToResumeData\"}],\"dbName\":null},\"RoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"round_result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduling_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"decision_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"round_analytics\"},\"RoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"round_result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduling_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"decision_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"round_analytics_daily\"},\"Source\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"parent_source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToSource\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceHierarchy\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceHierarchy\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToSource\"}],\"dbName\":null},\"SourceEffectivenessAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applications_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"screened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"evaluated_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hired_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"fit_score_sample_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"average_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"source_effectiveness_analytics\"},\"SourceEffectivenessAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applications_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"screened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"evaluated_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hired_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"fit_score_sample_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"average_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"source_effectiveness_analytics_daily\"},\"Suggestion\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transcript_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"suggestion\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToSuggestion\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"SuggestionToTranscript\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToSuggestion\"}],\"dbName\":null},\"Transcript\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"suggestion_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"intermediate_feedback_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"candidate_timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"interviewer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToTranscript\"},{\"name\":\"suggestion\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"SuggestionToTranscript\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToTranscript\"}],\"dbName\":null},\"LicenseIncludedWorkflow\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflow_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"license_included_workflows\"},\"UsageAggregate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metric_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dimension_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dimensions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"total_quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"period_start\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"period_end\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUsageAggregate\"},{\"name\":\"metric\",\"kind\":\"object\",\"type\":\"UsageMetricDefinition\",\"relationName\":\"UsageAggregateToUsageMetricDefinition\"}],\"dbName\":\"usage_aggregates\"},\"UsageLedgerEntry\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metric_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"occurred_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"dimensions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"idempotency_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_type\",\"kind\":\"enum\",\"type\":\"UsageSourceType\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUsageLedgerEntry\"},{\"name\":\"metric\",\"kind\":\"object\",\"type\":\"UsageMetricDefinition\",\"relationName\":\"UsageLedgerEntryToUsageMetricDefinition\"}],\"dbName\":\"usage_ledger\"},\"UsageMetricDefinition\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unit\",\"kind\":\"enum\",\"type\":\"UsageUnit\"},{\"name\":\"aggregation_type\",\"kind\":\"enum\",\"type\":\"UsageAggregationType\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"ledger_entries\",\"kind\":\"object\",\"type\":\"UsageLedgerEntry\",\"relationName\":\"UsageLedgerEntryToUsageMetricDefinition\"},{\"name\":\"aggregates\",\"kind\":\"object\",\"type\":\"UsageAggregate\",\"relationName\":\"UsageAggregateToUsageMetricDefinition\"}],\"dbName\":\"usage_metric_definitions\"},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"UserToUserRole\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"google_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_self_registered\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferences\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invitation_status\",\"kind\":\"enum\",\"type\":\"UserInvitationStatus\"},{\"name\":\"invited_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invitation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invitation_accepted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"Permission\",\"relationName\":\"PermissionToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUser\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeToUser\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToUser\"},{\"name\":\"user_profile\",\"kind\":\"object\",\"type\":\"UserProfile\",\"relationName\":\"UserToUserProfile\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToUser\"},{\"name\":\"hiring_manager_job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"HiringManager\"},{\"name\":\"hiring_manager_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobProfileHiringManager\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToUser\"},{\"name\":\"sent_messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"Sent Messages\"},{\"name\":\"received_messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"Received Messages\"},{\"name\":\"profile_created\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"first_login_status\",\"kind\":\"enum\",\"type\":\"FirstLoginStatus\"},{\"name\":\"candidate_interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"CandidateInterviews\"},{\"name\":\"interviewer_interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewerInterviews\"},{\"name\":\"assessment_results\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToUser\"},{\"name\":\"candidate_assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"CandidateAssessments\"},{\"name\":\"reviewer_assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"ReviewerAssessments\"},{\"name\":\"candidate_assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"CandidateAssignments\"},{\"name\":\"reviewer_assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentReviewer\"},{\"name\":\"candidateResponses\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"CandidateQuestionResponseToUser\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"QuestionToUser\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToUser\"},{\"name\":\"actor_activity_logs\",\"kind\":\"object\",\"type\":\"ActivityLog\",\"relationName\":\"ActorActivityLogs\"},{\"name\":\"actions\",\"kind\":\"object\",\"type\":\"Action\",\"relationName\":\"ActionToUser\"},{\"name\":\"calendly\",\"kind\":\"object\",\"type\":\"Calendly\",\"relationName\":\"CalendlyToUser\"},{\"name\":\"google\",\"kind\":\"object\",\"type\":\"Google\",\"relationName\":\"GoogleToUser\"},{\"name\":\"fitChecks\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToUser\"},{\"name\":\"created_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"ProfileCreator\"},{\"name\":\"assigned_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"ProfileAssignee\"},{\"name\":\"user_auth_modules\",\"kind\":\"object\",\"type\":\"AuthModule\",\"relationName\":\"UserAuthModule\"},{\"name\":\"refresh_token_auth\",\"kind\":\"object\",\"type\":\"RefreshToken\",\"relationName\":\"TokenRefresh\"},{\"name\":\"zoom_meeting_participants\",\"kind\":\"object\",\"type\":\"ZoomMeetingParticipant\",\"relationName\":\"UserToZoomMeetingParticipant\"},{\"name\":\"notes\",\"kind\":\"object\",\"type\":\"Notes\",\"relationName\":\"NotesToUser\"},{\"name\":\"recruiter_applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationRecruiter\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"salary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"education\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notice_period\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferred_work_mode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ethnicity\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"veteran_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"disability_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"professional_expertise\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToUser\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferCandidate\"},{\"name\":\"employee_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_members\",\"kind\":\"object\",\"type\":\"DepartmentMember\",\"relationName\":\"DepartmentMemberships\"}],\"dbName\":null},\"UserProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserProfile\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"}],\"dbName\":null},\"ZoomMeeting\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToZoomMeeting\"},{\"name\":\"zoom_host_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"join_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topic\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"participants\",\"kind\":\"object\",\"type\":\"ZoomMeetingParticipant\",\"relationName\":\"ZoomMeetingToZoomMeetingParticipant\"}],\"dbName\":null},\"ZoomMeetingParticipant\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_row_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting\",\"kind\":\"object\",\"type\":\"ZoomMeeting\",\"relationName\":\"ZoomMeetingToZoomMeetingParticipant\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToZoomMeetingParticipant\"},{\"name\":\"zoom_participant_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ZoomMeetingParticipantRole\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"ZoomWebhookEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dedupe_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
2916
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"CandidateQuestionResponse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"response\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"question\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"CandidateQuestionResponseToQuestion\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToCandidateQuestionResponse\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateQuestionResponseToUser\"}],\"dbName\":null},\"UserRole\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUserRole\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"Permission\",\"relationName\":\"PermissionToUserRole\"},{\"name\":\"users\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserRole\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Action\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"action_type\",\"kind\":\"enum\",\"type\":\"ActionType\"},{\"name\":\"action_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"due_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ActionStatus\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ActionToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ActionToOrganisation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"ActivityEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event_type\",\"kind\":\"enum\",\"type\":\"ActivityEventType\"},{\"name\":\"entity_type\",\"kind\":\"enum\",\"type\":\"ActivityEntityType\"},{\"name\":\"entity_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_type\",\"kind\":\"enum\",\"type\":\"ActivityEntityActorType\"},{\"name\":\"related_entities\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"snapshot\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"schema_version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"occurred_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ActivityEventToOrganisation\"}],\"dbName\":\"activity_events\"},\"ActivityLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"actor_type\",\"kind\":\"enum\",\"type\":\"ActivityActorType\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"actor\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ActorActivityLogs\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ActivityLogToApplication\"}],\"dbName\":null},\"ApplicationAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_screened\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_evaluated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_rejected\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_shortlisted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_on_hold\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_withdrawn\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"has_committed_evaluation\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"application_analytics\"},\"ApplicationAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_screened\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_evaluated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_rejected\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_shortlisted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_on_hold\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_withdrawn\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"has_committed_evaluation\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"application_analytics_daily\"},\"Application\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fit_check_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"applied_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_jaf_completed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"proceed_to_next_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluationComment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_flagged\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"flag_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"flagged_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"flagged_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unflag_comment\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unflagged_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"unflagged_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fit_check_status\",\"kind\":\"enum\",\"type\":\"FitCheckStatus\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"ApplicationStatus\"},{\"name\":\"offer_substatus\",\"kind\":\"enum\",\"type\":\"ApplicationOfferSubstatus\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"ApplicationToEvaluationPlan\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApplicationToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ApplicationToOrganisation\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ApplicationToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ApplicationToJobDescription\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"ApplicationToFitCheck\"},{\"name\":\"recruiter\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApplicationRecruiter\"},{\"name\":\"source\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"ApplicationToSource\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"ApplicationToInterview\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"ApplicationToAssignment\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"ApplicationToOngoingEvaluation\"},{\"name\":\"activity_logs\",\"kind\":\"object\",\"type\":\"ActivityLog\",\"relationName\":\"ActivityLogToApplication\"},{\"name\":\"notes\",\"kind\":\"object\",\"type\":\"Notes\",\"relationName\":\"ApplicationToNotes\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ApplicationToConversation\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"ApplicationToCommunicationMessage\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"ApplicationToJobApplicationResponse\"},{\"name\":\"offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"ApplicationToOffer\"}],\"dbName\":null},\"Approval\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisaton_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ApprovalToJobDescription\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ApprovalToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ApprovalToOrganisation\"}],\"dbName\":null},\"Assessment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assessment_library\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentToAssessmentLibrary\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateAssessments\"},{\"name\":\"reviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ReviewerAssessments\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"AssessmentQuestion\",\"relationName\":\"AssessmentToAssessmentQuestion\"},{\"name\":\"candidateResponse\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"AssessmentToCandidateQuestionResponse\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssessmentToOrganisation\"},{\"name\":\"User\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AssessmentToUser\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ongoingEvaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"AssessmentToOngoingEvaluation\"}],\"dbName\":null},\"AssessmentLibrary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"time_required\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passing_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"max_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssessmentLibraryToOrganisation\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"AssessmentLibraryToQuestion\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToAssessmentLibrary\"},{\"name\":\"evaluation_Plans\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"AssessmentLibraryToEvaluationPlan\"}],\"dbName\":null},\"AssessmentQuestion\":{\"fields\":[{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToAssessmentQuestion\"},{\"name\":\"question\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"QuestionToAssessmentQuestion\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"AssessmentRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssessmentRoundStatus\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"assessment_round_analytics\"},\"AssessmentRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"attempt_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssessmentRoundStatus\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"}],\"dbName\":\"assessment_round_analytics_daily\"},\"Assignment\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ongoing_evaluation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"overallScore\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"solution_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zip_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"solution_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zip_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateAssignments\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentToAssignmentLibrary\"},{\"name\":\"reviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AssignmentReviewer\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssignmentToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"AssignmentToJobDescription\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToAssignment\"},{\"name\":\"ongoing_evaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"AssignmentToOngoingEvaluation\"},{\"name\":\"solution_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"AssignmentSolutionDocument\"},{\"name\":\"zip_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"AssignmentZipDocument\"}],\"dbName\":null},\"AssignmentLibrary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"assignment\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"AssignmentLibraryToOrganisation\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"AssignmentLibraryToJobDescription\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"AssignmentLibraryToEvaluationPlan\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToAssignmentLibrary\"}],\"dbName\":null},\"AssignmentRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"cancelled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"assignment_round_analytics\"},\"AssignmentRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"reviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"reviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"cancelled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AssignmentStatus\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cancel_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"}],\"dbName\":\"assignment_round_analytics_daily\"},\"AuthModule\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"AuthProvider\"},{\"name\":\"provider_account_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserAuthModule\"}],\"dbName\":null},\"Budget\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_type\",\"kind\":\"enum\",\"type\":\"JobType\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"shift\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openings\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"budget_per_job\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"domain\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jd_creation_type\",\"kind\":\"enum\",\"type\":\"JDCreationType\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"BudgetToJobDescription\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"BudgetToHiringPlanLine\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Calendly\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"calendly_user_uri\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CalendlyToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"CandidateProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"salary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateProfileToUser\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"CandidateProfileToResume\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"education\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notice_period\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ethnicity\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"veteran_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"disability_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"planned_candidates\",\"kind\":\"object\",\"type\":\"PlannedCandidate\",\"relationName\":\"CandidateProfileToPlannedCandidate\"}],\"dbName\":null},\"ChannelProviderConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"credentials\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_default\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ChannelProviderConfigToOrganisation\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ChannelProviderConfigToConversation\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"ChannelProviderConfigToCommunicationMessage\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"Conversation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"channel_provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"external_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"contact_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_thread_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unread_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_message_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"ConversationToOrganisation\"},{\"name\":\"channel_provider\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToConversation\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToConversation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"ConversationToJobDescription\"},{\"name\":\"messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToConversation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"CommunicationMessage\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"conversation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"channel\",\"kind\":\"enum\",\"type\":\"CommChannel\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"CommProvider\"},{\"name\":\"channel_provider_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"direction\",\"kind\":\"enum\",\"type\":\"CommDirection\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"CommMessageStatus\"},{\"name\":\"body\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"from_identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"to_identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_message_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"attachments\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"error\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"delivered_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"read_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"conversation\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"CommunicationMessageToConversation\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"CommunicationMessageToOrganisation\"},{\"name\":\"channel_provider\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToCommunicationMessage\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToCommunicationMessage\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"CommunicationMessageToJobDescription\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"CompetencyDictionary\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"CompetencyCategory\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"jobRole\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dictionary_source\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level1\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level2\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level3\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level4\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level5\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"CompetencyDictionaryToOrganisation\"}],\"dbName\":null},\"ContactUs\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"first_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_website\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"subject\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Department\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sort_order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"DepartmentToOrganisation\"},{\"name\":\"members\",\"kind\":\"object\",\"type\":\"DepartmentMember\",\"relationName\":\"DepartmentToDepartmentMember\"},{\"name\":\"hiring_plan_lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"DepartmentToHiringPlanLine\"},{\"name\":\"employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"DepartmentToEmployee\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"DepartmentToJobDescription\"},{\"name\":\"job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"DepartmentToJobProfile\"},{\"name\":\"sections\",\"kind\":\"object\",\"type\":\"HiringPlanSection\",\"relationName\":\"DepartmentToHiringPlanSection\"}],\"dbName\":null},\"DepartmentMember\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_head\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToDepartmentMember\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DepartmentMemberships\"}],\"dbName\":null},\"HiringPlanSection\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"HiringPlanSectionStatus\"},{\"name\":\"requested_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"requested_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"submitted_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"submitted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"approved_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"approved_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"skipped_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skipped_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"review_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToHiringPlanSection\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToHiringPlanSection\"}],\"dbName\":null},\"Document\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"original_file_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"stored_file_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_extension\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"s3_bucket\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"s3_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"mime_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_size\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"file_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"DocumentToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"DocumentToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeSourceDocument\"},{\"name\":\"resume_rendered_export\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"RenderedResumeExport\"},{\"name\":\"job_description_source\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"SourceDocument\"},{\"name\":\"job_description_rendered\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"RenderedJdDocument\"},{\"name\":\"job_description_display_html\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"DisplayHtmlDocument\"},{\"name\":\"interview_recording\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"DocumentToInterview\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"DocumentToJobApplicationResponse\"},{\"name\":\"assignment_solution\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentSolutionDocument\"},{\"name\":\"assignment_zip\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentZipDocument\"},{\"name\":\"offer_letter_template_docx\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateDocx\"},{\"name\":\"offer_letter_template_html\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateHtml\"},{\"name\":\"offer_letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterPdf\"},{\"name\":\"offer_letter_template_snapshots\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterTemplateSnapshot\"},{\"name\":\"offer_draft_edited_html\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferDraftEditedHtml\"}],\"dbName\":null},\"EvaluationCriteria\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"CriteriaScope\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"criteria\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"weightage\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"is_elimination\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"EvaluationCriteriaToOrganisation\"}],\"dbName\":null},\"EvaluationPlan\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"focus_areas\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topics\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"elimination_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"type_of_round\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"round_purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"timeline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"share_scope\",\"kind\":\"enum\",\"type\":\"EvaluationPlanShareScope\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"duration_unit\",\"kind\":\"enum\",\"type\":\"DurationUnit\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"EvaluationPlanToJobDescription\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"EvaluationPlanToQuestion\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"EvaluationPlanToInterview\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToEvaluationPlan\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToEvaluationPlan\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToEvaluationPlan\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"EvaluationPlanToOngoingEvaluation\"}],\"dbName\":null},\"Feedback\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"human_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"FeedbackToInterview\"}],\"dbName\":null},\"FitCheck\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skills_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"overall_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"overall_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"short_match_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"fit_comparison\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"recommendation\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"competencies_analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"FitCheckToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"FitCheckToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"FitCheckToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"FitCheckToJobDescription\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToFitCheck\"}],\"dbName\":null},\"Google\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"google_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"GoogleToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"HiringPlan\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"fiscal_year\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"period_type\",\"kind\":\"enum\",\"type\":\"PeriodType\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"HiringPlanStatus\"},{\"name\":\"total_headcount_budget\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_cost_budget\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"assumptions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notes\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"HiringPlanToOrganisation\"},{\"name\":\"lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"HiringPlanToHiringPlanLine\"},{\"name\":\"sections\",\"kind\":\"object\",\"type\":\"HiringPlanSection\",\"relationName\":\"HiringPlanToHiringPlanSection\"}],\"dbName\":null},\"HiringPlanLine\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"planned_headcount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"cost_per_hire\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"start_month\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hire_schedule\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"sort_order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToHiringPlanLine\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToHiringPlanLine\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"PlanLineTemplateJd\"},{\"name\":\"requisitions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"PlanLineRequisitions\"},{\"name\":\"budgets\",\"kind\":\"object\",\"type\":\"Budget\",\"relationName\":\"BudgetToHiringPlanLine\"},{\"name\":\"planned_candidates\",\"kind\":\"object\",\"type\":\"PlannedCandidate\",\"relationName\":\"HiringPlanLineToPlannedCandidate\"},{\"name\":\"backfill_from_employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"EmployeeBackfillLine\"}],\"dbName\":null},\"Employee\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"business_unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employment_type\",\"kind\":\"enum\",\"type\":\"JobType\"},{\"name\":\"starting_designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"current_designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"starting_salary\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"previous_salary\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"current_comp\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_increment_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_increment_amount\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"last_increment_pct\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"last_review_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_review_rating\",\"kind\":\"enum\",\"type\":\"ReviewRating\"},{\"name\":\"last_feedback_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"last_feedback_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"EmployeeStatus\"},{\"name\":\"attrition_risk\",\"kind\":\"enum\",\"type\":\"AttritionRisk\"},{\"name\":\"expected_exit_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"backfill_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"EmployeeToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToEmployee\"},{\"name\":\"backfill_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"EmployeeBackfillLine\"}],\"dbName\":null},\"PlannedCandidate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_profile_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PlannedCandidateStatus\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"HiringPlanLineToPlannedCandidate\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToPlannedCandidate\"}],\"dbName\":null},\"IntegrationCredential\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"IntegrationProvider\"},{\"name\":\"auth_type\",\"kind\":\"enum\",\"type\":\"IntegrationAuthType\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"api_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"api_secret\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"IntegrationCredentialToOrganisation\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"IntegrationJobSync\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"enum\",\"type\":\"IntegrationProvider\"},{\"name\":\"external_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sync_enabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"last_synced_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sync_direction\",\"kind\":\"enum\",\"type\":\"SyncDirection\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"IntegrationJobSyncToJobDescription\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"ZohoSyncMapping\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"entity_type\",\"kind\":\"enum\",\"type\":\"SyncEntityType\"},{\"name\":\"treadspace_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoho_module\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoho_record_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"last_synced_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"sync_status\",\"kind\":\"enum\",\"type\":\"SyncStatus\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToZohoSyncMapping\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"Interview\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"calendar_event_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"room_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"recording_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recording_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"overall_feedback\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"human_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"section_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_preparation\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"final_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_analysis_ranges\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"interview_flow_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_feedback_generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"beta_ai_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_section_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_final_feedback\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"beta_interview_flow_summary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"beta_ai_feedback_generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"human_feedback_updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"reschedule_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"last_rescheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"awaiting_recruiter_action\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"CandidateInterviews\"},{\"name\":\"interviewer\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"InterviewerInterviews\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"InterviewToOrganisation\"},{\"name\":\"recording_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToInterview\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"InterviewToJobDescription\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"InterviewToResume\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToInterview\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToInterview\"},{\"name\":\"ongoing_evaluation\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"InterviewToOngoingEvaluation\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"InterviewToTranscript\"},{\"name\":\"suggestions\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"InterviewToSuggestion\"},{\"name\":\"feedback\",\"kind\":\"object\",\"type\":\"Feedback\",\"relationName\":\"FeedbackToInterview\"},{\"name\":\"interviewNotes\",\"kind\":\"object\",\"type\":\"InterviewNotes\",\"relationName\":\"InterviewToInterviewNotes\"},{\"name\":\"liveAnalysis\",\"kind\":\"object\",\"type\":\"LiveAnalysis\",\"relationName\":\"InterviewToLiveAnalysis\"},{\"name\":\"zoom_meeting\",\"kind\":\"object\",\"type\":\"ZoomMeeting\",\"relationName\":\"InterviewToZoomMeeting\"}],\"dbName\":null},\"InterviewNotes\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToInterviewNotes\"}],\"dbName\":null},\"InterviewRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"human_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendation\",\"kind\":\"enum\",\"type\":\"InterviewRecommendation\"},{\"name\":\"ai_disagrees_with_ai\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"difficulty_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"supportiveness_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interview_round_analytics\"},\"InterviewRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"ai_assistance_mode\",\"kind\":\"enum\",\"type\":\"AiAssistanceMode\"},{\"name\":\"interview_platform\",\"kind\":\"enum\",\"type\":\"InterviewPlatform\"},{\"name\":\"interview_status\",\"kind\":\"enum\",\"type\":\"InterviewStatus\"},{\"name\":\"scheduled_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_start_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"actual_end_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"first_assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"human_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ai_rating\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendation\",\"kind\":\"enum\",\"type\":\"InterviewRecommendation\"},{\"name\":\"ai_disagrees_with_ai\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"difficulty_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"supportiveness_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interview_round_analytics_daily\"},\"InterviewerOrganisationAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interviewer_organisation_analytics\"},\"InterviewerJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"interviewer_job_analytics\"},\"InterviewerOrganisationAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interviewer_organisation_analytics_daily\"},\"InterviewerJobAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employee_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unsure_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ai_disagreement_percent\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_difficulty\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_supportiveness\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"avg_topics_coverage_percent\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"interviewer_job_analytics_daily\"},\"JobApplicationField\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"field_type\",\"kind\":\"enum\",\"type\":\"JobApplicationFieldType\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_mandatory\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobApplicationFieldToOrganisation\"},{\"name\":\"job_application_template\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationFieldToJobApplicationTemplate\"},{\"name\":\"job_application_responses\",\"kind\":\"object\",\"type\":\"JobApplicationResponse\",\"relationName\":\"JobApplicationFieldToJobApplicationResponse\"}],\"dbName\":null},\"JobApplicationResponse\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_application_field_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"response\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"field_type\",\"kind\":\"enum\",\"type\":\"JobApplicationFieldType\"},{\"name\":\"label\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_mandatory\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_submitted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by_organisation\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToJobApplicationResponse\"},{\"name\":\"field\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToJobApplicationResponse\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToJobApplicationResponse\"}],\"dbName\":null},\"JobApplicationTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"JobApplicationTemplateScope\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobApplicationTemplateToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobApplicationTemplateToJobDescription\"},{\"name\":\"fields\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToJobApplicationTemplate\"}],\"dbName\":null},\"JobDescription\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"JobDescriptionStatus\"},{\"name\":\"screeningQuestions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recommendedQuestions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"uploaded_job_description_path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_jd_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_jd_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"RenderedJdDocument\"},{\"name\":\"display_html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"display_html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DisplayHtmlDocument\"},{\"name\":\"is_plan_published\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_posted\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"ai_insight\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"job_fit_comparison\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"openings\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"job_profile_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_profile\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobDescriptionToJobProfile\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobDescriptionToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToJobDescription\"},{\"name\":\"source_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"SourceDocument\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToJobDescription\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToJobDescription\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToJobDescription\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToJobDescription\"},{\"name\":\"job_description_data\",\"kind\":\"object\",\"type\":\"JobDescriptionData\",\"relationName\":\"JobDescriptionToJobDescriptionData\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToJobDescription\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"JobDescriptionToOngoingEvaluation\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToJobDescription\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToJobDescription\"},{\"name\":\"resumes\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"JobDescriptionToResume\"},{\"name\":\"budget\",\"kind\":\"object\",\"type\":\"Budget\",\"relationName\":\"BudgetToJobDescription\"},{\"name\":\"hiring_manager\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"HiringManager\"},{\"name\":\"recruiters\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"JobDescriptionToUser\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"JobDescriptionToTranscript\"},{\"name\":\"integration_job_syncs\",\"kind\":\"object\",\"type\":\"IntegrationJobSync\",\"relationName\":\"IntegrationJobSyncToJobDescription\"},{\"name\":\"job_application_template\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationTemplateToJobDescription\"},{\"name\":\"offer_letter_templates\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"JobDescriptionToOfferLetterTemplate\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"JobDescriptionToOffer\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationToJobDescription\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToJobDescription\"},{\"name\":\"hiring_plan_line_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_plan_line\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"PlanLineRequisitions\"},{\"name\":\"referenced_by_plan_lines\",\"kind\":\"object\",\"type\":\"HiringPlanLine\",\"relationName\":\"PlanLineTemplateJd\"}],\"dbName\":null},\"JobDescriptionData\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToJobDescriptionData\"}],\"dbName\":null},\"JobProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assigned_to\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"JobProfileStatus\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_role_level\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_arrangement\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"employment_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"city\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"experience\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"experience_min\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"comp_range\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"budget\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"openings\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"responsibilities\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"must_have_skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"nice_to_have_skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"culture\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"competencies\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"conversation_history\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"orion_execution_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"JobProfileToOrganisation\"},{\"name\":\"department\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToJobProfile\"},{\"name\":\"hiring_manager\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"JobProfileHiringManager\"},{\"name\":\"creator\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProfileCreator\"},{\"name\":\"assignee\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ProfileAssignee\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToJobProfile\"}],\"dbName\":null},\"JobRoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assigned_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"failed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"no_show_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_completion_minutes\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"avg_completion_minutes\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null},\"JobRoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"plan_order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"plan_type\",\"kind\":\"enum\",\"type\":\"EvaluationPlanType\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"assigned_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"completed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"passed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"failed_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"no_show_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_completion_minutes\",\"kind\":\"scalar\",\"type\":\"BigInt\"},{\"name\":\"avg_completion_minutes\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"job_round_analytics_daily\"},\"LiveAnalysis\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"analysis\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToLiveAnalysis\"}],\"dbName\":null},\"Message\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"receiver_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sender\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"Sent Messages\"},{\"name\":\"receiver\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"Received Messages\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Notes\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"pinned\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToNotes\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"NotesToUser\"}],\"dbName\":null},\"OfferLetterTemplate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_config\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"scope\",\"kind\":\"enum\",\"type\":\"OfferLetterTemplateScope\"},{\"name\":\"is_default\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_draft\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OfferLetterTemplateToOrganisation\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOfferLetterTemplate\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateDocx\"},{\"name\":\"html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateHtml\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferToOfferLetterTemplate\"},{\"name\":\"offer_letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetterToOfferLetterTemplate\"}],\"dbName\":null},\"Offer\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"letter_version_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"current_offer_letter_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"terms\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"draft_edited_html_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sent_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"responded_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"accepted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"declined_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"withdrawn_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"joined_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"no_show_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"withdraw_reason\",\"kind\":\"enum\",\"type\":\"OfferWithdrawReason\"},{\"name\":\"withdraw_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"withdraw_actor\",\"kind\":\"enum\",\"type\":\"OfferWithdrawActor\"},{\"name\":\"no_show_reason\",\"kind\":\"enum\",\"type\":\"OfferNoShowReason\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOffer\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OfferToOrganisation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OfferCandidate\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOffer\"},{\"name\":\"template\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferToOfferLetterTemplate\"},{\"name\":\"draft_edited_html_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferDraftEditedHtml\"},{\"name\":\"current_offer_letter\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferCurrentLetter\"},{\"name\":\"letters\",\"kind\":\"object\",\"type\":\"OfferLetter\",\"relationName\":\"OfferLetters\"}],\"dbName\":null},\"OfferLetter\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"offer_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"OfferLetterStatus\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"template_version\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"generated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"generation_note\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferLetters\"},{\"name\":\"current_for_offer\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferCurrentLetter\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterPdf\"},{\"name\":\"template\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterToOfferLetterTemplate\"},{\"name\":\"template_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"OfferLetterTemplateSnapshot\"}],\"dbName\":null},\"OngoingEvaluation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"state\",\"kind\":\"enum\",\"type\":\"OngoingEvaluationState\"},{\"name\":\"round_status\",\"kind\":\"enum\",\"type\":\"OngoingEvaluationRoundStatus\"},{\"name\":\"comments\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_committed\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_purpose\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"focus_areas\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topics\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assignee\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"elimination_round\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"evaluation_type\",\"kind\":\"enum\",\"type\":\"EvaluationType\"},{\"name\":\"type_of_round\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"duration\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"deadline\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"duration_unit\",\"kind\":\"enum\",\"type\":\"DurationUnit\"},{\"name\":\"details\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_current\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"jobDescription\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOngoingEvaluation\"},{\"name\":\"application\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOngoingEvaluation\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OngoingEvaluationToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"OngoingEvaluationToResume\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OngoingEvaluationToOrganisation\"},{\"name\":\"evaluation_plan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToOngoingEvaluation\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToOngoingEvaluation\"},{\"name\":\"assignment\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToOngoingEvaluation\"},{\"name\":\"assessment\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToOngoingEvaluation\"}],\"dbName\":null},\"OpenJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"compensation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"vacancies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unscreened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ongoing_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"selected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"open_job_analytics\"},\"OpenJobAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"compensation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"vacancies\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"unscreened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"ongoing_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"selected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"open_job_analytics_daily\"},\"Organisation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"industry\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"about\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"website\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"size\",\"kind\":\"enum\",\"type\":\"OrganisationSize\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"address\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"company_values\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"allowed_email_domains\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"send_email\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interviewers\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"OrganisationToUser\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"alias\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"logo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_sequence\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_sequence\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToOrganisation\"},{\"name\":\"user_roles\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"OrganisationToUserRole\"},{\"name\":\"job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToOrganisation\"},{\"name\":\"job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobProfileToOrganisation\"},{\"name\":\"assessment_library\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToOrganisation\"},{\"name\":\"assignment_library\",\"kind\":\"object\",\"type\":\"AssignmentLibrary\",\"relationName\":\"AssignmentLibraryToOrganisation\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToOrganisation\"},{\"name\":\"assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentToOrganisation\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToOrganisation\"},{\"name\":\"resumes\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"OrganisationToResume\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToOrganisation\"},{\"name\":\"suggestions\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"OrganisationToSuggestion\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToOrganisation\"},{\"name\":\"actions\",\"kind\":\"object\",\"type\":\"Action\",\"relationName\":\"ActionToOrganisation\"},{\"name\":\"integration_credentials\",\"kind\":\"object\",\"type\":\"IntegrationCredential\",\"relationName\":\"IntegrationCredentialToOrganisation\"},{\"name\":\"zoho_sync_mappings\",\"kind\":\"object\",\"type\":\"ZohoSyncMapping\",\"relationName\":\"OrganisationToZohoSyncMapping\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToOrganisation\"},{\"name\":\"timezone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"country_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_configs\",\"kind\":\"object\",\"type\":\"OrganisationConfig\",\"relationName\":\"OrganisationToOrganisationConfig\"},{\"name\":\"activity_events\",\"kind\":\"object\",\"type\":\"ActivityEvent\",\"relationName\":\"ActivityEventToOrganisation\"},{\"name\":\"usage_ledger_entries\",\"kind\":\"object\",\"type\":\"UsageLedgerEntry\",\"relationName\":\"OrganisationToUsageLedgerEntry\"},{\"name\":\"usage_aggregates\",\"kind\":\"object\",\"type\":\"UsageAggregate\",\"relationName\":\"OrganisationToUsageAggregate\"},{\"name\":\"channel_provider_configs\",\"kind\":\"object\",\"type\":\"ChannelProviderConfig\",\"relationName\":\"ChannelProviderConfigToOrganisation\"},{\"name\":\"conversations\",\"kind\":\"object\",\"type\":\"Conversation\",\"relationName\":\"ConversationToOrganisation\"},{\"name\":\"communication_messages\",\"kind\":\"object\",\"type\":\"CommunicationMessage\",\"relationName\":\"CommunicationMessageToOrganisation\"},{\"name\":\"job_application_fields\",\"kind\":\"object\",\"type\":\"JobApplicationField\",\"relationName\":\"JobApplicationFieldToOrganisation\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToOrganisation\"},{\"name\":\"job_application_templates\",\"kind\":\"object\",\"type\":\"JobApplicationTemplate\",\"relationName\":\"JobApplicationTemplateToOrganisation\"},{\"name\":\"offer_letter_templates\",\"kind\":\"object\",\"type\":\"OfferLetterTemplate\",\"relationName\":\"OfferLetterTemplateToOrganisation\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferToOrganisation\"},{\"name\":\"sources\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"OrganisationToSource\"},{\"name\":\"evaluation_criteria\",\"kind\":\"object\",\"type\":\"EvaluationCriteria\",\"relationName\":\"EvaluationCriteriaToOrganisation\"},{\"name\":\"departments\",\"kind\":\"object\",\"type\":\"Department\",\"relationName\":\"DepartmentToOrganisation\"},{\"name\":\"hiring_plans\",\"kind\":\"object\",\"type\":\"HiringPlan\",\"relationName\":\"HiringPlanToOrganisation\"},{\"name\":\"employees\",\"kind\":\"object\",\"type\":\"Employee\",\"relationName\":\"EmployeeToOrganisation\"},{\"name\":\"competency_dictionaries\",\"kind\":\"object\",\"type\":\"CompetencyDictionary\",\"relationName\":\"CompetencyDictionaryToOrganisation\"},{\"name\":\"billing_transactions\",\"kind\":\"object\",\"type\":\"BillingTransaction\",\"relationName\":\"BillingTransactionToOrganisation\"},{\"name\":\"payment_webhook_events\",\"kind\":\"object\",\"type\":\"PaymentWebhookEvent\",\"relationName\":\"OrganisationToPaymentWebhookEvent\"}],\"dbName\":null},\"OrganisationConfig\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"config_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToOrganisationConfig\"}],\"dbName\":\"organisationConfig\"},\"BillingTransaction\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchase_reference\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchase_display_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transaction_type\",\"kind\":\"enum\",\"type\":\"BillingTransactionType\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"BillingTransactionStatus\"},{\"name\":\"failure_category\",\"kind\":\"enum\",\"type\":\"BillingTransactionFailureCategory\"},{\"name\":\"failure_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"currency\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_order_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_payment_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment_method\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_subscription_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"razorpay_refund_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refund_reason\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refund_amount\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"idempotency_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"invoice_number\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"purchaser_email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"payment_mismatch_status\",\"kind\":\"enum\",\"type\":\"BillingPaymentMismatchStatus\"},{\"name\":\"payment_mismatch_fulfilled_by_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"BillingTransactionToOrganisation\"}],\"dbName\":\"billing_transactions\"},\"PaymentWebhookEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider_event_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"PaymentWebhookEventStatus\"},{\"name\":\"billing_transaction_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"processed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToPaymentWebhookEvent\"}],\"dbName\":\"payment_webhook_events\"},\"Permission\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"permissions\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"PermissionToUser\"},{\"name\":\"user_roles\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"PermissionToUserRole\"}],\"dbName\":null},\"PipelineDistributionAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filtered_in_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"min_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"behavioral_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"pipeline_distribution_analytics\"},\"PipelineDistributionAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"filtered_in_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"min_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_screening_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"business_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"behavioral_round_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":\"pipeline_distribution_analytics_daily\"},\"AsyncOperation\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"operation_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"enum\",\"type\":\"AsyncOperationStatus\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"payload\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"correlationId\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sourceService\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"retry_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"max_retries\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"next_retry_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"error_message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"error_details\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":null},\"Question\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"assessment_library_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"skill\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"answer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"options\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"max_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"difficulty\",\"kind\":\"enum\",\"type\":\"Difficulty\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"candidate\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"QuestionToUser\"},{\"name\":\"assessments\",\"kind\":\"object\",\"type\":\"AssessmentQuestion\",\"relationName\":\"QuestionToAssessmentQuestion\"},{\"name\":\"assessmentLibrary\",\"kind\":\"object\",\"type\":\"AssessmentLibrary\",\"relationName\":\"AssessmentLibraryToQuestion\"},{\"name\":\"evaluationPlan\",\"kind\":\"object\",\"type\":\"EvaluationPlan\",\"relationName\":\"EvaluationPlanToQuestion\"},{\"name\":\"candidateResponse\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"CandidateQuestionResponseToQuestion\"}],\"dbName\":null},\"RefreshToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"TokenRefresh\"}],\"dbName\":null},\"ReportingOverviewJobAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"opened_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"target_closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"closing_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_open\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"closure_type\",\"kind\":\"enum\",\"type\":\"OpenJobClosureType\"},{\"name\":\"time_to_hire_days\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"in_consideration_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"recruiters\",\"kind\":\"object\",\"type\":\"ReportingOverviewJobRecruiter\",\"relationName\":\"ReportingOverviewJobAnalyticsToReportingOverviewJobRecruiter\"}],\"dbName\":\"reporting_overview_job_analytics\"},\"ReportingOverviewJobRecruiter\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"recruiter_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job\",\"kind\":\"object\",\"type\":\"ReportingOverviewJobAnalytics\",\"relationName\":\"ReportingOverviewJobAnalyticsToReportingOverviewJobRecruiter\"}],\"dbName\":\"reporting_overview_job_recruiters\"},\"Resume\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"uploaded_resume_path\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"rendered_export_document_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_template_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"file_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"summary\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"ResumeToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToResume\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToResume\"},{\"name\":\"document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"ResumeSourceDocument\"},{\"name\":\"rendered_export_document\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"RenderedResumeExport\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToResume\"},{\"name\":\"interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToResume\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToResume\"},{\"name\":\"resume_data\",\"kind\":\"object\",\"type\":\"ResumeData\",\"relationName\":\"ResumeToResumeData\"},{\"name\":\"fit_check\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToResume\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToResume\"},{\"name\":\"yearsOfExperience\",\"kind\":\"scalar\",\"type\":\"Int\"}],\"dbName\":null},\"ResumeData\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resume_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeToResumeData\"}],\"dbName\":null},\"RoundAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"round_result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduling_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"decision_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"round_analytics\"},\"RoundAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"application_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_plan_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"round_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"evaluation_category\",\"kind\":\"enum\",\"type\":\"EvaluationCategory\"},{\"name\":\"round_type\",\"kind\":\"enum\",\"type\":\"RoundType\"},{\"name\":\"assigned_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"started_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"evaluated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_completed_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"round_result\",\"kind\":\"enum\",\"type\":\"RoundResult\"},{\"name\":\"round_result_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduling_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"feedback_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"decision_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_round_duration_minutes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"is_custom\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"round_analytics_daily\"},\"Source\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"parent_source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToSource\"},{\"name\":\"parent\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceHierarchy\"},{\"name\":\"children\",\"kind\":\"object\",\"type\":\"Source\",\"relationName\":\"SourceHierarchy\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToSource\"}],\"dbName\":null},\"SourceEffectivenessAnalytics\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applications_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"screened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"evaluated_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hired_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"fit_score_sample_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"average_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":\"source_effectiveness_analytics\"},\"SourceEffectivenessAnalyticsDaily\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"snapshot_date\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_category\",\"kind\":\"enum\",\"type\":\"SourceCategory\"},{\"name\":\"source_colour\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"role_title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"hiring_manager_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"applications_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"screened_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"evaluated_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"rejected_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"on_hold_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"shortlisted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offered_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_accepted_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"offer_declined_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"withdrawn_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"hired_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"total_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"fit_score_sample_count\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"average_fit_score\",\"kind\":\"scalar\",\"type\":\"Float\"}],\"dbName\":\"source_effectiveness_analytics_daily\"},\"Suggestion\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"transcript_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"suggestion\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"question\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToSuggestion\"},{\"name\":\"transcripts\",\"kind\":\"object\",\"type\":\"Transcript\",\"relationName\":\"SuggestionToTranscript\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToSuggestion\"}],\"dbName\":null},\"Transcript\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"suggestion_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"intermediate_feedback_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"job_description_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interviewer_timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"candidate_timestamp\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"interviewer\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"candidate\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"order_no\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToTranscript\"},{\"name\":\"suggestion\",\"kind\":\"object\",\"type\":\"Suggestion\",\"relationName\":\"SuggestionToTranscript\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToTranscript\"}],\"dbName\":null},\"LicenseIncludedWorkflow\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflow_name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"}],\"dbName\":\"license_included_workflows\"},\"UsageAggregate\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metric_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dimension_hash\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dimensions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"total_quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"period_start\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"period_end\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUsageAggregate\"},{\"name\":\"metric\",\"kind\":\"object\",\"type\":\"UsageMetricDefinition\",\"relationName\":\"UsageAggregateToUsageMetricDefinition\"}],\"dbName\":\"usage_aggregates\"},\"UsageLedgerEntry\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"metric_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"quantity\",\"kind\":\"scalar\",\"type\":\"Decimal\"},{\"name\":\"occurred_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"dimensions\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"idempotency_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"source_type\",\"kind\":\"enum\",\"type\":\"UsageSourceType\"},{\"name\":\"source_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"resource_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUsageLedgerEntry\"},{\"name\":\"metric\",\"kind\":\"object\",\"type\":\"UsageMetricDefinition\",\"relationName\":\"UsageLedgerEntryToUsageMetricDefinition\"}],\"dbName\":\"usage_ledger\"},\"UsageMetricDefinition\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"unit\",\"kind\":\"enum\",\"type\":\"UsageUnit\"},{\"name\":\"aggregation_type\",\"kind\":\"enum\",\"type\":\"UsageAggregationType\"},{\"name\":\"metadata\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"ledger_entries\",\"kind\":\"object\",\"type\":\"UsageLedgerEntry\",\"relationName\":\"UsageLedgerEntryToUsageMetricDefinition\"},{\"name\":\"aggregates\",\"kind\":\"object\",\"type\":\"UsageAggregate\",\"relationName\":\"UsageAggregateToUsageMetricDefinition\"}],\"dbName\":\"usage_metric_definitions\"},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"object\",\"type\":\"UserRole\",\"relationName\":\"UserToUserRole\"},{\"name\":\"organisation_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"google_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"is_self_registered\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"permission_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferences\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"invitation_status\",\"kind\":\"enum\",\"type\":\"UserInvitationStatus\"},{\"name\":\"invited_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invitation_expires_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"invitation_accepted_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"permission\",\"kind\":\"object\",\"type\":\"Permission\",\"relationName\":\"PermissionToUser\"},{\"name\":\"organisation\",\"kind\":\"object\",\"type\":\"Organisation\",\"relationName\":\"OrganisationToUser\"},{\"name\":\"applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationToUser\"},{\"name\":\"resume\",\"kind\":\"object\",\"type\":\"Resume\",\"relationName\":\"ResumeToUser\"},{\"name\":\"candidate_profile\",\"kind\":\"object\",\"type\":\"CandidateProfile\",\"relationName\":\"CandidateProfileToUser\"},{\"name\":\"user_profile\",\"kind\":\"object\",\"type\":\"UserProfile\",\"relationName\":\"UserToUserProfile\"},{\"name\":\"job_description\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"JobDescriptionToUser\"},{\"name\":\"hiring_manager_job_descriptions\",\"kind\":\"object\",\"type\":\"JobDescription\",\"relationName\":\"HiringManager\"},{\"name\":\"hiring_manager_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"JobProfileHiringManager\"},{\"name\":\"approvals\",\"kind\":\"object\",\"type\":\"Approval\",\"relationName\":\"ApprovalToUser\"},{\"name\":\"sent_messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"Sent Messages\"},{\"name\":\"received_messages\",\"kind\":\"object\",\"type\":\"Message\",\"relationName\":\"Received Messages\"},{\"name\":\"profile_created\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"first_login_status\",\"kind\":\"enum\",\"type\":\"FirstLoginStatus\"},{\"name\":\"candidate_interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"CandidateInterviews\"},{\"name\":\"interviewer_interviews\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewerInterviews\"},{\"name\":\"assessment_results\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"AssessmentToUser\"},{\"name\":\"candidate_assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"CandidateAssessments\"},{\"name\":\"reviewer_assessments\",\"kind\":\"object\",\"type\":\"Assessment\",\"relationName\":\"ReviewerAssessments\"},{\"name\":\"candidate_assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"CandidateAssignments\"},{\"name\":\"reviewer_assignments\",\"kind\":\"object\",\"type\":\"Assignment\",\"relationName\":\"AssignmentReviewer\"},{\"name\":\"candidateResponses\",\"kind\":\"object\",\"type\":\"CandidateQuestionResponse\",\"relationName\":\"CandidateQuestionResponseToUser\"},{\"name\":\"questions\",\"kind\":\"object\",\"type\":\"Question\",\"relationName\":\"QuestionToUser\"},{\"name\":\"ongoing_evaluations\",\"kind\":\"object\",\"type\":\"OngoingEvaluation\",\"relationName\":\"OngoingEvaluationToUser\"},{\"name\":\"actor_activity_logs\",\"kind\":\"object\",\"type\":\"ActivityLog\",\"relationName\":\"ActorActivityLogs\"},{\"name\":\"actions\",\"kind\":\"object\",\"type\":\"Action\",\"relationName\":\"ActionToUser\"},{\"name\":\"calendly\",\"kind\":\"object\",\"type\":\"Calendly\",\"relationName\":\"CalendlyToUser\"},{\"name\":\"google\",\"kind\":\"object\",\"type\":\"Google\",\"relationName\":\"GoogleToUser\"},{\"name\":\"fitChecks\",\"kind\":\"object\",\"type\":\"FitCheck\",\"relationName\":\"FitCheckToUser\"},{\"name\":\"created_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"ProfileCreator\"},{\"name\":\"assigned_job_profiles\",\"kind\":\"object\",\"type\":\"JobProfile\",\"relationName\":\"ProfileAssignee\"},{\"name\":\"user_auth_modules\",\"kind\":\"object\",\"type\":\"AuthModule\",\"relationName\":\"UserAuthModule\"},{\"name\":\"refresh_token_auth\",\"kind\":\"object\",\"type\":\"RefreshToken\",\"relationName\":\"TokenRefresh\"},{\"name\":\"zoom_meeting_participants\",\"kind\":\"object\",\"type\":\"ZoomMeetingParticipant\",\"relationName\":\"UserToZoomMeetingParticipant\"},{\"name\":\"notes\",\"kind\":\"object\",\"type\":\"Notes\",\"relationName\":\"NotesToUser\"},{\"name\":\"recruiter_applications\",\"kind\":\"object\",\"type\":\"Application\",\"relationName\":\"ApplicationRecruiter\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"location\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"salary\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"education\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"skills\",\"kind\":\"scalar\",\"type\":\"Json\"},{\"name\":\"notice_period\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"preferred_work_mode\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"gender\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"ethnicity\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"veteran_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"disability_status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"professional_expertise\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"documents\",\"kind\":\"object\",\"type\":\"Document\",\"relationName\":\"DocumentToUser\"},{\"name\":\"offers\",\"kind\":\"object\",\"type\":\"Offer\",\"relationName\":\"OfferCandidate\"},{\"name\":\"employee_number\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"employee_code\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"department_members\",\"kind\":\"object\",\"type\":\"DepartmentMember\",\"relationName\":\"DepartmentMemberships\"}],\"dbName\":null},\"UserProfile\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"phone\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"date_of_birth\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"designation\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserProfile\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"work_experience\",\"kind\":\"scalar\",\"type\":\"Json\"}],\"dbName\":null},\"ZoomMeeting\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"interview\",\"kind\":\"object\",\"type\":\"Interview\",\"relationName\":\"InterviewToZoomMeeting\"},{\"name\":\"zoom_host_user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_uuid\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"join_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"start_url\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"topic\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scheduled_start_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"scheduled_end_time\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"participants\",\"kind\":\"object\",\"type\":\"ZoomMeetingParticipant\",\"relationName\":\"ZoomMeetingToZoomMeetingParticipant\"}],\"dbName\":null},\"ZoomMeetingParticipant\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting_row_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"zoom_meeting\",\"kind\":\"object\",\"type\":\"ZoomMeeting\",\"relationName\":\"ZoomMeetingToZoomMeetingParticipant\"},{\"name\":\"user_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToZoomMeetingParticipant\"},{\"name\":\"zoom_participant_id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"role\",\"kind\":\"enum\",\"type\":\"ZoomMeetingParticipantRole\"},{\"name\":\"is_active\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"created_by\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updated_by\",\"kind\":\"scalar\",\"type\":\"String\"}],\"dbName\":null},\"ZoomWebhookEvent\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"dedupe_key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"event\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"created_at\",\"kind\":\"scalar\",\"type\":\"DateTime\"}],\"dbName\":null}},\"enums\":{},\"types\":{}}")
2913
2917
  defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
2914
2918
  config.engineWasm = {
2915
2919
  getRuntime: async () => require('./query_engine_bg.js'),