@d19n/youfibre-odin-sdk 2.0.305 → 2.0.307

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 (41) hide show
  1. package/README.md +10 -9
  2. package/dist/actions-v2/CollectCustomerDeviceRouterDto.d.ts +63 -0
  3. package/dist/actions-v2/CollectCustomerDeviceRouterDto.js +56 -0
  4. package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.d.ts +135 -96
  5. package/dist/api-sdk-v2/PaymentMethodRefundApi.d.ts +2 -2
  6. package/dist/api-sdk-v2/PaymentMethodRefundApi.js +6 -6
  7. package/dist/api-sdk-v2/UserApi.d.ts +2 -0
  8. package/dist/api-sdk-v2/UserApi.js +6 -0
  9. package/dist/api-sdk-v2/YfFieldVisitOutcomeFormApi.d.ts +2 -0
  10. package/dist/api-sdk-v2/YfFieldVisitOutcomeFormApi.js +6 -0
  11. package/dist/db-sdk-v2/PaymentMethodRefundDb.d.ts +2 -2
  12. package/dist/db-sdk-v2/PaymentMethodRefundDb.js +6 -6
  13. package/dist/db-sdk-v2/UserDb.d.ts +2 -0
  14. package/dist/db-sdk-v2/UserDb.js +6 -0
  15. package/dist/db-sdk-v2/YfFieldVisitOutcomeFormDb.d.ts +2 -0
  16. package/dist/db-sdk-v2/YfFieldVisitOutcomeFormDb.js +6 -0
  17. package/dist/entities-v2/BillingAdjustment.d.ts +1 -3
  18. package/dist/entities-v2/BillingAdjustment.js +1 -3
  19. package/dist/entities-v2/Case.d.ts +2 -1
  20. package/dist/entities-v2/Case.js +2 -1
  21. package/dist/entities-v2/CreditNote.d.ts +1 -2
  22. package/dist/entities-v2/CreditNote.js +1 -2
  23. package/dist/entities-v2/PaymentMethodRefund.d.ts +3 -3
  24. package/dist/entities-v2/PgReportEvent.d.ts +5 -1
  25. package/dist/entities-v2/PgReportEvent.js +4 -0
  26. package/dist/entities-v2/User.d.ts +3 -0
  27. package/dist/entities-v2/VoiceConfiguration.d.ts +8 -0
  28. package/dist/entities-v2/VoiceConfiguration.js +2 -0
  29. package/dist/entities-v2/YfFieldVisitOutcomeForm.d.ts +149 -80
  30. package/dist/entities-v2/YfFieldVisitOutcomeForm.js +37 -31
  31. package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +28 -0
  32. package/dist/records-v2/CustomerDeviceRouterRecord.js +37 -0
  33. package/dist/records-v2/PaymentMethodRefundRecord.d.ts +20 -20
  34. package/dist/records-v2/PaymentMethodRefundRecord.js +33 -33
  35. package/dist/records-v2/UserRecord.d.ts +20 -0
  36. package/dist/records-v2/UserRecord.js +33 -0
  37. package/dist/records-v2/YfFieldVisitOutcomeFormRecord.d.ts +22 -18
  38. package/dist/records-v2/YfFieldVisitOutcomeFormRecord.js +34 -17
  39. package/dist/records-v2/index.d.ts +1 -1
  40. package/dist/records-v2/index.js +5 -5
  41. package/package.json +1 -1
@@ -15,12 +15,11 @@ import { WorkOrderProperties } from './WorkOrder';
15
15
  import { AddressProperties } from './Address';
16
16
  import { NoteProperties } from './Note';
17
17
  import { FileProperties } from './File';
18
+ import { UserProperties } from './User';
18
19
  /**
19
20
  * Available types for YfFieldVisitOutcomeForm records
20
21
  */
21
22
  export declare enum YfFieldVisitOutcomeFormEntityTypes {
22
- /** This is the default record type */
23
- DEFAULT = "DEFAULT",
24
23
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. */
25
24
  OUTCOME_FORM = "OUTCOME_FORM"
26
25
  }
@@ -130,19 +129,6 @@ export declare enum YfFieldVisitOutcomeFormCustomerAtInstall {
130
129
  NO = "NO",
131
130
  YES = "YES"
132
131
  }
133
- /**
134
- * Valid values for YfFieldVisitOutcomeForm.ONTChecksPassed
135
- *
136
- * The gate on the whole ONT branch: NO is what asks for a failure reason.
137
- *
138
- * @remarks Available options:
139
- * - `NO` - No
140
- * - `YES` - Yes
141
- */
142
- export declare enum YfFieldVisitOutcomeFormONTChecksPassed {
143
- NO = "NO",
144
- YES = "YES"
145
- }
146
132
  /**
147
133
  * Valid values for YfFieldVisitOutcomeForm.ONTCheckFailReason
148
134
  *
@@ -158,6 +144,19 @@ export declare enum YfFieldVisitOutcomeFormONTCheckFailReason {
158
144
  LIGHT_LEVEL_OUT_OF_SPEC = "LIGHT_LEVEL_OUT_OF_SPEC",
159
145
  NO_LIGHT_FIBRE_BREAK = "NO_LIGHT_FIBRE_BREAK"
160
146
  }
147
+ /**
148
+ * Valid values for YfFieldVisitOutcomeForm.ONTChecksPassed
149
+ *
150
+ * The gate on the whole ONT branch: NO is what asks for a failure reason.
151
+ *
152
+ * @remarks Available options:
153
+ * - `NO` - No
154
+ * - `YES` - Yes
155
+ */
156
+ export declare enum YfFieldVisitOutcomeFormONTChecksPassed {
157
+ NO = "NO",
158
+ YES = "YES"
159
+ }
161
160
  /**
162
161
  * Valid values for YfFieldVisitOutcomeForm.AbleToAchieveMinimumSpeed
163
162
  *
@@ -320,12 +319,22 @@ export declare enum YfFieldVisitOutcomeFormHappyWithOutcome {
320
319
  * Use these constants instead of string literals for type safety
321
320
  */
