@happyvertical/smrt-projects 0.52.0 → 0.53.0

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 (54) hide show
  1. package/AGENTS.md +20 -9
  2. package/README.md +13 -1
  3. package/SERVICE_TIME_MIGRATION.md +45 -3
  4. package/dist/index.js +123 -586
  5. package/dist/index.js.map +1 -1
  6. package/dist/manifest.json +3 -1484
  7. package/dist/models/service-evidence.d.ts +13 -92
  8. package/dist/models/service-evidence.d.ts.map +1 -1
  9. package/dist/playground.js +2 -2
  10. package/dist/playground.js.map +1 -1
  11. package/dist/services/service-evidence-service.d.ts +6 -55
  12. package/dist/services/service-evidence-service.d.ts.map +1 -1
  13. package/dist/services/subscription-commercial-resolver.d.ts +1 -1
  14. package/dist/services/subscription-commercial-resolver.d.ts.map +1 -1
  15. package/dist/smrt-knowledge.json +10 -1068
  16. package/dist/svelte/components/ApprovalActions.svelte +1 -1
  17. package/dist/svelte/components/ApprovalActions.svelte.d.ts +1 -1
  18. package/dist/svelte/components/ApprovalActions.svelte.d.ts.map +1 -1
  19. package/dist/svelte/components/__tests__/TimesheetsReexports.test.js +18 -0
  20. package/dist/svelte/i18n.d.ts +0 -9
  21. package/dist/svelte/i18n.d.ts.map +1 -1
  22. package/dist/svelte/i18n.js +0 -9
  23. package/dist/svelte/index.d.ts +2 -8
  24. package/dist/svelte/index.d.ts.map +1 -1
  25. package/dist/svelte/index.js +3 -4
  26. package/dist/svelte/playground.d.ts +7 -2
  27. package/dist/svelte/playground.d.ts.map +1 -1
  28. package/dist/svelte/playground.js +7 -2
  29. package/dist/svelte/utils.d.ts +4 -48
  30. package/dist/svelte/utils.d.ts.map +1 -1
  31. package/dist/svelte/utils.js +4 -56
  32. package/dist/svelte/utils.test.js +1 -1
  33. package/dist/types.d.ts +1 -10
  34. package/dist/types.d.ts.map +1 -1
  35. package/package.json +18 -18
  36. package/dist/svelte/components/DurationDisplay.svelte +0 -81
  37. package/dist/svelte/components/DurationDisplay.svelte.d.ts +0 -20
  38. package/dist/svelte/components/DurationDisplay.svelte.d.ts.map +0 -1
  39. package/dist/svelte/components/TimeEntryCard.svelte +0 -304
  40. package/dist/svelte/components/TimeEntryCard.svelte.d.ts +0 -25
  41. package/dist/svelte/components/TimeEntryCard.svelte.d.ts.map +0 -1
  42. package/dist/svelte/components/TimeEntryList.svelte +0 -360
  43. package/dist/svelte/components/TimeEntryList.svelte.d.ts +0 -24
  44. package/dist/svelte/components/TimeEntryList.svelte.d.ts.map +0 -1
  45. package/dist/svelte/components/TimeSummary.svelte +0 -176
  46. package/dist/svelte/components/TimeSummary.svelte.d.ts +0 -30
  47. package/dist/svelte/components/TimeSummary.svelte.d.ts.map +0 -1
  48. package/dist/svelte/components/__tests__/DurationDisplay.test.js +0 -57
  49. package/dist/svelte/components/__tests__/TimeEntryCard.test.js +0 -45
  50. package/dist/svelte/components/__tests__/TimeEntryList.test.js +0 -50
  51. package/dist/svelte/components/__tests__/TimeSummary.test.js +0 -39
  52. package/dist/svelte/components/utils.d.ts +0 -51
  53. package/dist/svelte/components/utils.d.ts.map +0 -1
  54. package/dist/svelte/components/utils.js +0 -58
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-projects",
5
- "packageVersion": "0.52.0",
5
+ "packageVersion": "0.53.0",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-projects:DevelopmentRequestHistoryCollection": {
8
8
  "name": "developmentrequesthistorycollection",
@@ -7204,1488 +7204,6 @@
7204
7204
  "version": "bcc95ebe"
7205
7205
  },
7206
7206
  "importPath": "@happyvertical/smrt-projects"
