@adaptware/eagles-db 0.6.7 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "prisma-client-8dc903aa694e9855a3877274f128a16fd53d1332016b052a77ec811806b045f7",
2
+ "name": "prisma-client-e9417467f9e93e98cb327c7936ad0b7cf1a8f9394978c3b6bcf6b05f22c14ecc",
3
3
  "main": "index.js",
4
4
  "types": "index.d.ts",
5
5
  "browser": "default.js",
@@ -1253,6 +1253,8 @@ model CompetencyDictionary {
1253
1253
  enum ConsentType {
1254
1254
  PLATFORM_TERMS
1255
1255
  INTERVIEW_SESSION
1256
+ /// Read-only catalog document; no ConsentRecord submit flow
1257
+ PRIVACY_POLICY
1256
1258
 
1257
1259
  @@schema("public")
1258
1260
  }
@@ -1271,6 +1273,14 @@ enum ConsentOutcome {
1271
1273
  @@schema("public")
1272
1274
  }
1273
1275
 
1276
+ enum ConsentCatalogVersionStatus {
1277
+ DRAFT
1278
+ PUBLISHED
1279
+ ARCHIVED
1280
+
1281
+ @@schema("public")
1282
+ }
1283
+
1274
1284
  enum DataErasureTrigger {
1275
1285
  ADMIN
1276
1286
  USER_REQUEST
@@ -1297,69 +1307,77 @@ enum DataErasureRequestStatus {
1297
1307
  @@schema("public")
1298
1308
  }
1299
1309
 
1310
+ /// Catalog identity is (organisation_id, consent_type). Null organisation_id = platform default.
1311
+ /// Platform rows also need a partial unique index on consent_type WHERE organisation_id IS NULL
1312
+ /// (PostgreSQL treats NULLs as distinct in the composite unique below).
1300
1313
  model ConsentDocument {
1301
- id String @id @default(uuid())
1302
- /// Stable key, e.g. PLATFORM_TERMS, INTERVIEW_SESSION_DEFAULT
1303
- slug String @unique
1304
- consent_type ConsentType
1305
- is_active Boolean @default(true)
1306
- created_at DateTime @default(now())
1307
- updated_at DateTime @updatedAt
1308
- versions ConsentDocumentVersion[]
1314
+ id String @id @default(uuid())
1315
+ consent_type ConsentType
1316
+ organisation_id String?
1317
+ organisation Organisation? @relation(fields: [organisation_id], references: [id], onDelete: Cascade)
1318
+ created_at DateTime @default(now())
1319
+ updated_at DateTime @updatedAt
1320
+ versions ConsentDocumentVersion[]
1309
1321
 
1322
+ @@unique([organisation_id, consent_type])
1323
+ @@index([consent_type, organisation_id])
1310
1324
  @@schema("public")
1311
1325
  }
1312
1326
 
1327
+ /// One immutable markdown object per version; S3 location and hash live on the linked Document.
1313
1328
  model ConsentDocumentVersion {
1314
- id String @id @default(uuid())
1315
- document_id String
1316
- document ConsentDocument @relation(fields: [document_id], references: [id], onDelete: Cascade)
1317
- version_number Int
1318
- content_hash String
1319
- locale String @default("en")
1320
- content String @db.Text
1321
- published_at DateTime?
1322
- created_at DateTime @default(now())
1323
- checkboxes ConsentCheckboxDefinition[]
1324
- consent_records ConsentRecord[]
1325
-
1326
- @@unique([document_id, version_number])
1327
- @@index([document_id, published_at(sort: Desc)])
1329
+ id String @id @default(uuid())
1330
+ consent_document_id String
1331
+ consent_document ConsentDocument @relation(fields: [consent_document_id], references: [id], onDelete: Cascade)
1332
+ version_number Int
1333
+ document_id String?
1334
+ document Document? @relation(fields: [document_id], references: [id], onDelete: Restrict)
1335
+ status ConsentCatalogVersionStatus @default(DRAFT)
1336
+ published_at DateTime?
1337
+ created_at DateTime @default(now())
1338
+ updated_at DateTime @updatedAt
1339
+ checkboxes ConsentCheckboxDefinition[]
1340
+ consent_records ConsentRecord[]
1341
+
1342
+ @@unique([consent_document_id, version_number])
1343
+ @@index([consent_document_id, status, version_number(sort: Desc)])
1344
+ @@index([document_id])
1328
1345
  @@schema("public")
1329
1346
  }
1330
1347
 
1331
1348
  model ConsentCheckboxDefinition {
1332
- id String @id @default(uuid())
1333
- document_version_id String
1334
- document_version ConsentDocumentVersion @relation(fields: [document_version_id], references: [id], onDelete: Cascade)
1349
+ id String @id @default(uuid())
1350
+ consent_document_version_id String
1351
+ consent_document_version ConsentDocumentVersion @relation(fields: [consent_document_version_id], references: [id], onDelete: Cascade)
1335
1352
  /// Stable machine key in ConsentRecord.selections JSON
1336
- checkbox_key String
1337
- label String
1338
- sort_order Int @default(0)
1339
- default_required_hint Boolean @default(true)
1353
+ checkbox_key String
1354
+ label String
1355
+ sort_order Int @default(0)
1356
+ default_required_hint Boolean @default(true)
1340
1357
 
1341
- @@unique([document_version_id, checkbox_key])
1358
+ @@unique([consent_document_version_id, checkbox_key])
1342
1359
  @@schema("public")
1343
1360
  }
1344
1361
 
1362
+ /// Consent type is resolved via consent_document_version -> consent_document.consent_type.
1345
1363
  model ConsentRecord {
1346
- id String @id @default(uuid())
1347
- user_id String
1348
- user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
1349
- consent_type ConsentType
1350
- outcome ConsentOutcome
1351
- document_version_id String
1352
- document_version ConsentDocumentVersion @relation(fields: [document_version_id], references: [id], onDelete: Restrict)
1353
- selections Json @default("{}")
1354
- reference_type ConsentReferenceType?
1355
- reference_id String?
1356
- ip_address String?
1357
- user_agent String?
1358
- decline_reason String?
1359
- created_at DateTime @default(now())
1360
-
1361
- @@index([user_id, consent_type, created_at(sort: Desc)])
1362
- @@index([reference_type, reference_id, consent_type, created_at(sort: Desc)])
1364
+ id String @id @default(uuid())
1365
+ user_id String
1366
+ user User @relation(fields: [user_id], references: [id], onDelete: Cascade)
1367
+ outcome ConsentOutcome
1368
+ consent_document_version_id String
1369
+ consent_document_version ConsentDocumentVersion @relation(fields: [consent_document_version_id], references: [id], onDelete: Restrict)
1370
+ selections Json @default("{}")
1371
+ reference_type ConsentReferenceType?
1372
+ reference_id String?
1373
+ ip_address String?
1374
+ user_agent String?
1375
+ decline_reason String?
1376
+ created_at DateTime @default(now())
1377
+
1378
+ @@index([user_id, created_at(sort: Desc)])
1379
+ @@index([reference_type, reference_id, created_at(sort: Desc)])
1380
+ @@index([consent_document_version_id])
1363
1381
  @@schema("public")
1364
1382
  }
1365
1383
 
@@ -1545,6 +1563,7 @@ model Document {
1545
1563
  offer_letter_template_snapshots OfferLetter[] @relation("OfferLetterTemplateSnapshot")
1546
1564
  offer_draft_edited_html Offer[] @relation("OfferDraftEditedHtml")
1547
1565
  application_fit_check_report Application? @relation("ApplicationFitCheckReportDocument")
1566
+ consent_document_versions ConsentDocumentVersion[]
1548
1567
 
1549
1568
  // Indexes
1550
1569
  @@index([candidate_id])
@@ -3752,6 +3771,7 @@ model Organisation {
3752
3771
  licensing_ledger_entries LicensingLedgerEntry[]
3753
3772
  license_package_organisations LicensePackageOrganisation[]
3754
3773
  ai_cost_ledger_entries AiCostLedgerEntry[]
3774
+ consent_documents ConsentDocument[]
3755
3775
 
3756
3776
  @@index([name])
3757
3777
  @@schema("public")