322
321
  export declare enum YfFieldVisitOutcomeFormPropertyKeys {
322
+ /** The attending engineer. Prefilled from the work order via the form field default; the engineer can correct it if the job was reassigned on the day. */
323
+ Engineer = "Engineer",
324
+ /** The ONT light level reading. Split out of the old combined ONT photo. */
325
+ OntLightLevelPhoto = "ONTLightLevelPhoto",
326
+ /** Mesh topology from the gateway GUI, showing every unit in spec after the work. */
327
+ PostFaultMeshTopologyEvidence = "PostFaultMeshTopologyEvidence",
328
+ /** The ONT status lights. Split out of the old combined ONT photo. */
329
+ OntStatusLightsPhoto = "ONTStatusLightsPhoto",
330
+ /** The post-fault EXFO report. Asked on every visit, not only where the standard was met. */
331
+ PostFaultSpeedDbmEvidence = "PostFaultSpeedDbmEvidence",
323
332
  /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then. */
324
333
  ServiceVisitDateTime = "ServiceVisitDateTime",
325
- /** The attending engineer. Asked for as free text; auto-populating from the logged-in user is the same prefill question as ServiceVisitDateTime. */
326
- EngineerName = "EngineerName",
327
334
  /** The work order this visit was made against. Deliberately carries no UNIQUE validator: a repeat visit to the same work order is a second form, not an overwrite of the first. */
328
335
  WorkOrderNumber = "WorkOrderNumber",
336
+ /** RETIRED — replaced by the Engineer column, which is TEXT and prefills from the work order. Off the form; a NAME column cannot become TEXT in place. */
337
+ EngineerName = "EngineerName",
329
338
  /** The property visited, linked to the CRM address record. */
330
339
  Location = "Location",
331
340
  /** The picture the engineer confirms having taken on arrival. */
@@ -346,8 +355,6 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
346
355
  OntFixedToWall = "ONTFixedToWall",
347
356
  /** Evidence of how the ONT is fixed and powered. */
348
357
  OntFixedToWallPhoto = "ONTFixedToWallPhoto",
349
- /** The readings behind the ONT check answer. */
350
- OntChecksPhoto = "ONTChecksPhoto",
351
358
  /** What the engineer saw that produced the failure reason. */
352
359
  OntCheckFailReasonPhoto = "ONTCheckFailReasonPhoto",
353
360
  /** The engineer's diagnosis category. A clean 8-option list from the 2026-08-21 template; the legacy 16-option list stays on YfFieldServiceVisit with the records that used it. */
@@ -358,8 +365,6 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
358
365
  EngineerDiagnosisCustomerDevicePhoto = "EngineerDiagnosisCustomerDevicePhoto",
359
366
  /** Whether the person on site witnessed the original install — the difference between a first-hand account of what changed and a second-hand one. */
360
367
  CustomerAtInstall = "CustomerAtInstall",
361
- /** The gate on the whole ONT branch: NO is what asks for a failure reason. */
362
- OntChecksPassed = "ONTChecksPassed",
363
368
  /** Why the ONT check failed. Only asked when ONTChecksPassed is NO. */
364
369
  OntCheckFailReason = "ONTCheckFailReason",
365
370
  /** Evidence the node is not on the floor. */
@@ -372,12 +377,14 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
372
377
  PreFaultTestPhoto = "PreFaultTestPhoto",
373
378
  /** What the readings looked like where the standard could not be met. */
374
379
  NotAbleToAchieveSignalPhoto = "NotAbleToAchieveSignalPhoto",
375
- /** The proof behind a YES: a reading taken at the worst point in the property, not the best. */
376
- AbleToAchieveSignalEvidence = "AbleToAchieveSignalEvidence",
377
380
  /** The engineer's account of the visit. Deliberately carries no defaultValue: whether the template headings (Outcome / Fault Found / Checks Done / Action Taken / Status on Leave / Further Action / Customer Advised) are pre-filled or shown as guidance is open with Trevor, and adding a default later is a column PUT while removing one already written onto live records is not clean. */
378
381
  ResolutionNotes = "ResolutionNotes",
379
382
  /** Serial of the first device installed on this visit. The template repeated "first" on all four rows; first/second/third/fourth confirmed with the DRI 2026-08-25. */
380
383
  NewDeviceSerial1 = "NewDeviceSerial1",
384
+ /** The gate on the whole ONT branch: NO is what asks for a failure reason. */
385
+ OntChecksPassed = "ONTChecksPassed",
386
+ /** The proof behind a YES: a reading taken at the worst point in the property, not the best. */
387
+ AbleToAchieveSignalEvidence = "AbleToAchieveSignalEvidence",
381
388
  /** Where the router actually is — the answer text alone rarely settles a coverage argument. */
382
389
  RouterLocationPhoto = "RouterLocationPhoto",
383
390
  /** Serial of the first existing mesh node. */
@@ -433,7 +440,9 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
433
440
  /** Who signed on the customer side. */
434
441
  CustomerName = "CustomerName",
435
442
  /** The customer's signature against the declaration above. */
436
- CustomerSignature = "CustomerSignature"
443
+ CustomerSignature = "CustomerSignature",
444
+ /** RETIRED round 1 — replaced by ONTLightLevelPhoto + ONTStatusLightsPhoto. Off the form, column kept. */
445
+ OntChecksPhoto = "ONTChecksPhoto"
437
446
  }
438
447
  /**
439
448
  * Properties for YfFieldVisitOutcomeForm records
@@ -441,24 +450,54 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
441
450
  * @see FieldServiceModule:YfFieldVisitOutcomeForm
442
451
  */