7207
- },
7208
- "@happyvertical/smrt-projects:ServiceTimeEntry": {
7209
- "name": "servicetimeentry",
7210
- "className": "ServiceTimeEntry",
7211
- "qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntry",
7212
- "collection": "servicetimeentries",
7213
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
7214
- "packageName": "@happyvertical/smrt-projects",
7215
- "fields": {
7216
- "tenantId": {
7217
- "type": "text",
7218
- "required": false,
7219
- "_meta": {
7220
- "sqlType": "UUID",
7221
- "nullable": true,
7222
- "__tenancy": {
7223
- "isTenantIdField": true,
7224
- "autoFilter": true,
7225
- "required": false,
7226
- "autoPopulate": true,
7227
- "nullable": true,
7228
- "mode": "optional",
7229
- "field": "tenantId",
7230
- "allowSuperAdminBypass": false
7231
- }
7232
- }
7233
- },
7234
- "caseId": {
7235
- "type": "crossPackageRef",
7236
- "required": false,
7237
- "related": "@happyvertical/smrt-support:SupportCase",
7238
- "_meta": {
7239
- "nullable": true
7240
- }
7241
- },
7242
- "workRefType": {
7243
- "type": "text",
7244
- "required": false,
7245
- "_meta": {
7246
- "nullable": true
7247
- }
7248
- },
7249
- "workRefId": {
7250
- "type": "text",
7251
- "required": false,
7252
- "_meta": {
7253
- "nullable": true
7254
- }
7255
- },
7256
- "specialistId": {
7257
- "type": "crossPackageRef",
7258
- "required": false,
7259
- "related": "@happyvertical/smrt-support:SupportSpecialist",
7260
- "_meta": {
7261
- "nullable": true
7262
- }
7263
- },
7264
- "participantKind": {
7265
- "type": "text",
7266
- "required": false,
7267
- "_meta": {}
7268
- },
7269
- "participantProfileId": {
7270
- "type": "crossPackageRef",
7271
- "required": false,
7272
- "related": "@happyvertical/smrt-profiles:Profile",
7273
- "_meta": {
7274
- "nullable": true
7275
- }
7276
- },
7277
- "agentRef": {
7278
- "type": "text",
7279
- "required": false,
7280
- "_meta": {}
7281
- },
7282
- "source": {
7283
- "type": "text",
7284
- "required": false,
7285
- "_meta": {}
7286
- },
7287
- "description": {
7288
- "type": "text",
7289
- "required": false,
7290
- "_meta": {}
7291
- },
7292
- "startedAt": {
7293
- "type": "datetime",
7294
- "required": false
7295
- },
7296
- "endedAt": {
7297
- "type": "datetime",
7298
- "required": false
7299
- },
7300
- "durationSeconds": {
7301
- "type": "integer",
7302
- "required": false,
7303
- "default": 0
7304
- },
7305
- "evidence": {
7306
- "type": "text",
7307
- "required": false,
7308
- "_meta": {}
7309
- },
7310
- "status": {
7311
- "type": "text",
7312
- "required": false,
7313
- "_meta": {}
7314
- },
7315
- "submittedAt": {
7316
- "type": "datetime",
7317
- "required": false
7318
- },
7319
- "submittedByProfileId": {
7320
- "type": "crossPackageRef",
7321
- "required": false,
7322
- "related": "@happyvertical/smrt-profiles:Profile",
7323
- "_meta": {
7324
- "nullable": true
7325
- }
7326
- },
7327
- "approvedAt": {
7328
- "type": "datetime",
7329
- "required": false
7330
- },
7331
- "approvedByProfileId": {
7332
- "type": "crossPackageRef",
7333
- "required": false,
7334
- "related": "@happyvertical/smrt-profiles:Profile",
7335
- "_meta": {
7336
- "nullable": true
7337
- }
7338
- },
7339
- "approvalPath": {
7340
- "type": "text",
7341
- "required": false,
7342
- "_meta": {}
7343
- },
7344
- "rejectedAt": {
7345
- "type": "datetime",
7346
- "required": false
7347
- },
7348
- "rejectedByProfileId": {
7349
- "type": "crossPackageRef",
7350
- "required": false,
7351
- "related": "@happyvertical/smrt-profiles:Profile",
7352
- "_meta": {
7353
- "nullable": true
7354
- }
7355
- },
7356
- "rejectionReason": {
7357
- "type": "text",
7358
- "required": false,
7359
- "_meta": {}
7360
- },
7361
- "correctionOfId": {
7362
- "type": "foreignKey",
7363
- "required": false,
7364
- "related": "ServiceTimeEntry"
7365
- },
7366
- "metadata": {
7367
- "type": "text",
7368
- "required": false,
7369
- "_meta": {}
7370
- }
7371
- },
7372
- "methods": {
7373
- "getEvidence": {
7374
- "name": "getEvidence",
7375
- "async": false,
7376
- "parameters": [],
7377
- "returnType": "ServiceEvidence[]",
7378
- "isStatic": false,
7379
- "isPublic": true
7380
- },
7381
- "setEvidence": {
7382
- "name": "setEvidence",
7383
- "async": false,
7384
- "parameters": [
7385
- {
7386
- "name": "value",
7387
- "type": "ServiceEvidence[]",
7388
- "optional": false
7389
- }
7390
- ],
7391
- "returnType": "void",
7392
- "isStatic": false,
7393
- "isPublic": true
7394
- },
7395
- "getMetadata": {
7396
- "name": "getMetadata",
7397
- "async": false,
7398
- "parameters": [],
7399
- "returnType": "Record<string, unknown>",
7400
- "isStatic": false,
7401
- "isPublic": true
7402
- },
7403
- "setMetadata": {
7404
- "name": "setMetadata",
7405
- "async": false,
7406
- "parameters": [
7407
- {
7408
- "name": "value",
7409
- "type": "Record<string, unknown>",
7410
- "optional": false
7411
- }
7412
- ],
7413
- "returnType": "void",
7414
- "isStatic": false,
7415
- "isPublic": true
7416
- },
7417
- "durationHours": {
7418
- "name": "durationHours",
7419
- "async": false,
7420
- "parameters": [],
7421
- "returnType": "number",
7422
- "isStatic": false,
7423
- "isPublic": true
7424
- },
7425
- "initialize": {
7426
- "name": "initialize",
7427
- "async": true,
7428
- "parameters": [],
7429
- "returnType": "Promise<this>",
7430
- "isStatic": false,
7431
- "isPublic": true
7432
- },
7433
- "save": {
7434
- "name": "save",
7435
- "async": true,
7436
- "parameters": [],
7437
- "returnType": "Promise<this>",
7438
- "isStatic": false,
7439
- "isPublic": true
7440
- }
7441
- },
7442
- "decoratorConfig": {
7443
- "tableName": "service_time_entries",
7444
- "api": {
7445
- "include": [
7446
- "list",
7447
- "get"
7448
- ]
7449
- },
7450
- "cli": {
7451
- "include": [
7452
- "list",
7453
- "get"
7454
- ]
7455
- },
7456
- "mcp": {
7457
- "include": [
7458
- "list",
7459
- "get"
7460
- ]
7461
- },
7462
- "tenantScoped": {
7463
- "mode": "optional"
7464
- },
7465
- "conflictColumns": [
7466
- "tenant_id",
7467
- "slug",
7468
- "context"
7469
- ]
7470
- },
7471
- "extends": "SmrtObject",
7472
- "exportName": "ServiceTimeEntry",
7473
- "collectionExportName": "ServiceTimeEntryCollection",
7474
- "schema": {
7475
- "tableName": "service_time_entries",
7476
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_time_entries\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"case_id\" UUID,\n \"work_ref_type\" TEXT,\n \"work_ref_id\" TEXT,\n \"specialist_id\" UUID,\n \"participant_kind\" TEXT,\n \"participant_profile_id\" UUID,\n \"agent_ref\" TEXT,\n \"source\" TEXT,\n \"description\" TEXT,\n \"started_at\" TIMESTAMP,\n \"ended_at\" TIMESTAMP,\n \"duration_seconds\" INTEGER DEFAULT 0,\n \"evidence\" TEXT,\n \"status\" TEXT,\n \"submitted_at\" TIMESTAMP,\n \"submitted_by_profile_id\" UUID,\n \"approved_at\" TIMESTAMP,\n \"approved_by_profile_id\" UUID,\n \"approval_path\" TEXT,\n \"rejected_at\" TIMESTAMP,\n \"rejected_by_profile_id\" UUID,\n \"rejection_reason\" TEXT,\n \"correction_of_id\" UUID,\n \"metadata\" TEXT\n);",
7477
- "columns": {
7478
- "id": {
7479
- "type": "UUID",
7480
- "primaryKey": true,
7481
- "referenceKind": "id",
7482
- "notNull": true
7483
- },
7484
- "slug": {
7485
- "type": "TEXT",
7486
- "notNull": true
7487
- },
7488
- "context": {
7489
- "type": "TEXT",
7490
- "notNull": true,
7491
- "default": ""
7492
- },
7493
- "created_at": {
7494
- "type": "TIMESTAMP",
7495
- "notNull": true,
7496
- "default": "current_timestamp"
7497
- },
7498
- "updated_at": {
7499
- "type": "TIMESTAMP",
7500
- "notNull": true,
7501
- "default": "current_timestamp"
7502
- },
7503
- "tenant_id": {
7504
- "type": "UUID",
7505
- "referenceKind": "tenantId",
7506
- "notNull": false,
7507
- "unique": false
7508
- },
7509
- "case_id": {
7510
- "type": "UUID",
7511
- "referenceKind": "crossPackageRef",
7512
- "notNull": false,
7513
- "unique": false
7514
- },
7515
- "work_ref_type": {
7516
- "type": "TEXT",
7517
- "notNull": false,
7518
- "unique": false
7519
- },
7520
- "work_ref_id": {
7521
- "type": "TEXT",
7522
- "notNull": false,
7523
- "unique": false
7524
- },
7525
- "specialist_id": {
7526
- "type": "UUID",
7527
- "referenceKind": "crossPackageRef",
7528
- "notNull": false,
7529
- "unique": false
7530
- },
7531
- "participant_kind": {
7532
- "type": "TEXT",
7533
- "notNull": false,
7534
- "unique": false
7535
- },
7536
- "participant_profile_id": {
7537
- "type": "UUID",
7538
- "referenceKind": "crossPackageRef",
7539
- "notNull": false,
7540
- "unique": false
7541
- },
7542
- "agent_ref": {
7543
- "type": "TEXT",
7544
- "notNull": false,
7545
- "unique": false
7546
- },
7547
- "source": {
7548
- "type": "TEXT",
7549
- "notNull": false,
7550
- "unique": false
7551
- },
7552
- "description": {
7553
- "type": "TEXT",
7554
- "notNull": false,
7555
- "unique": false
7556
- },
7557
- "started_at": {
7558
- "type": "TIMESTAMP",
7559
- "notNull": false,
7560
- "unique": false
7561
- },
7562
- "ended_at": {
7563
- "type": "TIMESTAMP",
7564
- "notNull": false,
7565
- "unique": false
7566
- },
7567
- "duration_seconds": {
7568
- "type": "INTEGER",
7569
- "notNull": false,
7570
- "unique": false,
7571
- "default": 0
7572
- },
7573
- "evidence": {
7574
- "type": "TEXT",
7575
- "notNull": false,
7576
- "unique": false
7577
- },
7578
- "status": {
7579
- "type": "TEXT",
7580
- "notNull": false,
7581
- "unique": false
7582
- },
7583
- "submitted_at": {
7584
- "type": "TIMESTAMP",
7585
- "notNull": false,
7586
- "unique": false
7587
- },
7588
- "submitted_by_profile_id": {
7589
- "type": "UUID",
7590
- "referenceKind": "crossPackageRef",
7591
- "notNull": false,
7592
- "unique": false
7593
- },
7594
- "approved_at": {
7595
- "type": "TIMESTAMP",
7596
- "notNull": false,
7597
- "unique": false
7598
- },
7599
- "approved_by_profile_id": {
7600
- "type": "UUID",
7601
- "referenceKind": "crossPackageRef",
7602
- "notNull": false,
7603
- "unique": false
7604
- },
7605
- "approval_path": {
7606
- "type": "TEXT",
7607
- "notNull": false,
7608
- "unique": false
7609
- },
7610
- "rejected_at": {
7611
- "type": "TIMESTAMP",
7612
- "notNull": false,
7613
- "unique": false
7614
- },
7615
- "rejected_by_profile_id": {
7616
- "type": "UUID",
7617
- "referenceKind": "crossPackageRef",
7618
- "notNull": false,
7619
- "unique": false
7620
- },
7621
- "rejection_reason": {
7622
- "type": "TEXT",
7623
- "notNull": false,
7624
- "unique": false
7625
- },
7626
- "correction_of_id": {
7627
- "type": "UUID",
7628
- "referenceKind": "foreignKey",
7629
- "notNull": false,
7630
- "unique": false,
7631
- "foreignKey": {
7632
- "table": "service_time_entries",
7633
- "column": "id",
7634
- "onDelete": "NO ACTION",
7635
- "onUpdate": "CASCADE"
7636
- }
7637
- },
7638
- "metadata": {
7639
- "type": "TEXT",
7640
- "notNull": false,
7641
- "unique": false
7642
- }
7643
- },
7644
- "indexes": [
7645
- {
7646
- "name": "service_time_entries_slug_context_idx",
7647
- "columns": [
7648
- "tenant_id",
7649
- "slug",
7650
- "context"
7651
- ],
7652
- "unique": true,
7653
- "nullsNotDistinct": true
7654
- },
7655
- {
7656
- "name": "service_time_entries_tenant_id_created_at_idx",
7657
- "columns": [
7658
- "tenant_id",
7659
- "created_at"
7660
- ]
7661
- },
7662
- {
7663
- "name": "service_time_entries_case_id_idx",
7664
- "columns": [
7665
- "case_id"
7666
- ]
7667
- },
7668
- {
7669
- "name": "service_time_entries_specialist_id_idx",
7670
- "columns": [
7671
- "specialist_id"
7672
- ]
7673
- },
7674
- {
7675
- "name": "service_time_entries_participant_profile_id_idx",
7676
- "columns": [
7677
- "participant_profile_id"
7678
- ]
7679
- },
7680
- {
7681
- "name": "service_time_entries_submitted_by_profile_id_idx",
7682
- "columns": [
7683
- "submitted_by_profile_id"
7684
- ]
7685
- },
7686
- {
7687
- "name": "service_time_entries_approved_by_profile_id_idx",
7688
- "columns": [
7689
- "approved_by_profile_id"
7690
- ]
7691
- },
7692
- {
7693
- "name": "service_time_entries_rejected_by_profile_id_idx",
7694
- "columns": [
7695
- "rejected_by_profile_id"
7696
- ]
7697
- },
7698
- {
7699
- "name": "service_time_entries_correction_of_id_idx",
7700
- "columns": [
7701
- "correction_of_id"
7702
- ]
7703
- }
7704
- ],
7705
- "version": "f0968f50"
7706
- },
7707
- "importPath": "@happyvertical/smrt-projects"
7708
- },
7709
- "@happyvertical/smrt-projects:ServiceChargeSnapshot": {
7710
- "name": "servicechargesnapshot",
7711
- "className": "ServiceChargeSnapshot",
7712
- "qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
7713
- "collection": "servicechargesnapshots",
7714
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
7715
- "packageName": "@happyvertical/smrt-projects",
7716
- "fields": {
7717
- "tenantId": {
7718
- "type": "text",
7719
- "required": false,
7720
- "_meta": {
7721
- "sqlType": "UUID",
7722
- "nullable": true,
7723
- "__tenancy": {
7724
- "isTenantIdField": true,
7725
- "autoFilter": true,
7726
- "required": false,
7727
- "autoPopulate": true,
7728
- "nullable": true,
7729
- "mode": "optional",
7730
- "field": "tenantId",
7731
- "allowSuperAdminBypass": false
7732
- }
7733
- }
7734
- },
7735
- "timeEntryId": {
7736
- "type": "foreignKey",
7737
- "required": true,
7738
- "related": "ServiceTimeEntry",
7739
- "_meta": {
7740
- "required": true
7741
- }
7742
- },
7743
- "amount": {
7744
- "type": "integer",
7745
- "required": false,
7746
- "default": 0
7747
- },
7748
- "currency": {
7749
- "type": "text",
7750
- "required": false,
7751
- "_meta": {}
7752
- },
7753
- "pricingVersion": {
7754
- "type": "text",
7755
- "required": false,
7756
- "_meta": {}
7757
- },
7758
- "strategy": {
7759
- "type": "text",
7760
- "required": false,
7761
- "_meta": {}
7762
- },
7763
- "rateSnapshot": {
7764
- "type": "text",
7765
- "required": false,
7766
- "_meta": {}
7767
- },
7768
- "sourceChargeRef": {
7769
- "type": "text",
7770
- "required": false,
7771
- "_meta": {}
7772
- },
7773
- "createdAt": {
7774
- "type": "datetime",
7775
- "required": false
7776
- }
7777
- },
7778
- "methods": {
7779
- "initialize": {
7780
- "name": "initialize",
7781
- "async": true,
7782
- "parameters": [],
7783
- "returnType": "Promise<this>",
7784
- "isStatic": false,
7785
- "isPublic": true
7786
- },
7787
- "save": {
7788
- "name": "save",
7789
- "async": true,
7790
- "parameters": [],
7791
- "returnType": "Promise<this>",
7792
- "isStatic": false,
7793
- "isPublic": true
7794
- }
7795
- },
7796
- "decoratorConfig": {
7797
- "tableName": "service_charge_snapshots",
7798
- "conflictColumns": [
7799
- "time_entry_id"
7800
- ],
7801
- "api": {
7802
- "include": [
7803
- "list",
7804
- "get"
7805
- ]
7806
- },
7807
- "cli": {
7808
- "include": [
7809
- "list",
7810
- "get"
7811
- ]
7812
- },
7813
- "mcp": {
7814
- "include": [
7815
- "list",
7816
- "get"
7817
- ]
7818
- },
7819
- "tenantScoped": {
7820
- "mode": "optional"
7821
- }
7822
- },
7823
- "extends": "SmrtObject",
7824
- "exportName": "ServiceChargeSnapshot",
7825
- "collectionExportName": "ServiceChargeSnapshotCollection",
7826
- "validationRules": [
7827
- {
7828
- "field": "timeEntryId",
7829
- "rule": "required",
7830
- "fieldType": "foreignKey"
7831
- }
7832
- ],
7833
- "schema": {
7834
- "tableName": "service_charge_snapshots",
7835
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_charge_snapshots\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"time_entry_id\" UUID NOT NULL,\n \"amount\" INTEGER DEFAULT 0,\n \"currency\" TEXT,\n \"pricing_version\" TEXT,\n \"strategy\" TEXT,\n \"rate_snapshot\" TEXT,\n \"source_charge_ref\" TEXT\n);",
7836
- "columns": {
7837
- "id": {
7838
- "type": "UUID",
7839
- "primaryKey": true,
7840
- "referenceKind": "id",
7841
- "notNull": true
7842
- },
7843
- "slug": {
7844
- "type": "TEXT",
7845
- "notNull": true
7846
- },
7847
- "context": {
7848
- "type": "TEXT",
7849
- "notNull": true,
7850
- "default": ""
7851
- },
7852
- "created_at": {
7853
- "type": "TIMESTAMP",
7854
- "notNull": true,
7855
- "default": "current_timestamp"
7856
- },
7857
- "updated_at": {
7858
- "type": "TIMESTAMP",
7859
- "notNull": true,
7860
- "default": "current_timestamp"
7861
- },
7862
- "tenant_id": {
7863
- "type": "UUID",
7864
- "referenceKind": "tenantId",
7865
- "notNull": false,
7866
- "unique": false
7867
- },
7868
- "time_entry_id": {
7869
- "type": "UUID",
7870
- "referenceKind": "foreignKey",
7871
- "notNull": true,
7872
- "unique": false,
7873
- "foreignKey": {
7874
- "table": "service_time_entries",
7875
- "column": "id",
7876
- "onDelete": "CASCADE",
7877
- "onUpdate": "CASCADE"
7878
- }
7879
- },
7880
- "amount": {
7881
- "type": "INTEGER",
7882
- "notNull": false,
7883
- "unique": false,
7884
- "default": 0
7885
- },
7886
- "currency": {
7887
- "type": "TEXT",
7888
- "notNull": false,
7889
- "unique": false
7890
- },
7891
- "pricing_version": {
7892
- "type": "TEXT",
7893
- "notNull": false,
7894
- "unique": false
7895
- },
7896
- "strategy": {
7897
- "type": "TEXT",
7898
- "notNull": false,
7899
- "unique": false
7900
- },
7901
- "rate_snapshot": {
7902
- "type": "TEXT",
7903
- "notNull": false,
7904
- "unique": false
7905
- },
7906
- "source_charge_ref": {
7907
- "type": "TEXT",
7908
- "notNull": false,
7909
- "unique": false
7910
- }
7911
- },
7912
- "indexes": [
7913
- {
7914
- "name": "service_charge_snapshots_time_entry_id_idx",
7915
- "columns": [
7916
- "time_entry_id"
7917
- ],
7918
- "unique": true
7919
- },
7920
- {
7921
- "name": "service_charge_snapshots_slug_context_idx",
7922
- "columns": [
7923
- "slug",
7924
- "context"
7925
- ]
7926
- },
7927
- {
7928
- "name": "service_charge_snapshots_tenant_id_created_at_idx",
7929
- "columns": [
7930
- "tenant_id",
7931
- "created_at"
7932
- ]
7933
- }
7934
- ],
7935
- "version": "95a934aa"
7936
- },
7937
- "importPath": "@happyvertical/smrt-projects"
7938
- },
7939
- "@happyvertical/smrt-projects:ServiceCompensationSnapshot": {
7940
- "name": "servicecompensationsnapshot",
7941
- "className": "ServiceCompensationSnapshot",
7942
- "qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
7943
- "collection": "servicecompensationsnapshots",
7944
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
7945
- "packageName": "@happyvertical/smrt-projects",
7946
- "fields": {
7947
- "tenantId": {
7948
- "type": "text",
7949
- "required": false,
7950
- "_meta": {
7951
- "sqlType": "UUID",
7952
- "nullable": true,
7953
- "__tenancy": {
7954
- "isTenantIdField": true,
7955
- "autoFilter": true,
7956
- "required": false,
7957
- "autoPopulate": true,
7958
- "nullable": true,
7959
- "mode": "optional",
7960
- "field": "tenantId",
7961
- "allowSuperAdminBypass": false
7962
- }
7963
- }
7964
- },
7965
- "timeEntryId": {
7966
- "type": "foreignKey",
7967
- "required": true,
7968
- "related": "ServiceTimeEntry",
7969
- "_meta": {
7970
- "required": true
7971
- }
7972
- },
7973
- "amount": {
7974
- "type": "integer",
7975
- "required": false,
7976
- "default": 0
7977
- },
7978
- "currency": {
7979
- "type": "text",
7980
- "required": false,
7981
- "_meta": {}
7982
- },
7983
- "termsVersion": {
7984
- "type": "text",
7985
- "required": false,
7986
- "_meta": {}
7987
- },
7988
- "rateSnapshot": {
7989
- "type": "text",
7990
- "required": false,
7991
- "_meta": {}
7992
- },
7993
- "createdAt": {
7994
- "type": "datetime",
7995
- "required": false
7996
- }
7997
- },
7998
- "methods": {
7999
- "initialize": {
8000
- "name": "initialize",
8001
- "async": true,
8002
- "parameters": [],
8003
- "returnType": "Promise<this>",
8004
- "isStatic": false,
8005
- "isPublic": true
8006
- },
8007
- "save": {
8008
- "name": "save",
8009
- "async": true,
8010
- "parameters": [],
8011
- "returnType": "Promise<this>",
8012
- "isStatic": false,
8013
- "isPublic": true
8014
- }
8015
- },
8016
- "decoratorConfig": {
8017
- "tableName": "service_compensation_snapshots",
8018
- "conflictColumns": [
8019
- "time_entry_id"
8020
- ],
8021
- "api": {
8022
- "include": [
8023
- "list",
8024
- "get"
8025
- ]
8026
- },
8027
- "cli": {
8028
- "include": [
8029
- "list",
8030
- "get"
8031
- ]
8032
- },
8033
- "mcp": {
8034
- "include": [
8035
- "list",
8036
- "get"
8037
- ]
8038
- },
8039
- "tenantScoped": {
8040
- "mode": "optional"
8041
- }
8042
- },
8043
- "extends": "SmrtObject",
8044
- "exportName": "ServiceCompensationSnapshot",
8045
- "collectionExportName": "ServiceCompensationSnapshotCollection",
8046
- "validationRules": [
8047
- {
8048
- "field": "timeEntryId",
8049
- "rule": "required",
8050
- "fieldType": "foreignKey"
8051
- }
8052
- ],
8053
- "schema": {
8054
- "tableName": "service_compensation_snapshots",
8055
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_compensation_snapshots\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"time_entry_id\" UUID NOT NULL,\n \"amount\" INTEGER DEFAULT 0,\n \"currency\" TEXT,\n \"terms_version\" TEXT,\n \"rate_snapshot\" TEXT\n);",
8056
- "columns": {
8057
- "id": {
8058
- "type": "UUID",
8059
- "primaryKey": true,
8060
- "referenceKind": "id",
8061
- "notNull": true
8062
- },
8063
- "slug": {
8064
- "type": "TEXT",
8065
- "notNull": true
8066
- },
8067
- "context": {
8068
- "type": "TEXT",
8069
- "notNull": true,
8070
- "default": ""
8071
- },
8072
- "created_at": {
8073
- "type": "TIMESTAMP",
8074
- "notNull": true,
8075
- "default": "current_timestamp"
8076
- },
8077
- "updated_at": {
8078
- "type": "TIMESTAMP",
8079
- "notNull": true,
8080
- "default": "current_timestamp"
8081
- },
8082
- "tenant_id": {
8083
- "type": "UUID",
8084
- "referenceKind": "tenantId",
8085
- "notNull": false,
8086
- "unique": false
8087
- },
8088
- "time_entry_id": {
8089
- "type": "UUID",
8090
- "referenceKind": "foreignKey",
8091
- "notNull": true,
8092
- "unique": false,
8093
- "foreignKey": {
8094
- "table": "service_time_entries",
8095
- "column": "id",
8096
- "onDelete": "CASCADE",
8097
- "onUpdate": "CASCADE"
8098
- }
8099
- },
8100
- "amount": {
8101
- "type": "INTEGER",
8102
- "notNull": false,
8103
- "unique": false,
8104
- "default": 0
8105
- },
8106
- "currency": {
8107
- "type": "TEXT",
8108
- "notNull": false,
8109
- "unique": false
8110
- },
8111
- "terms_version": {
8112
- "type": "TEXT",
8113
- "notNull": false,
8114
- "unique": false
8115
- },
8116
- "rate_snapshot": {
8117
- "type": "TEXT",
8118
- "notNull": false,
8119
- "unique": false
8120
- }
8121
- },
8122
- "indexes": [
8123
- {
8124
- "name": "service_compensation_snapshots_time_entry_id_idx",
8125
- "columns": [
8126
- "time_entry_id"
8127
- ],
8128
- "unique": true
8129
- },
8130
- {
8131
- "name": "service_compensation_snapshots_slug_context_idx",
8132
- "columns": [
8133
- "slug",
8134
- "context"
8135
- ]
8136
- },
8137
- {
8138
- "name": "service_compensation_snapshots_tenant_id_created_at_idx",
8139
- "columns": [
8140
- "tenant_id",
8141
- "created_at"
8142
- ]
8143
- }
8144
- ],
8145
- "version": "1b3b9cec"
8146
- },
8147
- "importPath": "@happyvertical/smrt-projects"
8148
- },
8149
- "@happyvertical/smrt-projects:ServiceTimeEntryCollection": {
8150
- "name": "servicetimeentrycollection",
8151
- "className": "ServiceTimeEntryCollection",
8152
- "qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
8153
- "collection": "servicetimeentries",
8154
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
8155
- "packageName": "@happyvertical/smrt-projects",
8156
- "fields": {},
8157
- "methods": {
8158
- "forWork": {
8159
- "name": "forWork",
8160
- "async": true,
8161
- "parameters": [
8162
- {
8163
- "name": "workRefType",
8164
- "type": "string",
8165
- "optional": false
8166
- },
8167
- {
8168
- "name": "workRefId",
8169
- "type": "string",
8170
- "optional": false
8171
- }
8172
- ],
8173
- "returnType": "Promise<ServiceTimeEntry[]>",
8174
- "isStatic": false,
8175
- "isPublic": true
8176
- },
8177
- "forCase": {
8178
- "name": "forCase",
8179
- "async": true,
8180
- "parameters": [
8181
- {
8182
- "name": "caseId",
8183
- "type": "string",
8184
- "optional": false
8185
- }
8186
- ],
8187
- "returnType": "Promise<ServiceTimeEntry[]>",
8188
- "isStatic": false,
8189
- "isPublic": true
8190
- },
8191
- "forSpecialist": {
8192
- "name": "forSpecialist",
8193
- "async": true,
8194
- "parameters": [
8195
- {
8196
- "name": "specialistId",
8197
- "type": "string",
8198
- "optional": false
8199
- }
8200
- ],
8201
- "returnType": "Promise<ServiceTimeEntry[]>",
8202
- "isStatic": false,
8203
- "isPublic": true
8204
- },
8205
- "pendingApproval": {
8206
- "name": "pendingApproval",
8207
- "async": true,
8208
- "parameters": [],
8209
- "returnType": "Promise<ServiceTimeEntry[]>",
8210
- "isStatic": false,
8211
- "isPublic": true
8212
- }
8213
- },
8214
- "decoratorConfig": {
8215
- "tableName": "service_time_entries"
8216
- },
8217
- "extends": "SmrtCollection",
8218
- "extendsTypeArg": "ServiceTimeEntry",
8219
- "exportName": "ServiceTimeEntryCollection",
8220
- "collectionExportName": "ServiceTimeEntryCollectionCollection",
8221
- "schema": {
8222
- "tableName": "service_time_entries",
8223
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_time_entries\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"case_id\" UUID,\n \"work_ref_type\" TEXT,\n \"work_ref_id\" TEXT,\n \"specialist_id\" UUID,\n \"participant_kind\" TEXT,\n \"participant_profile_id\" UUID,\n \"agent_ref\" TEXT,\n \"source\" TEXT,\n \"description\" TEXT,\n \"started_at\" TIMESTAMP,\n \"ended_at\" TIMESTAMP,\n \"duration_seconds\" INTEGER DEFAULT 0,\n \"evidence\" TEXT,\n \"status\" TEXT,\n \"submitted_at\" TIMESTAMP,\n \"submitted_by_profile_id\" UUID,\n \"approved_at\" TIMESTAMP,\n \"approved_by_profile_id\" UUID,\n \"approval_path\" TEXT,\n \"rejected_at\" TIMESTAMP,\n \"rejected_by_profile_id\" UUID,\n \"rejection_reason\" TEXT,\n \"correction_of_id\" UUID,\n \"metadata\" TEXT\n);",
8224
- "columns": {
8225
- "id": {
8226
- "type": "UUID",
8227
- "primaryKey": true,
8228
- "referenceKind": "id",
8229
- "notNull": true
8230
- },
8231
- "slug": {
8232
- "type": "TEXT",
8233
- "notNull": true
8234
- },
8235
- "context": {
8236
- "type": "TEXT",
8237
- "notNull": true,
8238
- "default": ""
8239
- },
8240
- "created_at": {
8241
- "type": "TIMESTAMP",
8242
- "notNull": true,
8243
- "default": "current_timestamp"
8244
- },
8245
- "updated_at": {
8246
- "type": "TIMESTAMP",
8247
- "notNull": true,
8248
- "default": "current_timestamp"
8249
- },
8250
- "tenant_id": {
8251
- "type": "UUID",
8252
- "referenceKind": "tenantId",
8253
- "notNull": false,
8254
- "unique": false
8255
- },
8256
- "case_id": {
8257
- "type": "UUID",
8258
- "referenceKind": "crossPackageRef",
8259
- "notNull": false,
8260
- "unique": false
8261
- },
8262
- "work_ref_type": {
8263
- "type": "TEXT",
8264
- "notNull": false,
8265
- "unique": false
8266
- },
8267
- "work_ref_id": {
8268
- "type": "TEXT",
8269
- "notNull": false,
8270
- "unique": false
8271
- },
8272
- "specialist_id": {
8273
- "type": "UUID",
8274
- "referenceKind": "crossPackageRef",
8275
- "notNull": false,
8276
- "unique": false
8277
- },
8278
- "participant_kind": {
8279
- "type": "TEXT",
8280
- "notNull": false,
8281
- "unique": false
8282
- },
8283
- "participant_profile_id": {
8284
- "type": "UUID",
8285
- "referenceKind": "crossPackageRef",
8286
- "notNull": false,
8287
- "unique": false
8288
- },
8289
- "agent_ref": {
8290
- "type": "TEXT",
8291
- "notNull": false,
8292
- "unique": false
8293
- },
8294
- "source": {
8295
- "type": "TEXT",
8296
- "notNull": false,
8297
- "unique": false
8298
- },
8299
- "description": {
8300
- "type": "TEXT",
8301
- "notNull": false,
8302
- "unique": false
8303
- },
8304
- "started_at": {
8305
- "type": "TIMESTAMP",
8306
- "notNull": false,
8307
- "unique": false
8308
- },
8309
- "ended_at": {
8310
- "type": "TIMESTAMP",
8311
- "notNull": false,
8312
- "unique": false
8313
- },
8314
- "duration_seconds": {
8315
- "type": "INTEGER",
8316
- "notNull": false,
8317
- "unique": false,
8318
- "default": 0
8319
- },
8320
- "evidence": {
8321
- "type": "TEXT",
8322
- "notNull": false,
8323
- "unique": false
8324
- },
8325
- "status": {
8326
- "type": "TEXT",
8327
- "notNull": false,
8328
- "unique": false
8329
- },
8330
- "submitted_at": {
8331
- "type": "TIMESTAMP",
8332
- "notNull": false,
8333
- "unique": false
8334
- },
8335
- "submitted_by_profile_id": {
8336
- "type": "UUID",
8337
- "referenceKind": "crossPackageRef",
8338
- "notNull": false,
8339
- "unique": false
8340
- },
8341
- "approved_at": {
8342
- "type": "TIMESTAMP",
8343
- "notNull": false,
8344
- "unique": false
8345
- },
8346
- "approved_by_profile_id": {
8347
- "type": "UUID",
8348
- "referenceKind": "crossPackageRef",
8349
- "notNull": false,
8350
- "unique": false
8351
- },
8352
- "approval_path": {
8353
- "type": "TEXT",
8354
- "notNull": false,
8355
- "unique": false
8356
- },
8357
- "rejected_at": {
8358
- "type": "TIMESTAMP",
8359
- "notNull": false,
8360
- "unique": false
8361
- },
8362
- "rejected_by_profile_id": {
8363
- "type": "UUID",
8364
- "referenceKind": "crossPackageRef",
8365
- "notNull": false,
8366
- "unique": false
8367
- },
8368
- "rejection_reason": {
8369
- "type": "TEXT",
8370
- "notNull": false,
8371
- "unique": false
8372
- },
8373
- "correction_of_id": {
8374
- "type": "UUID",
8375
- "referenceKind": "foreignKey",
8376
- "notNull": false,
8377
- "unique": false,
8378
- "foreignKey": {
8379
- "table": "service_time_entries",
8380
- "column": "id",
8381
- "onDelete": "NO ACTION",
8382
- "onUpdate": "CASCADE"
8383
- }
8384
- },
8385
- "metadata": {
8386
- "type": "TEXT",
8387
- "notNull": false,
8388
- "unique": false
8389
- }
8390
- },
8391
- "indexes": [
8392
- {
8393
- "name": "service_time_entries_slug_context_idx",
8394
- "columns": [
8395
- "tenant_id",
8396
- "slug",
8397
- "context"
8398
- ],
8399
- "unique": true,
8400
- "nullsNotDistinct": true
8401
- },
8402
- {
8403
- "name": "service_time_entries_tenant_id_created_at_idx",
8404
- "columns": [
8405
- "tenant_id",
8406
- "created_at"
8407
- ]
8408
- },
8409
- {
8410
- "name": "service_time_entries_case_id_idx",
8411
- "columns": [
8412
- "case_id"
8413
- ]
8414
- },
8415
- {
8416
- "name": "service_time_entries_specialist_id_idx",
8417
- "columns": [
8418
- "specialist_id"
8419
- ]
8420
- },
8421
- {
8422
- "name": "service_time_entries_participant_profile_id_idx",
8423
- "columns": [
8424
- "participant_profile_id"
8425
- ]
8426
- },
8427
- {
8428
- "name": "service_time_entries_submitted_by_profile_id_idx",
8429
- "columns": [
8430
- "submitted_by_profile_id"
8431
- ]
8432
- },
8433
- {
8434
- "name": "service_time_entries_approved_by_profile_id_idx",
8435
- "columns": [
8436
- "approved_by_profile_id"
8437
- ]
8438
- },
8439
- {
8440
- "name": "service_time_entries_rejected_by_profile_id_idx",
8441
- "columns": [
8442
- "rejected_by_profile_id"
8443
- ]
8444
- },
8445
- {
8446
- "name": "service_time_entries_correction_of_id_idx",
8447
- "columns": [
8448
- "correction_of_id"
8449
- ]
8450
- }
8451
- ],
8452
- "version": "f0968f50"
8453
- },
8454
- "importPath": "@happyvertical/smrt-projects"
8455
- },
8456
- "@happyvertical/smrt-projects:ServiceChargeSnapshotCollection": {
8457
- "name": "servicechargesnapshotcollection",
8458
- "className": "ServiceChargeSnapshotCollection",
8459
- "qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshotCollection",
8460
- "collection": "servicechargesnapshots",
8461
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
8462
- "packageName": "@happyvertical/smrt-projects",
8463
- "fields": {},
8464
- "methods": {},
8465
- "decoratorConfig": {
8466
- "tableName": "service_charge_snapshots"
8467
- },
8468
- "extends": "SmrtCollection",
8469
- "extendsTypeArg": "ServiceChargeSnapshot",
8470
- "exportName": "ServiceChargeSnapshotCollection",
8471
- "collectionExportName": "ServiceChargeSnapshotCollectionCollection",
8472
- "schema": {
8473
- "tableName": "service_charge_snapshots",
8474
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_charge_snapshots\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"time_entry_id\" UUID NOT NULL,\n \"amount\" INTEGER DEFAULT 0,\n \"currency\" TEXT,\n \"pricing_version\" TEXT,\n \"strategy\" TEXT,\n \"rate_snapshot\" TEXT,\n \"source_charge_ref\" TEXT\n);",
8475
- "columns": {
8476
- "id": {
8477
- "type": "UUID",
8478
- "primaryKey": true,
8479
- "referenceKind": "id",
8480
- "notNull": true
8481
- },
8482
- "slug": {
8483
- "type": "TEXT",
8484
- "notNull": true
8485
- },
8486
- "context": {
8487
- "type": "TEXT",
8488
- "notNull": true,
8489
- "default": ""
8490
- },
8491
- "created_at": {
8492
- "type": "TIMESTAMP",
8493
- "notNull": true,
8494
- "default": "current_timestamp"
8495
- },
8496
- "updated_at": {
8497
- "type": "TIMESTAMP",
8498
- "notNull": true,
8499
- "default": "current_timestamp"
8500
- },
8501
- "tenant_id": {
8502
- "type": "UUID",
8503
- "referenceKind": "tenantId",
8504
- "notNull": false,
8505
- "unique": false
8506
- },
8507
- "time_entry_id": {
8508
- "type": "UUID",
8509
- "referenceKind": "foreignKey",
8510
- "notNull": true,
8511
- "unique": false,
8512
- "foreignKey": {
8513
- "table": "service_time_entries",
8514
- "column": "id",
8515
- "onDelete": "CASCADE",
8516
- "onUpdate": "CASCADE"
8517
- }
8518
- },
8519
- "amount": {
8520
- "type": "INTEGER",
8521
- "notNull": false,
8522
- "unique": false,
8523
- "default": 0
8524
- },
8525
- "currency": {
8526
- "type": "TEXT",
8527
- "notNull": false,
8528
- "unique": false
8529
- },
8530
- "pricing_version": {
8531
- "type": "TEXT",
8532
- "notNull": false,
8533
- "unique": false
8534
- },
8535
- "strategy": {
8536
- "type": "TEXT",
8537
- "notNull": false,
8538
- "unique": false
8539
- },
8540
- "rate_snapshot": {
8541
- "type": "TEXT",
8542
- "notNull": false,
8543
- "unique": false
8544
- },
8545
- "source_charge_ref": {
8546
- "type": "TEXT",
8547
- "notNull": false,
8548
- "unique": false
8549
- }
8550
- },
8551
- "indexes": [
8552
- {
8553
- "name": "service_charge_snapshots_time_entry_id_idx",
8554
- "columns": [
8555
- "time_entry_id"
8556
- ],
8557
- "unique": true
8558
- },
8559
- {
8560
- "name": "service_charge_snapshots_slug_context_idx",
8561
- "columns": [
8562
- "slug",
8563
- "context"
8564
- ]
8565
- },
8566
- {
8567
- "name": "service_charge_snapshots_tenant_id_created_at_idx",
8568
- "columns": [
8569
- "tenant_id",
8570
- "created_at"
8571
- ]
8572
- }
8573
- ],
8574
- "version": "95a934aa"
8575
- },
8576
- "importPath": "@happyvertical/smrt-projects"
8577
- },
8578
- "@happyvertical/smrt-projects:ServiceCompensationSnapshotCollection": {
8579
- "name": "servicecompensationsnapshotcollection",
8580
- "className": "ServiceCompensationSnapshotCollection",
8581
- "qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshotCollection",
8582
- "collection": "servicecompensationsnapshots",
8583
- "filePath": "/home/runner/work/smrt/smrt/packages/projects/src/models/service-evidence.ts",
8584
- "packageName": "@happyvertical/smrt-projects",
8585
- "fields": {},
8586
- "methods": {},
8587
- "decoratorConfig": {
8588
- "tableName": "service_compensation_snapshots"
8589
- },
8590
- "extends": "SmrtCollection",
8591
- "extendsTypeArg": "ServiceCompensationSnapshot",
8592
- "exportName": "ServiceCompensationSnapshotCollection",
8593
- "collectionExportName": "ServiceCompensationSnapshotCollectionCollection",
8594
- "schema": {
8595
- "tableName": "service_compensation_snapshots",
8596
- "ddl": "CREATE TABLE IF NOT EXISTS \"service_compensation_snapshots\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"tenant_id\" UUID,\n \"time_entry_id\" UUID NOT NULL,\n \"amount\" INTEGER DEFAULT 0,\n \"currency\" TEXT,\n \"terms_version\" TEXT,\n \"rate_snapshot\" TEXT\n);",
8597
- "columns": {
8598
- "id": {
8599
- "type": "UUID",
8600
- "primaryKey": true,
8601
- "referenceKind": "id",
8602
- "notNull": true
8603
- },
8604
- "slug": {
8605
- "type": "TEXT",
8606
- "notNull": true
8607
- },
8608
- "context": {
8609
- "type": "TEXT",
8610
- "notNull": true,
8611
- "default": ""
8612
- },
8613
- "created_at": {
8614
- "type": "TIMESTAMP",
8615
- "notNull": true,
8616
- "default": "current_timestamp"
8617
- },
8618
- "updated_at": {
8619
- "type": "TIMESTAMP",
8620
- "notNull": true,
8621
- "default": "current_timestamp"
8622
- },
8623
- "tenant_id": {
8624
- "type": "UUID",
8625
- "referenceKind": "tenantId",
8626
- "notNull": false,
8627
- "unique": false
8628
- },
8629
- "time_entry_id": {
8630
- "type": "UUID",
8631
- "referenceKind": "foreignKey",
8632
- "notNull": true,
8633
- "unique": false,
8634
- "foreignKey": {
8635
- "table": "service_time_entries",
8636
- "column": "id",
8637
- "onDelete": "CASCADE",
8638
- "onUpdate": "CASCADE"
8639
- }
8640
- },
8641
- "amount": {
8642
- "type": "INTEGER",
8643
- "notNull": false,
8644
- "unique": false,
8645
- "default": 0
8646
- },
8647
- "currency": {
8648
- "type": "TEXT",
8649
- "notNull": false,
8650
- "unique": false
8651
- },
8652
- "terms_version": {
8653
- "type": "TEXT",
8654
- "notNull": false,
8655
- "unique": false
8656
- },
8657
- "rate_snapshot": {
8658
- "type": "TEXT",
8659
- "notNull": false,
8660
- "unique": false
8661
- }
8662
- },
8663
- "indexes": [
8664
- {
8665
- "name": "service_compensation_snapshots_time_entry_id_idx",
8666
- "columns": [
8667
- "time_entry_id"
8668
- ],
8669
- "unique": true
8670
- },
8671
- {
8672
- "name": "service_compensation_snapshots_slug_context_idx",
8673
- "columns": [
8674
- "slug",
8675
- "context"
8676
- ]
8677
- },
8678
- {
8679
- "name": "service_compensation_snapshots_tenant_id_created_at_idx",
8680
- "columns": [
8681
- "tenant_id",
8682
- "created_at"
8683
- ]
8684
- }
8685
- ],
8686
- "version": "1b3b9cec"
8687
- },
8688
- "importPath": "@happyvertical/smrt-projects"
8689
7207
  }
8690
7208
  },
8691
7209
  "moduleType": "smrt",
@@ -8693,6 +7211,7 @@
8693
7211
  "@happyvertical/smrt-core",
8694
7212
  "@happyvertical/smrt-prompts",
8695
7213
  "@happyvertical/smrt-subscriptions",
8696
- "@happyvertical/smrt-tenancy"
7214
+ "@happyvertical/smrt-tenancy",
7215
+ "@happyvertical/smrt-timesheets"
8697
7216
  ]
8698
7217
  }