@adaptware/eagles-db 0.5.43 → 0.5.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/client/edge.js +98 -22
  2. package/client/index-browser.js +91 -16
  3. package/client/index.d.ts +5968 -2561
  4. package/client/index.js +103 -27
  5. package/client/package.json +1 -1
  6. package/client/schema.prisma +176 -61
  7. package/client/wasm.js +98 -22
  8. package/package.json +1 -1
  9. package/prisma/schema/applications.prisma +18 -19
  10. package/prisma/schema/evaluationPlan.prisma +7 -0
  11. package/prisma/schema/integration.prisma +1 -0
  12. package/prisma/schema/interview.prisma +0 -1
  13. package/prisma/schema/jobApplicationFields.prisma +15 -17
  14. package/prisma/schema/jobApplicationResponse.prisma +3 -4
  15. package/prisma/schema/migrations/20260522120000_ongoing_evaluation_record_kind/migration.sql +25 -0
  16. package/prisma/schema/migrations/20260523120000_replace_record_kind_with_is_committed/migration.sql +24 -0
  17. package/prisma/schema/migrations/20260528120000_drop_job_description_recommendation_config/migration.sql +2 -0
  18. package/prisma/schema/migrations/20260710120000_add_resume_rendered_export_fields/migration.sql +9 -0
  19. package/prisma/schema/migrations/20260714120000_add_job_description_display_html_document/migration.sql +8 -0
  20. package/prisma/schema/migrations/20260716120000_add_offer_letters/migration.sql +183 -0
  21. package/prisma/schema/migrations/20260716140000_offer_schema_refinements/migration.sql +13 -0
  22. package/prisma/schema/migrations/20260716160000_offer_schema_hardening/migration.sql +95 -0
  23. package/prisma/schema/migrations/20260716180000_offer_letter_template_config/migration.sql +2 -0
  24. package/prisma/schema/migrations/20260716190000_add_evaluation_focus_areas/migration.sql +6 -0
  25. package/prisma/schema/migrations/20260717120000_offer_workflow_approval/migration.sql +30 -0
  26. package/prisma/schema/migrations/20260720120000_offer_letter_template_is_draft/migration.sql +5 -0
  27. package/prisma/schema/migrations/20260720140000_offer_status_split/migration.sql +51 -0
  28. package/prisma/schema/migrations/20260720140001_offer_status_split_backfill/migration.sql +37 -0
  29. package/prisma/schema/migrations/20260722120000_offer_draft_edited_html/migration.sql +13 -0
  30. package/prisma/schema/migrations/20260723150000_offer_withdraw_actor_no_show_reason/migration.sql +10 -0
  31. package/prisma/schema/migrations/20260724120000_open_job_offer_accepted_declined_counts/migration.sql +7 -0
  32. package/prisma/schema/migrations/20260811120000_add_integration_provider_razorpay/migration.sql +6 -0
  33. package/prisma/schema/migrations/20260812120000_add_billing_transactions/migration.sql +49 -0
  34. package/prisma/schema/migrations/20260812130000_drop_billing_transaction_gst_snapshots/migration.sql +3 -0
  35. package/prisma/schema/migrations/20260812180000_billing_transaction_invoice_number/migration.sql +5 -0
  36. package/prisma/schema/migrations/20260813120000_payment_webhooks_gst_refunds/migration.sql +79 -0
  37. package/prisma/schema/migrations/20260813140000_platform_gst_profiles/migration.sql +49 -0
  38. package/prisma/schema/migrations/20260813150000_rename_gst_profiles/migration.sql +53 -0
  39. package/prisma/schema/migrations/20260813160000_remove_gst_billing/migration.sql +16 -0
  40. package/prisma/schema/migrations/20260813170000_billing_licensing_unrecoverable/migration.sql +2 -0
  41. package/prisma/schema/migrations/20260813180000_billing_transaction_payment_method/migration.sql +2 -0
  42. package/prisma/schema/migrations/20260814090000_billing_transaction_purchaser_email/migration.sql +2 -0
  43. package/prisma/schema/migrations/20260816100000_billing_product_organisations/migration.sql +35 -0
  44. package/prisma/schema/migrations/20260816120000_merge_billing_product_organisations/migration.sql +25 -0
  45. package/prisma/schema/migrations/20260817120000_billing_payment_mismatch/migration.sql +7 -0
  46. package/prisma/schema/migrations/20260819120000_billing_product_prices/migration.sql +62 -0
  47. package/prisma/schema/migrations/20260819140000_billing_exchange_rates/migration.sql +25 -0
  48. package/prisma/schema/migrations/20260820120000_billing_transaction_failure_category/migration.sql +31 -0
  49. package/prisma/schema/migrations/20260820130000_backfill_billing_transaction_failure_details/migration.sql +23 -0
  50. package/prisma/schema/migrations/20260820140000_drop_billing_product_price_overrides/migration.sql +2 -0
  51. package/prisma/schema/migrations/20260821120000_drop_billing_product_and_mock_licensing/migration.sql +38 -0
  52. package/prisma/schema/migrations/20260824120000_billing_transaction_purchase_display_name/migration.sql +2 -0
  53. package/prisma/schema/migrations/20260831120000_user_communication_email/migration.sql +6 -0
  54. package/prisma/schema/migrations/20260901143000_assessment_question_bank_state/migration.sql +15 -0
  55. package/prisma/schema/migrations/20260902110000_drop_unused_feedback_table/migration.sql +2 -0
  56. package/prisma/schema/migrations/20260902120000_question_category_two_values/migration.sql +16 -0
  57. package/prisma/schema/migrations/20260902143000_question_bank_item_key/migration.sql +17 -0
  58. package/prisma/schema/migrations/20260903120000_split_round_type_assessment/migration.sql +9 -0
  59. package/prisma/schema/migrations/20260904110000_restore_round_type_assessment_enum/migration.sql +5 -0
  60. package/prisma/schema/migrations/20260904120000_revert_wrong_split_assessment_round_types/migration.sql +42 -0
  61. package/prisma/schema/organisation.prisma +2 -0
  62. package/prisma/schema/payment/billingTransaction.prisma +83 -0
  63. package/prisma/schema/payment/paymentWebhookEvent.prisma +28 -0
  64. package/prisma/.DS_Store +0 -0
  65. package/prisma/schema/.DS_Store +0 -0
  66. package/prisma/schema/feedback.prisma +0 -19
  67. package/prisma/schema/migrations/.DS_Store +0 -0
  68. package/prisma/schema/migrations/20260826160000_add_application_fit_check_report_document/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-76d691dc6489ac84bc64dd7eb041b3d54190fc1007e25202634aa354a1400090",