443
452
  export interface YfFieldVisitOutcomeFormProperties {
444
- /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then.
453
+ /** The attending engineer. Prefilled from the work order via the form field default; the engineer can correct it if the job was reassigned on the day.
445
454
  *
446
- * @type {DATE_TIME}
455
+ * @type {TEXT}
447
456
  * @default
448
457
  */
449
- ServiceVisitDateTime: string;
450
- /** The attending engineer. Asked for as free text; auto-populating from the logged-in user is the same prefill question as ServiceVisitDateTime.
458
+ Engineer: string;
459
+ /** The ONT light level reading. Split out of the old combined ONT photo.
451
460
  *
452
- * @type {NAME}
461
+ * @type {FILE_MULTIPLE}
453
462
  * @default
454
463
  */
455
- EngineerName: string;
464
+ OntLightLevelPhoto: string;
465
+ /** Mesh topology from the gateway GUI, showing every unit in spec after the work.
466
+ *
467
+ * @type {FILE_MULTIPLE}
468
+ * @default
469
+ */
470
+ PostFaultMeshTopologyEvidence: string;
471
+ /** The ONT status lights. Split out of the old combined ONT photo.
472
+ *
473
+ * @type {FILE_MULTIPLE}
474
+ * @default
475
+ */
476
+ OntStatusLightsPhoto: string;
477
+ /** The post-fault EXFO report. Asked on every visit, not only where the standard was met.
478
+ *
479
+ * @type {FILE_MULTIPLE}
480
+ * @default
481
+ */
482
+ PostFaultSpeedDbmEvidence: string;
483
+ /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then.
484
+ *
485
+ * @type {DATE_TIME}
486
+ * @default
487
+ */
488
+ ServiceVisitDateTime: string;
456
489
  /** The work order this visit was made against. Deliberately carries no UNIQUE validator: a repeat visit to the same work order is a second form, not an overwrite of the first.
457
490
  *
458
491
  * @type {ALPHA_NUMERICAL}
459
492
  * @default
460
493
  */
461
494
  WorkOrderNumber: string;
495
+ /** RETIRED — replaced by the Engineer column, which is TEXT and prefills from the work order. Off the form; a NAME column cannot become TEXT in place.
496
+ *
497
+ * @type {NAME}
498
+ * @default
499
+ */
500
+ EngineerName: string;
462
501
  /** The property visited, linked to the CRM address record.
463
502
  *
464
503
  * @type {LOOKUP}
@@ -522,12 +561,6 @@ export interface YfFieldVisitOutcomeFormProperties {
522
561
  * @default
523
562
  */
524
563
  OntFixedToWallPhoto: string;
525
- /** The readings behind the ONT check answer.
526
- *
527
- * @type {FILE_MULTIPLE}
528
- * @default
529
- */
530
- OntChecksPhoto: string;
531
564
  /** What the engineer saw that produced the failure reason.
532
565
  *
533
566
  * @type {FILE_MULTIPLE}
@@ -561,13 +594,6 @@ export interface YfFieldVisitOutcomeFormProperties {
561
594
  * @enum {YfFieldVisitOutcomeFormCustomerAtInstall}
562
595
  */
563
596
  CustomerAtInstall: YfFieldVisitOutcomeFormCustomerAtInstall;
564
- /** The gate on the whole ONT branch: NO is what asks for a failure reason.
565
- *
566
- * @type {ENUM}
567
- * @default
568
- * @enum {YfFieldVisitOutcomeFormONTChecksPassed}
569
- */
570
- OntChecksPassed: YfFieldVisitOutcomeFormONTChecksPassed;
571
597
  /** Why the ONT check failed. Only asked when ONTChecksPassed is NO.
572
598
  *
573
599
  * @type {ENUM}
@@ -605,12 +631,6 @@ export interface YfFieldVisitOutcomeFormProperties {
605
631
  * @default
606
632
  */
607
633
  NotAbleToAchieveSignalPhoto: string;
608
- /** The proof behind a YES: a reading taken at the worst point in the property, not the best.
609
- *
610
- * @type {FILE_MULTIPLE}
611
- * @default
612
- */
613
- AbleToAchieveSignalEvidence: string;
614
634
  /** The engineer's account of the visit. Deliberately carries no defaultValue: whether the template headings (Outcome / Fault Found / Checks Done / Action Taken / Status on Leave / Further Action / Customer Advised) are pre-filled or shown as guidance is open with Trevor, and adding a default later is a column PUT while removing one already written onto live records is not clean.
615
635
  *
616
636
  * @type {TEXT_LONG}
@@ -623,6 +643,19 @@ export interface YfFieldVisitOutcomeFormProperties {
623
643
  * @default
624
644
  */
625
645
  NewDeviceSerial1: string;
646
+ /** The gate on the whole ONT branch: NO is what asks for a failure reason.
647
+ *
648
+ * @type {ENUM}
649
+ * @default
650
+ * @enum {YfFieldVisitOutcomeFormONTChecksPassed}
651
+ */
652
+ OntChecksPassed: YfFieldVisitOutcomeFormONTChecksPassed;
653
+ /** The proof behind a YES: a reading taken at the worst point in the property, not the best.
654
+ *
655
+ * @type {FILE_MULTIPLE}
656
+ * @default
657
+ */
658
+ AbleToAchieveSignalEvidence: string;
626
659
  /** Where the router actually is — the answer text alone rarely settles a coverage argument.
627
660
  *
628
661
  * @type {FILE_MULTIPLE}
@@ -798,6 +831,12 @@ export interface YfFieldVisitOutcomeFormProperties {
798
831
  * @default
799
832
  */
800
833
  CustomerSignature: string;
834
+ /** RETIRED round 1 — replaced by ONTLightLevelPhoto + ONTStatusLightsPhoto. Off the form, column kept.
835
+ *
836
+ * @type {FILE_MULTIPLE}
837
+ * @default
838
+ */
839
+ OntChecksPhoto: string;
801
840
  }
802
841
  /**
803
842
  * Properties for OUTCOME_FORM YfFieldVisitOutcomeForm records
@@ -805,24 +844,54 @@ export interface YfFieldVisitOutcomeFormProperties {
805
844
  * @see FieldServiceModule:YfFieldVisitOutcomeForm
806
845
  */
807
846
  export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
808
- /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then.
847
+ /** The attending engineer. Prefilled from the work order via the form field default; the engineer can correct it if the job was reassigned on the day.
809
848
  *
810
- * @type {DATE_TIME}
849
+ * @type {TEXT}
811
850
  * @default
812
851
  */
813
- ServiceVisitDateTime: string;
814
- /** The attending engineer. Asked for as free text; auto-populating from the logged-in user is the same prefill question as ServiceVisitDateTime.
852
+ Engineer: string;
853
+ /** The ONT light level reading. Split out of the old combined ONT photo.
815
854
  *
816
- * @type {NAME}
855
+ * @type {FILE_MULTIPLE}
817
856
  * @default
818
857
  */
819
- EngineerName: string;
858
+ OntLightLevelPhoto: string;
859
+ /** Mesh topology from the gateway GUI, showing every unit in spec after the work.
860
+ *
861
+ * @type {FILE_MULTIPLE}
862
+ * @default
863
+ */
864
+ PostFaultMeshTopologyEvidence: string;
865
+ /** The ONT status lights. Split out of the old combined ONT photo.
866
+ *
867
+ * @type {FILE_MULTIPLE}
868
+ * @default
869
+ */
870
+ OntStatusLightsPhoto: string;
871
+ /** The post-fault EXFO report. Asked on every visit, not only where the standard was met.
872
+ *
873
+ * @type {FILE_MULTIPLE}
874
+ * @default
875
+ */
876
+ PostFaultSpeedDbmEvidence: string;
877
+ /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then.
878
+ *
879
+ * @type {DATE_TIME}
880
+ * @default
881
+ */
882
+ ServiceVisitDateTime: string;
820
883
  /** The work order this visit was made against. Deliberately carries no UNIQUE validator: a repeat visit to the same work order is a second form, not an overwrite of the first.
821
884
  *
822
885
  * @type {ALPHA_NUMERICAL}
823
886
  * @default
824
887
  */
825
888
  WorkOrderNumber: string;
889
+ /** RETIRED — replaced by the Engineer column, which is TEXT and prefills from the work order. Off the form; a NAME column cannot become TEXT in place.
890
+ *
891
+ * @type {NAME}
892
+ * @default
893
+ */
894
+ EngineerName: string;
826
895
  /** The property visited, linked to the CRM address record.
827
896
  *
828
897
  * @type {LOOKUP}
@@ -886,12 +955,6 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
886
955
  * @default
887
956
  */
888
957
  OntFixedToWallPhoto: string;
889
- /** The readings behind the ONT check answer.
890
- *
891
- * @type {FILE_MULTIPLE}
892
- * @default
893
- */
894
- OntChecksPhoto: string;
895
958
  /** What the engineer saw that produced the failure reason.
896
959
  *
897
960
  * @type {FILE_MULTIPLE}
@@ -925,13 +988,6 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
925
988
  * @enum {YfFieldVisitOutcomeFormCustomerAtInstall}
926
989
  */
927
990
  CustomerAtInstall: YfFieldVisitOutcomeFormCustomerAtInstall;
928
- /** The gate on the whole ONT branch: NO is what asks for a failure reason.
929
- *
930
- * @type {ENUM}
931
- * @default
932
- * @enum {YfFieldVisitOutcomeFormONTChecksPassed}
933
- */
934
- OntChecksPassed: YfFieldVisitOutcomeFormONTChecksPassed;
935
991
  /** Why the ONT check failed. Only asked when ONTChecksPassed is NO.
936
992
  *
937
993
  * @type {ENUM}
@@ -969,12 +1025,6 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
969
1025
  * @default
970
1026
  */
971
1027
  NotAbleToAchieveSignalPhoto: string;
972
- /** The proof behind a YES: a reading taken at the worst point in the property, not the best.
973
- *
974
- * @type {FILE_MULTIPLE}
975
- * @default
976
- */
977
- AbleToAchieveSignalEvidence: string;
978
1028
  /** The engineer's account of the visit. Deliberately carries no defaultValue: whether the template headings (Outcome / Fault Found / Checks Done / Action Taken / Status on Leave / Further Action / Customer Advised) are pre-filled or shown as guidance is open with Trevor, and adding a default later is a column PUT while removing one already written onto live records is not clean.
979
1029
  *
980
1030
  * @type {TEXT_LONG}
@@ -987,6 +1037,19 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
987
1037
  * @default
988
1038
  */
989
1039
  NewDeviceSerial1: string;
1040
+ /** The gate on the whole ONT branch: NO is what asks for a failure reason.
1041
+ *
1042
+ * @type {ENUM}
1043
+ * @default
1044
+ * @enum {YfFieldVisitOutcomeFormONTChecksPassed}
1045
+ */
1046
+ OntChecksPassed: YfFieldVisitOutcomeFormONTChecksPassed;
1047
+ /** The proof behind a YES: a reading taken at the worst point in the property, not the best.
1048
+ *
1049
+ * @type {FILE_MULTIPLE}
1050
+ * @default
1051
+ */
1052
+ AbleToAchieveSignalEvidence: string;
990
1053
  /** Where the router actually is — the answer text alone rarely settles a coverage argument.
991
1054
  *
992
1055
  * @type {FILE_MULTIPLE}
@@ -1162,6 +1225,12 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
1162
1225
  * @default
1163
1226
  */
1164
1227
  CustomerSignature: string;
1228
+ /** RETIRED round 1 — replaced by ONTLightLevelPhoto + ONTStatusLightsPhoto. Off the form, column kept.
1229
+ *
1230
+ * @type {FILE_MULTIPLE}
1231
+ * @default
1232
+ */
1233
+ OntChecksPhoto: string;
1165
1234
  }
1166
1235
  /**
1167
1236
  * YfFieldVisitOutcomeForm entity from FieldServiceModule
@@ -1186,6 +1255,8 @@ export declare class YfFieldVisitOutcomeForm extends OdinRecord<YfFieldVisitOutc
1186
1255
  Note: OdinLink<LinkedOdinRecord<NoteProperties>>;
1187
1256
  /** Linked File records (YfFieldVisitOutcomeForm__File) */