2
+ "name": "prisma-client-b04809dc5d4e17170055e6dfd3c48ffc8bf1352d4e0b8db938be5f0c9e3c7486",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "default.js",
@@ -451,26 +451,25 @@ model Application {
451
451
  fit_check_report_document_id String? @unique
452
452
  fit_check_report_updated_flag Boolean @default(false)
453
453
  fit_check_report_data Json? @default("{}")
454
-
455
454
  /// Relations
456
- evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id])
457
- candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
458
- organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
459
- resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
460
- job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
461
- fit_check FitCheck?
462
- recruiter User? @relation("ApplicationRecruiter", fields: [recruiter_id], references: [id])
463
- source Source? @relation(fields: [source_id], references: [id], onDelete: SetNull)
464
- interviews Interview[]
465
- assignments Assignment[]
466
- ongoing_evaluations OngoingEvaluation[]
467
- activity_logs ActivityLog[]
468
- notes Notes[]
469
- conversations Conversation[]
470
- communication_messages CommunicationMessage[]
471
- job_application_responses JobApplicationResponse[]
472
- offer Offer?
473
- fit_check_report_document Document? @relation("ApplicationFitCheckReportDocument", fields: [fit_check_report_document_id], references: [id], onDelete: SetNull)
455
+ evaluation_plan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id])
456
+ candidate User @relation(fields: [candidate_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
457
+ organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
458
+ resume Resume @relation(fields: [resume_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
459
+ job_description JobDescription @relation(fields: [job_description_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
460
+ fit_check FitCheck?
461
+ recruiter User? @relation("ApplicationRecruiter", fields: [recruiter_id], references: [id])
462
+ source Source? @relation(fields: [source_id], references: [id], onDelete: SetNull)
463
+ interviews Interview[]
464
+ assignments Assignment[]
465
+ ongoing_evaluations OngoingEvaluation[]
466
+ activity_logs ActivityLog[]
467
+ notes Notes[]
468
+ conversations Conversation[]
469
+ communication_messages CommunicationMessage[]
470
+ job_application_responses JobApplicationResponse[]
471
+ offer Offer?
472
+ fit_check_report_document Document? @relation("ApplicationFitCheckReportDocument", fields: [fit_check_report_document_id], references: [id], onDelete: SetNull)
474
473
 
475
474
  @@unique([candidate_id, job_description_id]) // Ensures candidate applies only once per job
476
475
  @@index([candidate_id])
@@ -557,6 +556,8 @@ model AssessmentLibrary {
557
556
  created_by String
558
557
  updated_by String
559
558
  is_active Boolean @default(true)
559
+ /// Frozen question plan, batch cursor, and bank-generation status (JSON).
560
+ generation_state Json?
560
561
  organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
561
562
  questions Question[] // One assessment → many questions
562
563
  assessments Assessment[]
@@ -1449,8 +1450,17 @@ model EvaluationCriteria {
1449
1450
  @@schema("public")
1450
1451
  }
1451
1452
 
1453
+ /// MCQ / interview round classification on EvaluationPlan and analytics.
1454
+ /// ASSESSMENT is the legacy value kept for backward compatibility — do not drop it.
1455
+ /// GENERAL_APTITUDE_ASSESSMENT and DOMAIN_KNOWLEDGE_ASSESSMENT are explicit split
1456
+ /// types for new aptitude vs domain-knowledge MCQ rounds only.
1452
1457
  enum RoundType {
1458
+ /// Legacy MCQ round type; existing plans and analytics may still use this.
1453
1459
  ASSESSMENT
1460
+ /// New explicit general-aptitude MCQ round.
1461
+ GENERAL_APTITUDE_ASSESSMENT
1462
+ /// New explicit domain-knowledge MCQ round.
1463
+ DOMAIN_KNOWLEDGE_ASSESSMENT
1454
1464
  INTERVIEW
1455
1465
  ASSIGNMENT
1456
1466
  SCREENING
@@ -1545,26 +1555,6 @@ model EvaluationPlan {
1545
1555
  @@schema("public")
1546
1556
  }
1547
1557
 
1548
- model Feedback {
1549
- id String @id @default(uuid())
1550
- interview_id String
1551
- order_no Int
1552
-
1553
- ai_feedback Json?
1554
- human_feedback Json?
1555
-
1556
- created_at DateTime @default(now())
1557
- updated_at DateTime @updatedAt
1558
- created_by String
1559
- updated_by String
1560
- is_active Boolean @default(true)
1561
- interview Interview @relation(fields: [interview_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
1562
-
1563
- @@unique([interview_id, order_no])
1564
- @@index([interview_id])
1565
- @@schema("public")
1566
- }
1567
-
1568
1558
  enum FitCheckStatus {
1569
1559
  RECOMMENDED
1570
1560
  TO_REVIEW
@@ -1843,6 +1833,7 @@ enum IntegrationProvider {
1843
1833
  MICROSOFT
1844
1834
  ZOOM
1845
1835
  CALENDLY
1836
+ RAZORPAY
1846
1837
 
1847
1838
  @@schema("public")
1848
1839
  }
@@ -2053,7 +2044,6 @@ model Interview {
2053
2044
  ongoing_evaluation OngoingEvaluation?
2054
2045
  transcripts Transcript[]
2055
2046
  suggestions Suggestion[]
2056
- feedback Feedback[]
2057
2047
  interviewNotes InterviewNotes[]
2058
2048
  liveAnalysis LiveAnalysis[]
2059
2049
  zoom_meeting ZoomMeeting?
@@ -2370,27 +2360,25 @@ enum JobApplicationFieldType {
2370
2360
 
2371
2361
  model JobApplicationField {
2372
2362
  /// Primary key (UUID)
2373
- id String @id @default(uuid())
2363
+ id String @id @default(uuid())
2374
2364
  /// Foreign keys
2375
- organisation_id String
2376
- template_id String
2365
+ organisation_id String
2366
+ template_id String
2377
2367
  /// Data fields
2378
- field_type JobApplicationFieldType
2379
- label String
2380
- description String?
2381
- is_mandatory Boolean @default(false)
2382
- is_draft Boolean @default(true)
2383
- options String[]
2368
+ field_type JobApplicationFieldType
2369
+ label String
2370
+ description String?
2371
+ is_mandatory Boolean @default(false)
2372
+ is_draft Boolean @default(true)
2373
+ options String[]
2384
2374
  /// Audit fields
2385
- is_active Boolean @default(true)
2386
- created_by String
2387
- updated_by String
2388
- created_at DateTime @default(now())
2389
- updated_at DateTime @updatedAt
2390
-
2375
+ is_active Boolean @default(true)
2376
+ created_by String
2377
+ updated_by String
2378
+ created_at DateTime @default(now())
2379
+ updated_at DateTime @updatedAt
2391
2380
  /// order of question
2392
- order_no Int? //nullable for now to allow migration
2393
-
2381
+ order_no Int? //nullable for now to allow migration
2394
2382
  /// Relations
2395
2383
  organisation Organisation @relation(fields: [organisation_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2396
2384
  job_application_template JobApplicationTemplate @relation(fields: [template_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
@@ -2426,11 +2414,10 @@ model JobApplicationResponse {
2426
2414
  updated_by String
2427
2415
  is_active Boolean @default(true)
2428
2416
  order_no Int? //nullable for now to allow migration
2429
-
2430
2417
  /// Relations
2431
- application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2432
- field JobApplicationField? @relation(fields: [job_application_field_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
2433
- document Document? @relation(fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2418
+ application Application @relation(fields: [application_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
2419
+ field JobApplicationField? @relation(fields: [job_application_field_id], references: [id], onDelete: Restrict, onUpdate: Cascade)
2420
+ document Document? @relation(fields: [document_id], references: [id], onDelete: SetNull, onUpdate: Cascade)
2434
2421
 
2435
2422
  // / Partial unique on (application_id, job_application_field_id) WHERE job_application_field_id IS NOT NULL — see migration SQL
2436
2423
  @@index([application_id, is_active, order_no])
@@ -3572,6 +3559,8 @@ model Organisation {
3572
3559
  licensing_ledger_entries LicensingLedgerEntry[]
3573
3560
  license_package_organisations LicensePackageOrganisation[]
3574
3561
  ai_cost_ledger_entries AiCostLedgerEntry[]
3562
+ billing_transactions BillingTransaction[]
3563
+ payment_webhook_events PaymentWebhookEvent[]
3575
3564
 
3576
3565
  @@index([name])
3577
3566
  @@schema("public")
@@ -3591,6 +3580,119 @@ model OrganisationConfig {
3591
3580
  @@schema("public")
3592
3581
  }
3593
3582
 
3583
+ // PAYMENT SERVICE boundary — portable payment microservice owns these enums/columns.
3584
+
3585
+ enum BillingTransactionStatus {
3586
+ INITIATED
3587
+ ORDER_CREATED
3588
+ PAYMENT_PENDING
3589
+ SUCCESS
3590
+ FAILED
3591
+ CANCELLED
3592
+ REFUND_PENDING
3593
+ REFUND_FAILED
3594
+ REFUNDED
3595
+
3596
+ @@schema("public")
3597
+ }
3598
+
3599
+ enum BillingTransactionType {
3600
+ PURCHASE
3601
+ TOP_UP
3602
+ REFUND
3603
+
3604
+ @@schema("public")
3605
+ }
3606
+
3607
+ enum BillingTransactionFailureCategory {
3608
+ RAZORPAY_ORDER
3609
+ RAZORPAY_PAYMENT
3610
+ REFUND
3611
+ INTERNAL
3612
+
3613
+ @@schema("public")
3614
+ }
3615
+
3616
+ /// Payment reconciliation state when Treadspace status is FAILED but Razorpay captured payment.
3617
+ enum BillingPaymentMismatchStatus {
3618
+ DETECTED
3619
+ UNFULFILLED
3620
+
3621
+ @@schema("public")
3622
+ }
3623
+
3624
+ /// Financial transaction lifecycle for organisation billing purchases.
3625
+ model BillingTransaction {
3626
+ id String @id @default(uuid())
3627
+ organisation_id String
3628
+ /// Opaque plan/product identity supplied at checkout. Not a catalog FK.
3629
+ purchase_reference String
3630
+ /// Human-readable snapshot captured at checkout for invoices and receipts.
3631
+ purchase_display_name String?
3632
+ transaction_type BillingTransactionType
3633
+ status BillingTransactionStatus @default(INITIATED)
3634
+ failure_category BillingTransactionFailureCategory?
3635
+ /// Human-readable or provider detail (e.g. Razorpay error_description).
3636
+ failure_reason String?
3637
+ amount Int
3638
+ currency String @default("INR")
3639
+ razorpay_order_id String?
3640
+ razorpay_payment_id String? @unique
3641
+ /// Razorpay payment method at capture (card, netbanking, upi, wallet, etc.).
3642
+ payment_method String?
3643
+ razorpay_subscription_id String?
3644
+ razorpay_refund_id String?
3645
+ refund_reason String?
3646
+ refund_amount Int?
3647
+ idempotency_key String @unique
3648
+ invoice_number String? @unique
3649
+ /// Email of the org Admin who initiated checkout (bill-to).
3650
+ purchaser_email String?
3651
+ /// Set when FAILED but Razorpay order/payment is captured (reconciliation path).
3652
+ payment_mismatch_status BillingPaymentMismatchStatus?
3653
+ /// Strict same-intent SUCCESS transaction that fulfilled the purchase (UNFULFILLED only).
3654
+ payment_mismatch_fulfilled_by_id String?
3655
+ created_at DateTime @default(now())
3656
+ updated_at DateTime @updatedAt
3657
+
3658
+ organisation Organisation @relation(fields: [organisation_id], references: [id])
3659
+
3660
+ @@index([organisation_id, status])
3661
+ @@index([purchase_reference])
3662
+ @@index([razorpay_order_id])
3663
+ @@map("billing_transactions")
3664
+ @@schema("public")
3665
+ }
3666
+
3667
+ enum PaymentWebhookEventStatus {
3668
+ RECEIVED
3669
+ PROCESSED
3670
+ FAILED
3671
+
3672
+ @@schema("public")
3673
+ }
3674
+
3675
+ /// Idempotent record of payment provider webhook deliveries.
3676
+ model PaymentWebhookEvent {
3677
+ id String @id @default(uuid())
3678
+ organisation_id String?
3679
+ provider String
3680
+ provider_event_id String
3681
+ event_type String
3682
+ status PaymentWebhookEventStatus @default(RECEIVED)
3683
+ billing_transaction_id String?
3684
+ error_message String?
3685
+ processed_at DateTime?
3686
+ created_at DateTime @default(now())
3687
+
3688
+ organisation Organisation? @relation(fields: [organisation_id], references: [id])
3689
+
3690
+ @@unique([provider, provider_event_id])
3691
+ @@index([status, created_at])
3692
+ @@map("payment_webhook_events")
3693
+ @@schema("public")
3694
+ }
3695
+
3594
3696
  model Permission {
3595
3697
  id String @id @default(uuid())
3596
3698
  permissions String[] @default([])
@@ -3728,12 +3830,24 @@ enum Difficulty {
3728
3830
  @@schema("public")
3729
3831
  }
3730
3832
 
3833
+ enum QuestionCategory {
3834
+ /// Aptitude, logical reasoning, numerical, verbal — non-domain general tests.
3835
+ GENERAL_APTITUDE
3836
+ /// Role/domain/technical knowledge (skills from JD and competencies).
3837
+ DOMAIN_KNOWLEDGE
3838
+
3839
+ @@schema("public")
3840
+ }
3841
+
3731
3842
  model Question {
3732
3843
  id String @id @default(uuid())
3733
3844
  assessment_library_id String?
3734
3845
  evaluation_plan_id String?
3735
3846
  candidate_id String?
3736
3847
  skill String?
3848
+ category QuestionCategory?
3849
+ /// Stable idempotency key for reusable bank rows: `{generationSeed}:{planSlot}`.
3850
+ bank_item_key String?
3737
3851
  question String
3738
3852
  answer String
3739
3853
  options String[] // For MCQ's
@@ -3750,6 +3864,7 @@ model Question {
3750
3864
  evaluationPlan EvaluationPlan? @relation(fields: [evaluation_plan_id], references: [id], onDelete: SetNull)
3751
3865
  candidateResponse CandidateQuestionResponse[]
3752
3866
 
3867
+ @@unique([assessment_library_id, bank_item_key])
3753
3868
  @@schema("public")
3754
3869
  }
3755
3870