1188
1257
  File: OdinLink<LinkedOdinRecord<FileProperties>>;
1258
+ /** Linked User records (YfFieldVisitOutcomeForm__User) */
1259
+ User: OdinLink<LinkedOdinRecord<UserProperties>>;
1189
1260
  }
1190
1261
  /**
1191
1262
  * RabbitMQ routing keys for YfFieldVisitOutcomeForm events
@@ -1197,12 +1268,6 @@ export declare const ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DELETED = "FieldSer
1197
1268
  * Type-specific routing keys for YfFieldVisitOutcomeForm events
1198
1269
  * Subscribe to these for events on specific entity types only
1199
1270
  */
1200
- /** This is the default record type created */
1201
- export declare const ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_CREATED = "FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordCreated";
1202
- /** This is the default record type updated */
1203
- export declare const ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_UPDATED = "FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordUpdated";
1204
- /** This is the default record type deleted */
1205
- export declare const ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_DELETED = "FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordDeleted";
1206
1271
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. created */
1207
1272
  export declare const ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_CREATED = "FieldServiceModule.YfFieldVisitOutcomeForm.OUTCOME_FORM.SubDbRecordCreated";
1208
1273
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. updated */
@@ -1221,3 +1286,7 @@ export declare const ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_DELETED =
1221
1286
  export declare const ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_CREATED = "FieldServiceModule.YfFieldVisitOutcomeForm.File.SubDbRecordAssociationCreated";
1222
1287
  /** Event: YfFieldVisitOutcomeForm__File link deleted */
1223
1288
  export declare const ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_DELETED = "FieldServiceModule.YfFieldVisitOutcomeForm.File.SubDbRecordAssociationDeleted";
1289
+ /** Event: YfFieldVisitOutcomeForm__User link created */
1290
+ export declare const ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_CREATED = "FieldServiceModule.YfFieldVisitOutcomeForm.User.SubDbRecordAssociationCreated";
1291
+ /** Event: YfFieldVisitOutcomeForm__User link deleted */
1292
+ export declare const ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_DELETED = "FieldServiceModule.YfFieldVisitOutcomeForm.User.SubDbRecordAssociationDeleted";
@@ -12,15 +12,13 @@
12
12
  * Generated from Odin schema definition
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_CREATED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_CREATED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_ADDRESS_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_ADDRESS_CREATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_DELETED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_UPDATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_CREATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_DELETED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_UPDATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_CREATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DELETED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_UPDATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_CREATED = exports.YfFieldVisitOutcomeForm = exports.YfFieldVisitOutcomeFormPropertyKeys = exports.YfFieldVisitOutcomeFormHappyWithOutcome = exports.YfFieldVisitOutcomeFormTrustPilotRequest = exports.YfFieldVisitOutcomeFormEngineerOutcome = exports.YfFieldVisitOutcomeFormHowManyNewDevices = exports.YfFieldVisitOutcomeFormHardwareRemoved = exports.YfFieldVisitOutcomeFormHardwareReplaced = exports.YfFieldVisitOutcomeFormAbleToAchieveMinimumSpeed = exports.YfFieldVisitOutcomeFormONTCheckFailReason = exports.YfFieldVisitOutcomeFormONTChecksPassed = exports.YfFieldVisitOutcomeFormCustomerAtInstall = exports.YfFieldVisitOutcomeFormEngineerDiagnosisCustomerDevice = exports.YfFieldVisitOutcomeFormEngineerDiagnosis = exports.YfFieldVisitOutcomeFormONTFixedToWall = exports.YfFieldVisitOutcomeFormPropertyFrontPhotoConfirmed = exports.YfFieldVisitOutcomeFormHowManyYouMeshNodes = exports.YfFieldVisitOutcomeFormEntityTypes = void 0;
15
+ exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_CREATED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_CREATED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_CREATED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_ADDRESS_DELETED = exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_ADDRESS_CREATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_DELETED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_UPDATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_CREATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DELETED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_UPDATED = exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_CREATED = exports.YfFieldVisitOutcomeForm = exports.YfFieldVisitOutcomeFormPropertyKeys = exports.YfFieldVisitOutcomeFormHappyWithOutcome = exports.YfFieldVisitOutcomeFormTrustPilotRequest = exports.YfFieldVisitOutcomeFormEngineerOutcome = exports.YfFieldVisitOutcomeFormHowManyNewDevices = exports.YfFieldVisitOutcomeFormHardwareRemoved = exports.YfFieldVisitOutcomeFormHardwareReplaced = exports.YfFieldVisitOutcomeFormAbleToAchieveMinimumSpeed = exports.YfFieldVisitOutcomeFormONTChecksPassed = exports.YfFieldVisitOutcomeFormONTCheckFailReason = exports.YfFieldVisitOutcomeFormCustomerAtInstall = exports.YfFieldVisitOutcomeFormEngineerDiagnosisCustomerDevice = exports.YfFieldVisitOutcomeFormEngineerDiagnosis = exports.YfFieldVisitOutcomeFormONTFixedToWall = exports.YfFieldVisitOutcomeFormPropertyFrontPhotoConfirmed = exports.YfFieldVisitOutcomeFormHowManyYouMeshNodes = exports.YfFieldVisitOutcomeFormEntityTypes = void 0;
16
16
  const core_1 = require("@d19n/odin-types/dist/core");
17
17
  /**
18
18
  * Available types for YfFieldVisitOutcomeForm records
19
19
  */
20
20
  var YfFieldVisitOutcomeFormEntityTypes;
21
21
  (function (YfFieldVisitOutcomeFormEntityTypes) {
22
- /** This is the default record type */
23
- YfFieldVisitOutcomeFormEntityTypes["DEFAULT"] = "DEFAULT";
24
22
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. */
25
23
  YfFieldVisitOutcomeFormEntityTypes["OUTCOME_FORM"] = "OUTCOME_FORM";
26
24
  })(YfFieldVisitOutcomeFormEntityTypes = exports.YfFieldVisitOutcomeFormEntityTypes || (exports.YfFieldVisitOutcomeFormEntityTypes = {}));
@@ -136,20 +134,6 @@ var YfFieldVisitOutcomeFormCustomerAtInstall;
136
134
  YfFieldVisitOutcomeFormCustomerAtInstall["NO"] = "NO";
137
135
  YfFieldVisitOutcomeFormCustomerAtInstall["YES"] = "YES";
138
136
  })(YfFieldVisitOutcomeFormCustomerAtInstall = exports.YfFieldVisitOutcomeFormCustomerAtInstall || (exports.YfFieldVisitOutcomeFormCustomerAtInstall = {}));
139
- /**
140
- * Valid values for YfFieldVisitOutcomeForm.ONTChecksPassed
141
- *
142
- * The gate on the whole ONT branch: NO is what asks for a failure reason.
143
- *
144
- * @remarks Available options:
145
- * - `NO` - No
146
- * - `YES` - Yes
147
- */
148
- var YfFieldVisitOutcomeFormONTChecksPassed;
149
- (function (YfFieldVisitOutcomeFormONTChecksPassed) {
150
- YfFieldVisitOutcomeFormONTChecksPassed["NO"] = "NO";
151
- YfFieldVisitOutcomeFormONTChecksPassed["YES"] = "YES";
152
- })(YfFieldVisitOutcomeFormONTChecksPassed = exports.YfFieldVisitOutcomeFormONTChecksPassed || (exports.YfFieldVisitOutcomeFormONTChecksPassed = {}));
153
137
  /**
154
138
  * Valid values for YfFieldVisitOutcomeForm.ONTCheckFailReason
155
139
  *
@@ -166,6 +150,20 @@ var YfFieldVisitOutcomeFormONTCheckFailReason;
166
150
  YfFieldVisitOutcomeFormONTCheckFailReason["LIGHT_LEVEL_OUT_OF_SPEC"] = "LIGHT_LEVEL_OUT_OF_SPEC";
167
151
  YfFieldVisitOutcomeFormONTCheckFailReason["NO_LIGHT_FIBRE_BREAK"] = "NO_LIGHT_FIBRE_BREAK";
168
152
  })(YfFieldVisitOutcomeFormONTCheckFailReason = exports.YfFieldVisitOutcomeFormONTCheckFailReason || (exports.YfFieldVisitOutcomeFormONTCheckFailReason = {}));
153
+ /**
154
+ * Valid values for YfFieldVisitOutcomeForm.ONTChecksPassed
155
+ *
156
+ * The gate on the whole ONT branch: NO is what asks for a failure reason.
157
+ *
158
+ * @remarks Available options:
159
+ * - `NO` - No
160
+ * - `YES` - Yes
161
+ */
162
+ var YfFieldVisitOutcomeFormONTChecksPassed;
163
+ (function (YfFieldVisitOutcomeFormONTChecksPassed) {
164
+ YfFieldVisitOutcomeFormONTChecksPassed["NO"] = "NO";
165
+ YfFieldVisitOutcomeFormONTChecksPassed["YES"] = "YES";
166
+ })(YfFieldVisitOutcomeFormONTChecksPassed = exports.YfFieldVisitOutcomeFormONTChecksPassed || (exports.YfFieldVisitOutcomeFormONTChecksPassed = {}));
169
167
  /**
170
168
  * Valid values for YfFieldVisitOutcomeForm.AbleToAchieveMinimumSpeed
171
169
  *
@@ -336,12 +334,22 @@ var YfFieldVisitOutcomeFormHappyWithOutcome;
336
334
  */
337
335
  var YfFieldVisitOutcomeFormPropertyKeys;
338
336
  (function (YfFieldVisitOutcomeFormPropertyKeys) {
337
+ /** The attending engineer. Prefilled from the work order via the form field default; the engineer can correct it if the job was reassigned on the day. */
338
+ YfFieldVisitOutcomeFormPropertyKeys["Engineer"] = "Engineer";
339
+ /** The ONT light level reading. Split out of the old combined ONT photo. */
340
+ YfFieldVisitOutcomeFormPropertyKeys["OntLightLevelPhoto"] = "ONTLightLevelPhoto";
341
+ /** Mesh topology from the gateway GUI, showing every unit in spec after the work. */
342
+ YfFieldVisitOutcomeFormPropertyKeys["PostFaultMeshTopologyEvidence"] = "PostFaultMeshTopologyEvidence";
343
+ /** The ONT status lights. Split out of the old combined ONT photo. */
344
+ YfFieldVisitOutcomeFormPropertyKeys["OntStatusLightsPhoto"] = "ONTStatusLightsPhoto";
345
+ /** The post-fault EXFO report. Asked on every visit, not only where the standard was met. */
346
+ YfFieldVisitOutcomeFormPropertyKeys["PostFaultSpeedDbmEvidence"] = "PostFaultSpeedDbmEvidence";
339
347
  /** When the visit started. Field Services asked whether this can auto-populate to now; prefill is a form-renderer capability and is tracked separately, so it is captured by hand until then. */
340
348
  YfFieldVisitOutcomeFormPropertyKeys["ServiceVisitDateTime"] = "ServiceVisitDateTime";
341
- /** The attending engineer. Asked for as free text; auto-populating from the logged-in user is the same prefill question as ServiceVisitDateTime. */
342
- YfFieldVisitOutcomeFormPropertyKeys["EngineerName"] = "EngineerName";
343
349
  /** The work order this visit was made against. Deliberately carries no UNIQUE validator: a repeat visit to the same work order is a second form, not an overwrite of the first. */
344
350
  YfFieldVisitOutcomeFormPropertyKeys["WorkOrderNumber"] = "WorkOrderNumber";
351
+ /** RETIRED — replaced by the Engineer column, which is TEXT and prefills from the work order. Off the form; a NAME column cannot become TEXT in place. */
352
+ YfFieldVisitOutcomeFormPropertyKeys["EngineerName"] = "EngineerName";
345
353
  /** The property visited, linked to the CRM address record. */
346
354
  YfFieldVisitOutcomeFormPropertyKeys["Location"] = "Location";
347
355
  /** The picture the engineer confirms having taken on arrival. */
@@ -362,8 +370,6 @@ var YfFieldVisitOutcomeFormPropertyKeys;
362
370
  YfFieldVisitOutcomeFormPropertyKeys["OntFixedToWall"] = "ONTFixedToWall";
363
371
  /** Evidence of how the ONT is fixed and powered. */
364
372
  YfFieldVisitOutcomeFormPropertyKeys["OntFixedToWallPhoto"] = "ONTFixedToWallPhoto";
365
- /** The readings behind the ONT check answer. */
366
- YfFieldVisitOutcomeFormPropertyKeys["OntChecksPhoto"] = "ONTChecksPhoto";
367
373
  /** What the engineer saw that produced the failure reason. */
368
374
  YfFieldVisitOutcomeFormPropertyKeys["OntCheckFailReasonPhoto"] = "ONTCheckFailReasonPhoto";
369
375
  /** The engineer's diagnosis category. A clean 8-option list from the 2026-08-21 template; the legacy 16-option list stays on YfFieldServiceVisit with the records that used it. */
@@ -374,8 +380,6 @@ var YfFieldVisitOutcomeFormPropertyKeys;
374
380
  YfFieldVisitOutcomeFormPropertyKeys["EngineerDiagnosisCustomerDevicePhoto"] = "EngineerDiagnosisCustomerDevicePhoto";
375
381
  /** Whether the person on site witnessed the original install — the difference between a first-hand account of what changed and a second-hand one. */
376
382
  YfFieldVisitOutcomeFormPropertyKeys["CustomerAtInstall"] = "CustomerAtInstall";
377
- /** The gate on the whole ONT branch: NO is what asks for a failure reason. */
378
- YfFieldVisitOutcomeFormPropertyKeys["OntChecksPassed"] = "ONTChecksPassed";
379
383
  /** Why the ONT check failed. Only asked when ONTChecksPassed is NO. */
380
384
  YfFieldVisitOutcomeFormPropertyKeys["OntCheckFailReason"] = "ONTCheckFailReason";
381
385
  /** Evidence the node is not on the floor. */
@@ -388,12 +392,14 @@ var YfFieldVisitOutcomeFormPropertyKeys;
388
392
  YfFieldVisitOutcomeFormPropertyKeys["PreFaultTestPhoto"] = "PreFaultTestPhoto";
389
393
  /** What the readings looked like where the standard could not be met. */
390
394
  YfFieldVisitOutcomeFormPropertyKeys["NotAbleToAchieveSignalPhoto"] = "NotAbleToAchieveSignalPhoto";
391
- /** The proof behind a YES: a reading taken at the worst point in the property, not the best. */
392
- YfFieldVisitOutcomeFormPropertyKeys["AbleToAchieveSignalEvidence"] = "AbleToAchieveSignalEvidence";
393
395
  /** The engineer's account of the visit. Deliberately carries no defaultValue: whether the template headings (Outcome / Fault Found / Checks Done / Action Taken / Status on Leave / Further Action / Customer Advised) are pre-filled or shown as guidance is open with Trevor, and adding a default later is a column PUT while removing one already written onto live records is not clean. */
394
396
  YfFieldVisitOutcomeFormPropertyKeys["ResolutionNotes"] = "ResolutionNotes";
395
397
  /** Serial of the first device installed on this visit. The template repeated "first" on all four rows; first/second/third/fourth confirmed with the DRI 2026-08-25. */
396
398
  YfFieldVisitOutcomeFormPropertyKeys["NewDeviceSerial1"] = "NewDeviceSerial1";
399
+ /** The gate on the whole ONT branch: NO is what asks for a failure reason. */
400
+ YfFieldVisitOutcomeFormPropertyKeys["OntChecksPassed"] = "ONTChecksPassed";
401
+ /** The proof behind a YES: a reading taken at the worst point in the property, not the best. */
402
+ YfFieldVisitOutcomeFormPropertyKeys["AbleToAchieveSignalEvidence"] = "AbleToAchieveSignalEvidence";
397
403
  /** Where the router actually is — the answer text alone rarely settles a coverage argument. */
398
404
  YfFieldVisitOutcomeFormPropertyKeys["RouterLocationPhoto"] = "RouterLocationPhoto";
399
405
  /** Serial of the first existing mesh node. */
@@ -450,6 +456,8 @@ var YfFieldVisitOutcomeFormPropertyKeys;
450
456
  YfFieldVisitOutcomeFormPropertyKeys["CustomerName"] = "CustomerName";
451
457
  /** The customer's signature against the declaration above. */
452
458
  YfFieldVisitOutcomeFormPropertyKeys["CustomerSignature"] = "CustomerSignature";
459
+ /** RETIRED round 1 — replaced by ONTLightLevelPhoto + ONTStatusLightsPhoto. Off the form, column kept. */
460
+ YfFieldVisitOutcomeFormPropertyKeys["OntChecksPhoto"] = "ONTChecksPhoto";
453
461
  })(YfFieldVisitOutcomeFormPropertyKeys = exports.YfFieldVisitOutcomeFormPropertyKeys || (exports.YfFieldVisitOutcomeFormPropertyKeys = {}));
454
462
  /**
455
463
  * YfFieldVisitOutcomeForm entity from FieldServiceModule
@@ -477,12 +485,6 @@ exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DELETED = 'FieldServiceModule.Yf
477
485
  * Type-specific routing keys for YfFieldVisitOutcomeForm events
478
486
  * Subscribe to these for events on specific entity types only
479
487
  */
480
- /** This is the default record type created */
481
- exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_CREATED = 'FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordCreated';
482
- /** This is the default record type updated */
483
- exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_UPDATED = 'FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordUpdated';
484
- /** This is the default record type deleted */
485
- exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_DEFAULT_DELETED = 'FieldServiceModule.YfFieldVisitOutcomeForm.DEFAULT.SubDbRecordDeleted';
486
488
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. created */
487
489
  exports.ROUTING_KEY_YF_FIELD_VISIT_OUTCOME_FORM_OUTCOME_FORM_CREATED = 'FieldServiceModule.YfFieldVisitOutcomeForm.OUTCOME_FORM.SubDbRecordCreated';
488
490
  /** The single record type on this entity, named to match every sibling outcome form in FieldServiceModule. One type is why the form needs no record-type selector. updated */
@@ -501,3 +503,7 @@ exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_NOTE_DELETED = 'FieldServic
501
503
  exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_CREATED = 'FieldServiceModule.YfFieldVisitOutcomeForm.File.SubDbRecordAssociationCreated';
502
504
  /** Event: YfFieldVisitOutcomeForm__File link deleted */
503
505
  exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_FILE_DELETED = 'FieldServiceModule.YfFieldVisitOutcomeForm.File.SubDbRecordAssociationDeleted';
506
+ /** Event: YfFieldVisitOutcomeForm__User link created */
507
+ exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_CREATED = 'FieldServiceModule.YfFieldVisitOutcomeForm.User.SubDbRecordAssociationCreated';
508
+ /** Event: YfFieldVisitOutcomeForm__User link deleted */
509
+ exports.ROUTING_KEY_LINK_YF_FIELD_VISIT_OUTCOME_FORM_USER_DELETED = 'FieldServiceModule.YfFieldVisitOutcomeForm.User.SubDbRecordAssociationDeleted';
@@ -21,6 +21,7 @@ import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/
21
21
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
22
22
  import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
23
23
  import { CustomerDeviceRouterProperties } from '../entities-v2/CustomerDeviceRouter';
24
+ import { CollectCustomerDeviceRouterProperties } from '../actions-v2/CollectCustomerDeviceRouterDto';
24
25
  import { CreateCustomerDeviceRouterFromDispatchProperties } from '../actions-v2/CreateCustomerDeviceRouterFromDispatchDto';
25
26
  import { CustomerDeviceRouterCreateProperties } from '../actions-v2/CustomerDeviceRouterCreateDto';
26
27
  import { CustomerDeviceRouterUpdateProperties } from '../actions-v2/CustomerDeviceRouterUpdateDto';
@@ -351,6 +352,33 @@ export declare class CustomerDeviceRouterRecord<TProps = CustomerDeviceRouterPro
351
352
  journeyId?: string;
352
353
  stageKey?: string;
353
354
  }): ActionBuilder;
355
+ /**
356
+ * CollectCustomerDeviceRouter
357
+ *
358
+ * Updates this CustomerDeviceRouter record.
359
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
360
+ *
361
+ * @param propertiesOrOptions - Properties to update, or options object
362
+ * @param options - Optional settings (journeyId, stageKey)
363
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
364
+ * @throws Error if called on a new (unsaved) record
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const record = await odinClient.customerDeviceRouters.get(id);
369
+ * await record.collectCustomerDeviceRouter({ ... }).execute();
370
+ *
371
+ * // Dry run (for debugging)
372
+ * const payload = record.collectCustomerDeviceRouter({ ... }).dryRun();
373
+ * ```
374
+ */
375
+ collectCustomerDeviceRouter(propertiesOrOptions?: CollectCustomerDeviceRouterProperties | {
376
+ journeyId?: string;
377
+ stageKey?: string;
378
+ }, options?: {
379
+ journeyId?: string;
380
+ stageKey?: string;
381
+ }): ActionBuilder;
354
382
  /**
355
383
  * CustomerDeviceRouterUpdate
356
384
  *
@@ -503,6 +503,43 @@ class CustomerDeviceRouterRecord {
503
503
  // ============================================
504
504
  // UPDATE ACTIONS (require existing record)
505
505
  // ============================================
506
+ /**
507
+ * CollectCustomerDeviceRouter
508
+ *
509
+ * Updates this CustomerDeviceRouter record.
510
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
511
+ *
512
+ * @param propertiesOrOptions - Properties to update, or options object
513
+ * @param options - Optional settings (journeyId, stageKey)
514
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
515
+ * @throws Error if called on a new (unsaved) record
516
+ *
517
+ * @example
518
+ * ```typescript
519
+ * const record = await odinClient.customerDeviceRouters.get(id);
520
+ * await record.collectCustomerDeviceRouter({ ... }).execute();
521
+ *
522
+ * // Dry run (for debugging)
523
+ * const payload = record.collectCustomerDeviceRouter({ ... }).dryRun();
524
+ * ```
525
+ */
526
+ collectCustomerDeviceRouter(propertiesOrOptions, options) {
527
+ var _a;
528
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
529
+ throw new Error('collectCustomerDeviceRouter requires an existing record. Use accessor.get() first.');
530
+ let properties = {};
531
+ let opts = options;
532
+ if (propertiesOrOptions) {
533
+ if ('journeyId' in propertiesOrOptions || 'stageKey' in propertiesOrOptions) {
534
+ opts = propertiesOrOptions;
535
+ }
536
+ else {
537
+ properties = propertiesOrOptions;
538
+ }
539
+ }
540
+ const payload = Object.assign({ id: this._record.id, entity: this._record.entity, type: this._record.type, actionName: 'CollectCustomerDeviceRouter', properties, associations: this._pendingLinks.length > 0 ? this._pendingLinks : undefined }, opts);
541
+ return new ActionBuilder(this._provider, 'ServiceModule', 'CustomerDeviceRouter', payload, () => { this._pendingLinks = []; });
542
+ }
506
543
  /**
507
544
  * CustomerDeviceRouterUpdate
508
545
  *