@d19n/youfibre-odin-sdk 2.0.294 → 2.0.295

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 (63) hide show
  1. package/README.md +5 -2
  2. package/dist/EntityRegistry.d.ts +2 -2
  3. package/dist/EntityRegistry.js +2 -2
  4. package/dist/OdinApiClient.d.ts +4 -4
  5. package/dist/OdinApiClient.js +6 -6
  6. package/dist/OdinDbClient.d.ts +4 -4
  7. package/dist/OdinDbClient.js +6 -6
  8. package/dist/accessors-v2/{YfFieldServiceVisitAccessor.d.ts → YfFieldVisitOutcomeFormAccessor.d.ts} +24 -24
  9. package/dist/accessors-v2/{YfFieldServiceVisitAccessor.js → YfFieldVisitOutcomeFormAccessor.js} +21 -21
  10. package/dist/accessors-v2/index.d.ts +1 -1
  11. package/dist/accessors-v2/index.js +3 -3
  12. package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.d.ts +230 -594
  13. package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.js +30 -30
  14. package/dist/actions-v2/CreateAmcoCollectionReminder10DayEmailDto.d.ts +135 -0
  15. package/dist/actions-v2/CreateAmcoCollectionReminder10DayEmailDto.js +59 -0
  16. package/dist/actions-v2/CreateAmcoCollectionReminder5DayEmailDto.d.ts +135 -0
  17. package/dist/actions-v2/CreateAmcoCollectionReminder5DayEmailDto.js +59 -0
  18. package/dist/api-sdk-v2/AddressApi.d.ts +2 -0
  19. package/dist/api-sdk-v2/AddressApi.js +6 -0
  20. package/dist/api-sdk-v2/FileApi.d.ts +2 -0
  21. package/dist/api-sdk-v2/FileApi.js +6 -0
  22. package/dist/api-sdk-v2/NoteApi.d.ts +2 -0
  23. package/dist/api-sdk-v2/NoteApi.js +6 -0
  24. package/dist/api-sdk-v2/WorkOrderApi.d.ts +2 -0
  25. package/dist/api-sdk-v2/WorkOrderApi.js +6 -0
  26. package/dist/api-sdk-v2/YfFieldVisitOutcomeFormApi.d.ts +54 -0
  27. package/dist/api-sdk-v2/YfFieldVisitOutcomeFormApi.js +173 -0
  28. package/dist/db-accessors-v2/{YfFieldServiceVisitDbAccessor.d.ts → YfFieldVisitOutcomeFormDbAccessor.d.ts} +22 -22
  29. package/dist/db-accessors-v2/{YfFieldServiceVisitDbAccessor.js → YfFieldVisitOutcomeFormDbAccessor.js} +21 -21
  30. package/dist/db-accessors-v2/index.d.ts +1 -1
  31. package/dist/db-accessors-v2/index.js +3 -3
  32. package/dist/db-sdk-v2/AddressDb.d.ts +2 -0
  33. package/dist/db-sdk-v2/AddressDb.js +6 -0
  34. package/dist/db-sdk-v2/FileDb.d.ts +2 -0
  35. package/dist/db-sdk-v2/FileDb.js +6 -0
  36. package/dist/db-sdk-v2/NoteDb.d.ts +2 -0
  37. package/dist/db-sdk-v2/NoteDb.js +6 -0
  38. package/dist/db-sdk-v2/WorkOrderDb.d.ts +2 -0
  39. package/dist/db-sdk-v2/WorkOrderDb.js +6 -0
  40. package/dist/db-sdk-v2/YfFieldVisitOutcomeFormDb.d.ts +126 -0
  41. package/dist/db-sdk-v2/YfFieldVisitOutcomeFormDb.js +222 -0
  42. package/dist/entities-v2/Address.d.ts +3 -0
  43. package/dist/entities-v2/File.d.ts +3 -0
  44. package/dist/entities-v2/Note.d.ts +3 -0
  45. package/dist/entities-v2/WorkOrder.d.ts +7 -0
  46. package/dist/entities-v2/WorkOrder.js +5 -1
  47. package/dist/entities-v2/YfFieldVisitOutcomeForm.d.ts +1223 -0
  48. package/dist/entities-v2/YfFieldVisitOutcomeForm.js +503 -0
  49. package/dist/records-v2/AddressRecord.d.ts +20 -20
  50. package/dist/records-v2/AddressRecord.js +33 -33
  51. package/dist/records-v2/EmailRecord.d.ts +58 -0
  52. package/dist/records-v2/EmailRecord.js +72 -0
  53. package/dist/records-v2/FileRecord.d.ts +20 -20
  54. package/dist/records-v2/FileRecord.js +33 -33
  55. package/dist/records-v2/NoteRecord.d.ts +20 -20
  56. package/dist/records-v2/NoteRecord.js +33 -33
  57. package/dist/records-v2/WorkOrderRecord.d.ts +24 -24
  58. package/dist/records-v2/WorkOrderRecord.js +38 -38
  59. package/dist/records-v2/{YfFieldServiceVisitRecord.d.ts → YfFieldVisitOutcomeFormRecord.d.ts} +76 -61
  60. package/dist/records-v2/{YfFieldServiceVisitRecord.js → YfFieldVisitOutcomeFormRecord.js} +112 -96
  61. package/dist/records-v2/index.d.ts +1 -1
  62. package/dist/records-v2/index.js +4 -4
  63. package/package.json +1 -1
@@ -112,880 +112,516 @@ export declare class CompleteServiceWorkOrderDto extends OdinRecordUpdateDto<Com
112
112
  });
113
113
  }
114
114
  /**
115
- * Properties for YfFieldServiceVisitAudit action
115
+ * Properties for YfFieldVisitOutcomeForm action
116
116
  *
117
- * @property Required fields: 82
118
- * @property Optional fields: 13
117
+ * @property Required fields: 42
118
+ * @property Optional fields: 15
119
119
  */
120
- export interface YfFieldServiceVisitAuditProperties {
120
+ export interface YfFieldVisitOutcomeFormProperties {
121
121
  /**
122
- * Location
122
+ * ServiceVisitDateTime
123
123
  *
124
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
125
- * @type {LOOKUP}
124
+ * 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.
125
+ * @type {DATE_TIME}
126
126
  * @required
127
127
  */
128
- Location: string;
128
+ ServiceVisitDateTime: string;
129
129
  /**
130
- * It is safe to enter and exit the property/building/communal areas?
130
+ * EngineerName
131
131
  *
132
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
133
- * @type {ENUM}
132
+ * The attending engineer. Asked for as free text; auto-populating from the logged-in user is the same prefill question as ServiceVisitDateTime.
133
+ * @type {NAME}
134
134
  * @required
135
135
  */
136
- SafeToEnter: string;
136
+ EngineerName: string;
137
137
  /**
138
- * I am confident my work will not disturb asbestos containing materials.
138
+ * WorkOrderNumber
139
139
  *
140
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
141
- * @type {ENUM}
140
+ * 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.
141
+ * @type {ALPHA_NUMERICAL}
142
142
  * @required
143
143
  */
144
- AsbestosMaterials: string;
144
+ WorkOrderNumber: string;
145
145
  /**
146
- * I have received the relevant training to carry out the work required (I.e Asbestos, Work at Height, Confined Spaces, Gas, Electrics, and Manual Handling – Heavy lifting).
146
+ * Location
147
147
  *
148
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
149
- * @type {ENUM}
148
+ * The property visited, linked to the CRM address record.
149
+ * @type {LOOKUP}
150
150
  * @required
151
151
  */
152
- RelevantTraining: string;
152
+ Location: string;
153
153
  /**
154
- * My working environment is safe (no sharps, aggressive animals/tenants, unsanitary working conditions).
154
+ * PropertyFrontPhotoConfirmed
155
155
  *
156
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
156
+ * Proof of attendance at the right property. The confirmation is the enforced half; the photo beside it is not.
157
157
  * @type {ENUM}
158
158
  * @required
159
159
  */
160
- WorkEnvironmentSafe: string;
161
- /**
162
- * What makes your working environment unsafe?
163
- *
164
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
165
- * @type {TEXT_LONG}
166
- * @required
167
- * @visibleWhen WorkEnvironmentSafe = ["NO"]
168
- */
169
- WorkEnvironmentUnsafe: string;
170
- /**
171
- * Please capture images
172
- *
173
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
174
- * @type {FILE_MULTIPLE}
175
- * @required
176
- * @visibleWhen WorkEnvironmentSafe = ["NO"]
177
- */
178
- WorkEnvironmentUnsafePhoto: string;
160
+ PropertyFrontPhotoConfirmed: string;
179
161
  /**
180
- * My working area is free of materials or equipment that could be dangerous (asbestos, chemicals, tenants belongings)?
162
+ * CustomerAtInstall
181
163
  *
182
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
164
+ * Whether the person on site witnessed the original install — the difference between a first-hand account of what changed and a second-hand one.
183
165
  * @type {ENUM}
184
166
  * @required
185
167
  */
186
- WorkingAreaFreeOfDangerousMaterials: string;
168
+ CustomerAtInstall: string;
187
169
  /**
188
- * An adult (over 18) will be present in the property at all times.
170
+ * ONTFixedToWall
189
171
  *
190
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
172
+ * An ONT on an extension lead or sitting loose is a repeat-fault cause in its own right.
191
173
  * @type {ENUM}
192
174
  * @required
193
175
  */
194
- AdultPresent: string;
176
+ ONTFixedToWall: string;
195
177
  /**
196
- * I confirm fire exits and/or escape routes will not be obstructed by my work.
178
+ * ONTChecksPassed
197
179
  *
198
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
180
+ * The gate on the whole ONT branch: NO is what asks for a failure reason.
199
181
  * @type {ENUM}
200
182
  * @required
201
183
  */
202
- FireExits: string;
184
+ ONTChecksPassed: string;
203
185
  /**
204
- * I confirm I will not create fumes, odours or anything likely to cause nuisance during and after works.
186
+ * ONTCheckFailReason
205
187
  *
206
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
188
+ * Why the ONT check failed. Only asked when ONTChecksPassed is NO.
207
189
  * @type {ENUM}
208
190
  * @required
191
+ * @visibleWhen ONTChecksPassed = ["NO"]
209
192
  */
210
- FumesNotCreated: string;
193
+ ONTCheckFailReason: string;
211
194
  /**
212
- * Engineer diagnosis : ( this is used to check if the visit was booked under the correct type, so pick the correct option once you have validated the reason directly with the CM).
195
+ * EngineerDiagnosis
213
196
  *
214
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
197
+ * 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.
215
198
  * @type {ENUM}
216
199
  * @required
217
200
  */
218
201
  EngineerDiagnosis: string;
219
202
  /**
220
- * Will the customer benefit from YouMesh?
221
- *
222
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
223
- * @type {ENUM}
224
- * @required
225
- * @visibleWhen EngineerDiagnosis = ["NEW_INSTALL_SETUP"]
226
- */
227
- YouMeshCustomerBenefit: string;
228
- /**
229
- * Offer this solution, factoring in guidelines for YouMesh based on property size. If accepted, install this and demo to the CM. Call CS to add this cost to the customers account.
230
- *
231
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
232
- * @type {ENUM}
233
- * @required
234
- * @visibleWhen YouMeshCustomerBenefit = ["YES"]
235
- */
236
- YouMeshCustomerOutcome: string;
237
- /**
238
- * Will the customer benefit from YouPhone?
239
- *
240
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
241
- * @type {ENUM}
242
- * @required
243
- * @visibleWhen EngineerDiagnosis = ["NEW_INSTALL_SETUP"]
244
- */
245
- YouPhoneCustomerBenefit: string;
246
- /**
247
- * Offer this solution, factoring in, if the customer wishes to retain an existing number. If accepted, install this by swapping ONT. Call CS to add this cost to the customer account / arrange retaining thier number.
248
- *
249
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
250
- * @type {ENUM}
251
- * @required
252
- * @visibleWhen YouPhoneCustomerBenefit = ["YES"]
253
- */
254
- YouPhoneCustomerOutcome: string;
255
- /**
256
- * What are you replacing?
257
- *
258
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
259
- * @type {ENUM}
260
- * @required
261
- * @visibleWhen EngineerDiagnosis = ["EQUIPMENT_REPLACEMENT_FAULTY"]
262
- */
263
- WhatAreYouReplacing1: string;
264
- /**
265
- * Does the Customer report any other concerns?
266
- *
267
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
268
- * @type {ENUM}
269
- * @required
270
- * @visibleWhen EngineerDiagnosis = ["EQUIPMENT_REPLACEMENT_FAULTY"]
271
- */
272
- CustomerOtherConcerns: string;
273
- /**
274
- * Write which other concerns customer is reporting.
275
- *
276
- * Free-text notes field for YfFieldServiceVisit. Used by Field Operations team for documentation.
277
- * @type {TEXT_LONG}
278
- * @required
279
- * @visibleWhen CustomerOtherConcerns = ["YES"]
280
- */
281
- OtherConcernsDescription: string;
282
- /**
283
- * Is this the first time Mesh is being installed?
284
- *
285
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
286
- * @type {ENUM}
287
- * @required
288
- * @visibleWhen EngineerDiagnosis = ["INSTALL_MESH"]
289
- */
290
- YouMeshInstalledFirstTime: string;
291
- /**
292
- * Please include a screenshot of the Network Topology from Eero insights before you add Mesh.
293
- *
294
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
295
- * @type {FILE_MULTIPLE}
296
- * @required
297
- * @visibleWhen YouMeshInstalledFirstTime = ["NO"]
298
- */
299
- NetworkTopologyPhoto: string;
300
- /**
301
- * Go to the problem area & perfrom a Wi-Fi speedtest using EX1 before adding Mesh - this is to show a clear improvement once it is installed.
302
- *
303
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
304
- * @type {FILE_MULTIPLE}
305
- * @required
306
- * @visibleWhen EngineerDiagnosis = ["INSTALL_MESH"]
307
- */
308
- WiFiSpeedTest: string;
309
- /**
310
- * What are you going to hardwire?
311
- *
312
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
313
- * @type {TEXT_LONG}
314
- * @required
315
- * @visibleWhen EngineerDiagnosis = ["HARDWIRE_DEVICES"]
316
- */
317
- HardWireDevices: string;
318
- /**
319
- * Go to the worst-performing location and perform one Wi-Fi speed test using approved test equipment. Save and attach a screenshot or test report once complete.
320
- *
321
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
322
- * @type {FILE_MULTIPLE}
323
- * @required
324
- * @visibleWhen EngineerDiagnosis = ["SLOW_SPEEDS"]
325
- */
326
- WiFiSpeedTestWorstLocation: string;
327
- /**
328
- * Hardwire EX1 to router and complete speedtest Screen Shot of EX1 Report by tapping the clipboard icon awaiting the report to generate then attach to form.
329
- *
330
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
331
- * @type {FILE_MULTIPLE}
332
- * @required
333
- * @visibleWhen EngineerDiagnosis = ["CONNECTION_DROP_OUTS"]
334
- */
335
- EX1Report1: string;
336
- /**
337
- * If a particular area is impacted, go to this location and perform 1 Wi-Fi Speedtest using the EX1 Screen Shot of EX1 Report by tapping the clipboard icon awating the report ro generate then attach to form. If a particular area is impacted, go to this location and perform 1 Wi-Fi Speedtest using the EX1 Screen Shot of EX1 Report by tapping the clipboard icon awating the report ro generate then attach to form. Turn on screen reader support. To enable screen reader support, press Ctrl+Alt+Z To learn about keyboard shortcuts, press Ctrl+slash.
338
- *
339
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
340
- * @type {FILE_MULTIPLE}
341
- * @required
342
- * @visibleWhen EngineerDiagnosis = ["CONNECTION_DROP_OUTS"]
343
- */
344
- EX1Report2: string;
345
- /**
346
- * Go to the problem location and perform 1 Wi-Fi Speedtest using the EX1 - include screen shot of Eero insights network topology. Attach PDF results
347
- *
348
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
349
- * @type {FILE_MULTIPLE}
350
- * @required
351
- * @visibleWhen EngineerDiagnosis = ["WIFI_COVERAGE_ISSUE"]
352
- */
353
- WiFiCoverageReport: string;
354
- /**
355
- * Go to the problem location and perform 1 Wi-Fi Speedtest using the EX1 Screen Shot of EX1 Report by tapping the clipboard icon awating the report ro generate then attach to form. Go to the problem location and perform 1 Wi-Fi Speedtest using the EX1. Screen Shot of EX1 Report by tapping the clipboard icon awating the report ro generate then attach to form. Turn on screen reader support. To enable screen reader support, press Ctrl+Alt+Z. To learn about keyboard shortcuts, press Ctrl+slash.
356
- *
357
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
358
- * @type {FILE_MULTIPLE}
359
- * @required
360
- * @visibleWhen EngineerDiagnosis = ["WIFI_INTERFERENCE_ISSUE"]
361
- */
362
- WiFiInterferenceReport: string;
363
- /**
364
- * What is the device having the issue?
365
- *
366
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
367
- * @type {TEXT}
368
- * @required
369
- * @visibleWhen EngineerDiagnosis = ["DEVICE_ISSUE"]
370
- */
371
- DeviceReport1: string;
372
- /**
373
- * Have you checked the CUI database?
374
- *
375
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
376
- * @type {ENUM}
377
- * @required
378
- * @visibleWhen EngineerDiagnosis = ["DEVICE_ISSUE"]
379
- */
380
- DeviceReport2: string;
381
- /**
382
- * What is the other device?
203
+ * EngineerDiagnosisCustomerDevice
383
204
  *
384
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
385
- * @type {TEXT}
386
- * @required
387
- * @visibleWhen EngineerDiagnosis = ["OTHER_DEVICE_ISSUE"]
388
- */
389
- OtherDeviceReport1: string;
390
- /**
391
- * Have you checked the CUI database?
392
- *
393
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
205
+ * Which of the customer's own devices is at fault. Only asked when the diagnosis is Customer Device Issue.
394
206
  * @type {ENUM}
395
207
  * @required
396
- * @visibleWhen EngineerDiagnosis = ["OTHER_DEVICE_ISSUE"]
397
- */
398
- OtherDeviceReport2: string;
399
- /**
400
- * What does the customer need help with?
401
- *
402
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
403
- * @type {TEXT_LONG}
404
- * @required
405
- * @visibleWhen EngineerDiagnosis = ["CM_TRAINING"]
406
- */
407
- CMTraining: string;
408
- /**
409
- * What is the issue?
410
- *
411
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
412
- * @type {TEXT_LONG}
413
- * @required
414
- * @visibleWhen EngineerDiagnosis = ["YOUPHONE_ISSUE"]
208
+ * @visibleWhen EngineerDiagnosis = ["CUSTOMER_DEVICE_ISSUE"]
415
209
  */
416
- YouPhoneReport1: string;
210
+ EngineerDiagnosisCustomerDevice: string;
417
211
  /**
418
- * How many times has a engineer been regarding this issue?
212
+ * RouterLocationProperty
419
213
  *
420
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
214
+ * Where the main router sits, as found on arrival.
421
215
  * @type {TEXT_LONG}
422
216
  * @required
423
- * @visibleWhen EngineerDiagnosis = ["YOUPHONE_ISSUE"]
424
- */
425
- YouPhoneReport2: string;
426
- /**
427
- * Have you swapped and provisioned the ONT?
428
- *
429
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
430
- * @type {ENUM}
431
- * @required
432
- * @visibleWhen EngineerDiagnosis = ["YOUPHONE_ISSUE"]
433
- */
434
- YouPhoneReport3: string;
435
- /**
436
- * ONT location within property
437
- *
438
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
439
- * @type {TEXT_LONG}
440
- * @required
441
- * @visibleWhen FaultResolvedEngineer = ["YES"]
442
- */
443
- ONTLocationProperty: string;
444
- /**
445
- * Main Router location within property
446
- *
447
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
448
- * @type {TEXT_LONG}
449
- * @required
450
- * @visibleWhen FaultResolvedEngineer = ["YES"]
451
217
  */
452
218
  RouterLocationProperty: string;
453
219
  /**
454
- * Serial number of Main Router
220
+ * MainRouterSerial
455
221
  *
456
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
222
+ * Serial of the router found on site.
457
223
  * @type {ALPHA_NUMERICAL}
458
224
  * @required
459
- * @visibleWhen FaultResolvedEngineer = ["YES"]
460
225
  */
461
226
  MainRouterSerial: string;
462
227
  /**
463
- * Does the customer have a Mesh Node installed?
464
- *
465
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
466
- * @type {ENUM}
467
- * @required
468
- * @visibleWhen FaultResolvedEngineer = ["YES"]
469
- */
470
- YouMeshConfirmation: string;
471
- /**
472
- * How many mesh nodes are installed?
228
+ * HowManyYouMeshNodes
473
229
  *
474
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
230
+ * Gates the mesh serial/location pairs below — 1 reveals the first pair, 2 the first two, 3 all three.
475
231
  * @type {ENUM}
476
232
  * @required
477
- * @visibleWhen YouMeshConfirmation = ["YES"]
478
233
  */
479
234
  HowManyYouMeshNodes: string;
480
235
  /**
481
- * Serial number of mesh node 1
236
+ * YouMeshSerial1
482
237
  *
483
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
238
+ * Serial of the first existing mesh node.
484
239
  * @type {ALPHA_NUMERICAL}
485
240
  * @required
486
- * @visibleWhen HowManyYouMeshNodes = [1,2,3,4]
241
+ * @visibleWhen HowManyYouMeshNodes = ["1","2","3"]
487
242
  */
488
243
  YouMeshSerial1: string;
489
244
  /**
490
- * Location within property of mesh node 1
245
+ * YouMeshLocation1
491
246
  *
492
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
247
+ * Where the first mesh node sits.
493
248
  * @type {TEXT_LONG}
494
249
  * @required
495
- * @visibleWhen HowManyYouMeshNodes = [1,2,3,4]
250
+ * @visibleWhen HowManyYouMeshNodes = ["1","2","3"]
496
251
  */
497
252
  YouMeshLocation1: string;
498
253
  /**
499
- * Serial number of mesh node 2
254
+ * YouMeshSerial2
500
255
  *
501
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
256
+ * Serial of the second existing mesh node.
502
257
  * @type {ALPHA_NUMERICAL}
503
258
  * @required
504
- * @visibleWhen HowManyYouMeshNodes = [2,3,4]
259
+ * @visibleWhen HowManyYouMeshNodes = ["2","3"]
505
260
  */
506
261
  YouMeshSerial2: string;
507
262
  /**
508
- * Location within property of mesh node 2
263
+ * YouMeshLocation2
509
264
  *
510
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
265
+ * Where the second mesh node sits.
511
266
  * @type {TEXT_LONG}
512
267
  * @required
513
- * @visibleWhen HowManyYouMeshNodes = [2,3,4]
268
+ * @visibleWhen HowManyYouMeshNodes = ["2","3"]
514
269
  */
515
270
  YouMeshLocation2: string;
516
271
  /**
517
- * Serial number of mesh node 3
272
+ * YouMeshSerial3
518
273
  *
519
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
274
+ * Serial of the third existing mesh node.
520
275
  * @type {ALPHA_NUMERICAL}
521
276
  * @required
522
- * @visibleWhen HowManyYouMeshNodes = [3,4]
277
+ * @visibleWhen HowManyYouMeshNodes = ["3"]
523
278
  */
524
279
  YouMeshSerial3: string;
525
280
  /**
526
- * Location within property of mesh node 3
281
+ * YouMeshLocation3
527
282
  *
528
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
283
+ * Where the third mesh node sits.
529
284
  * @type {TEXT_LONG}
530
285
  * @required
531
- * @visibleWhen HowManyYouMeshNodes = [3,4]
286
+ * @visibleWhen HowManyYouMeshNodes = ["3"]
532
287
  */
533
288
  YouMeshLocation3: string;
534
289
  /**
535
- * Serial number of mesh node 4
290
+ * PreFaultInvestigationConsent
536
291
  *
537
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
538
- * @type {ALPHA_NUMERICAL}
292
+ * The instruction the engineer acknowledges before touching anything. Testing before changing is what makes the post-fault results mean something.
293
+ * @type {BOOLEAN}
539
294
  * @required
540
- * @visibleWhen HowManyYouMeshNodes = [4]
541
295
  */
542
- YouMeshSerial4: string;
296
+ PreFaultInvestigationConsent: boolean;
543
297
  /**
544
- * Location within property of mesh node 4
298
+ * PreTestOntSpeedtest
545
299
  *
546
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
547
- * @type {TEXT_LONG}
300
+ * Hard-wired speed test at the ONT — the reading that separates a network fault from everything inside the property.
301
+ * @type {FILE_MULTIPLE}
548
302
  * @required
549
- * @visibleWhen HowManyYouMeshNodes = [4]
550
303
  */
551
- YouMeshLocation4: string;
304
+ PreTestOntSpeedtest: string;
552
305
  /**
553
- * I am able to achieve minimum internet speeds of 20mbps throughout the property.
306
+ * PreTestRouterSpeedtest
554
307
  *
555
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
556
- * @type {ENUM}
308
+ * Hard-wired speed test at the router — with the ONT reading beside it, this is what places a fault on one side of the router or the other.
309
+ * @type {FILE_MULTIPLE}
557
310
  * @required
558
- * @visibleWhen HowManyYouMeshNodes = ["YES"]
559
311
  */
560
- AbleToAchieveMinimumSpeed: string;
312
+ PreTestRouterSpeedtest: string;
561
313
  /**
562
- * I am able to achieve a WiFi signal of -67dBm throughout the property - If not, add a note to give a brief explanation of why not.
314
+ * AbleToAchieveMinimumSpeed
563
315
  *
564
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
316
+ * One question covering both thresholds. The old form asked two (20mbps, and -67dBm separately); the merge and the tightening to -65dBm were confirmed with the DRI 2026-08-25.
565
317
  * @type {ENUM}
566
318
  * @required
567
- * @visibleWhen YouMeshConfirmation = ["YES"]
568
319
  */
569
- AbleToAchieveSignal: string;
320
+ AbleToAchieveMinimumSpeed: string;
570
321
  /**
571
- * Explain why you are not able to achieve WiFi signal of -67dBm?
322
+ * NotAbleToAchieveSignalNote
572
323
  *
573
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
324
+ * Why the property falls short. Only asked when the standard was not met, and it is the record of whose decision that was.
574
325
  * @type {TEXT_LONG}
575
326
  * @required
576
- * @visibleWhen AbleToAchieveSignal = ["NO"]
327
+ * @visibleWhen AbleToAchieveMinimumSpeed = ["NO"]
577
328
  */
578
329
  NotAbleToAchieveSignalNote: string;
579
330
  /**
580
- * Perform Wi-Fi speed test in the furthest or problem-affected room using approved test equipment. Attach screenshot or test report once generated.
331
+ * AbleToAchieveSignalEvidence
581
332
  *
582
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
333
+ * The proof behind a YES: a reading taken at the worst point in the property, not the best.
583
334
  * @type {FILE_MULTIPLE}
584
335
  * @required
585
- * @visibleWhen FaultResolvedEngineer = ["YES"]
586
- */
587
- EX1SpeedtestReport: string;
588
- /**
589
- * (Summarise the actions taken to resolve the issue, providing sufficient detail to understand the steps and reasoning.)
590
- *
591
- * Free-text notes field for YfFieldServiceVisit. Used by Field Operations team for documentation.
592
- * @type {TEXT_LONG}
593
- * @required
594
- * @visibleWhen FaultResolvedEngineer = ["YES"]
336
+ * @visibleWhen AbleToAchieveMinimumSpeed = ["YES"]
595
337
  */
596
- ResolutionNotes: string;
338
+ AbleToAchieveSignalEvidence: string;
597
339
  /**
598
- * Did you use any network switches?
340
+ * EscalatedToManager
599
341
  *
600
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
601
- * @type {ENUM}
342
+ * Who the visit was escalated to, if anyone. Free text per the template — the old form hard-coded one manager's address into a yes/no, which is what free text avoids.
343
+ * @type {TEXT}
602
344
  * @required
603
- * @visibleWhen FaultResolvedEngineer = ["YES"]
604
345
  */
605
- NetworkSwitchesUse: string;
346
+ EscalatedToManager: string;
606
347
  /**
607
- * Was this approved by your line manager?
348
+ * HardwareReplaced
608
349
  *
609
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
350
+ * Gates the whole hardware branch. YES is what asks what changed and how many devices went in.
610
351
  * @type {ENUM}
611
352
  * @required
612
- * @visibleWhen NetworkSwitchesUse = ["YES"]
613
- */
614
- NetworkSwitchesApproval: string;
615
- /**
616
- * Please provide justification as to why you could not obtain this.
617
- *
618
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
619
- * @type {TEXT_LONG}
620
- * @required
621
- * @visibleWhen NetworkSwitchesApproval = ["NO"]
622
353
  */
623
- NetworkSwitchesDenial: string;
354
+ HardwareReplaced: string;
624
355
  /**
625
- * I have carried out speed tests throughout the property.
356
+ * HardwareRemoved
626
357
  *
627
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
358
+ * Which kit came out or was swapped.
628
359
  * @type {ENUM}
629
360
  * @required
630
- * @visibleWhen FaultResolvedEngineer = ["YES"]
361
+ * @visibleWhen HardwareReplaced = ["YES"]
631
362
  */
632
- SpeedTestConfirmation: string;
363
+ HardwareRemoved: string;
633
364
  /**
634
- * I have carried out WiFi analysis throughout the property.
365
+ * HowManyNewDevices
635
366
  *
636
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
367
+ * Gates the new-device serial captures below, one at a time — 1 reveals the first, 4 all four.
637
368
  * @type {ENUM}
638
369
  * @required
639
- * @visibleWhen FaultResolvedEngineer = ["YES"]
370
+ * @visibleWhen HardwareReplaced = ["YES"]
640
371
  */
641
- WiFiAnalysisConfirmation: string;
372
+ HowManyNewDevices: string;
642
373
  /**
643
- * Is the connection completely down?
374
+ * NewDeviceSerial1
644
375
  *
645
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
646
- * @type {ENUM}
376
+ * 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.
377
+ * @type {ALPHA_NUMERICAL}
647
378
  * @required
648
- * @visibleWhen FaultResolvedEngineer = ["NO"]
379
+ * @visibleWhen HowManyNewDevices = ["1","2","3","4"]
649
380
  */
650
- ConnectionCompletelyDown: string;
381
+ NewDeviceSerial1: string;
651
382
  /**
652
- * Where is the visible fibre break location?
383
+ * NewDeviceSerial2
653
384
  *
654
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
655
- * @type {TEXT_LONG}
385
+ * Serial of the second device installed on this visit.
386
+ * @type {ALPHA_NUMERICAL}
656
387
  * @required
657
- * @visibleWhen VisibleFibreBreak = ["YES"]
388
+ * @visibleWhen HowManyNewDevices = ["2","3","4"]
658
389
  */
659
- VisibleFibreBreakLocation: string;
390
+ NewDeviceSerial2: string;
660
391
  /**
661
- * Attempted resolution:
392
+ * NewDeviceSerial3
662
393
  *
663
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
664
- * @type {TEXT_LONG}
394
+ * Serial of the third device installed on this visit.
395
+ * @type {ALPHA_NUMERICAL}
665
396
  * @required
666
- * @visibleWhen FaultResolvedEngineer = ["NO"]
397
+ * @visibleWhen HowManyNewDevices = ["3","4"]
667
398
  */
668
- AttemptedResolution: string;
399
+ NewDeviceSerial3: string;
669
400
  /**
670
- * Any other Additional notes you wish to add?
401
+ * NewDeviceSerial4
671
402
  *
672
- * Free-text notes field for YfFieldServiceVisit. Used by Field Operations team for documentation.
673
- * @type {TEXT_LONG}
403
+ * Serial of the fourth device installed on this visit.
404
+ * @type {ALPHA_NUMERICAL}
674
405
  * @required
675
- * @visibleWhen FaultResolvedEngineer = ["NO"]
406
+ * @visibleWhen HowManyNewDevices = ["4"]
676
407
  */
677
- AdditionalNotes1: string;
408
+ NewDeviceSerial4: string;
678
409
  /**
679
- * Escalated to manager? (maurice.ridley@youfibre.com)
410
+ * EngineerOutcome
680
411
  *
681
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
412
+ * What the visit actually achieved. 43 options: the template's 58-row sheet with the 15 "… Outcome" duplicates removed and the typos corrected, per the DRI 2026-08-25. The label is a rewrite — the template repeated the diagnosis question here.
682
413
  * @type {ENUM}
683
414
  * @required
684
- * @visibleWhen FaultResolvedEngineer = ["NO"]
685
415
  */
686
- EscalatedToManager: string;
416
+ EngineerOutcome: string;
687
417
  /**
688
- * Capture end date / time
418
+ * EndDateTime
689
419
  *
690
- * Date field for YfFieldServiceVisit records. Used by Field Operations team.
420
+ * When the visit finished. With ServiceVisitDateTime it is the visit duration.
691
421
  * @type {DATE_TIME}
692
422
  * @required
693
- * @visibleWhen FaultResolvedEngineer = ["NO"]
694
- * @format DD/MM/YYYY hh:mm:ss
695
423
  */
696
- DateTime: string;
424
+ EndDateTime: string;
697
425
  /**
698
- * What are you installing / replacing?
426
+ * TrustPilotRequest
699
427
  *
700
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
701
- * @type {ENUM_MULTI_SELECT}
428
+ * Whether the engineer asked for a review before leaving.
429
+ * @type {ENUM}
702
430
  * @required
703
- * @visibleWhen FaultResolvedEngineer = ["INSTALL_SETUP_REPLACEMENT"]
704
431
  */
705
- WhatAreYouReplacing2: string;
432
+ TrustPilotRequest: string;
706
433
  /**
707
- * Please capture the serial number of the new Eero 6.
434
+ * HappyWithOutcome
708
435
  *
709
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
710
- * @type {ALPHA_NUMERICAL}
436
+ * Yes/No rather than a tick box, on the DRI's call 2026-08-25: a tick box cannot record an unhappy customer, and UnhappyReason below only exists because NO is answerable.
437
+ * @type {ENUM}
711
438
  * @required
712
- * @visibleWhen WhatAreYouReplacing2 = ["EERO6"]
713
439
  */
714
- Eero6Serial: string;
440
+ HappyWithOutcome: string;
715
441
  /**
716
- * Please add pictures of the new unit.
442
+ * UnhappyReason
717
443
  *
718
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
719
- * @type {FILE_MULTIPLE}
444
+ * What went wrong and what happens next. Only asked when the customer is not happy.
445
+ * @type {TEXT_LONG}
720
446
  * @required
721
- * @visibleWhen WhatAreYouReplacing2 = ["EERO6"]
447
+ * @visibleWhen HappyWithOutcome = ["NO"]
722
448
  */
723
- Eero6Photo: string;
449
+ UnhappyReason: string;
724
450
  /**
725
- * Please capture the serial number of the new Eero 6 Pro.
451
+ * CustomerName
726
452
  *
727
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
728
- * @type {ALPHA_NUMERICAL}
453
+ * Who signed on the customer side.
454
+ * @type {NAME}
729
455
  * @required
730
- * @visibleWhen WhatAreYouReplacing2 = ["EERO6PRO"]
731
456
  */
732
- Eero6ProSerial: string;
457
+ CustomerName: string;
733
458
  /**
734
- * Please add pictures of the new unit.
459
+ * CustomerSignature
735
460
  *
736
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
737
- * @type {FILE_MULTIPLE}
461
+ * The customer's signature against the declaration above.
462
+ * @type {SIGNATURE}
738
463
  * @required
739
- * @visibleWhen WhatAreYouReplacing2 = ["EERO6PRO"]
740
464
  */
741
- Eero6ProPhoto: string;
465
+ CustomerSignature: undefined;
742
466
  /**
743
- * Please capture the serial number of the new Eero Pro 6E.
467
+ * EngineerSignature
744
468
  *
745
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
746
- * @type {ALPHA_NUMERICAL}
469
+ * The attending engineer's signature.
470
+ * @type {SIGNATURE}
747
471
  * @required
748
- * @visibleWhen WhatAreYouReplacing2 = ["EEROPRO6E"]
749
472
  */
750
- EeroPro6ESerial: string;
473
+ EngineerSignature: undefined;
751
474
  /**
752
- * Please add pictures of the new unit.
475
+ * PropertyFrontPhoto
753
476
  *
754
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
477
+ * The picture the engineer confirms having taken on arrival.
755
478
  * @type {FILE_MULTIPLE}
756
- * @required
757
- * @visibleWhen WhatAreYouReplacing2 = ["EEROPRO6E"]
758
479
  */
759
- EeroPro6EPhoto: string;
480
+ PropertyFrontPhoto?: string | null;
760
481
  /**
761
- * Please capture the serial number of the new NVG578LX1 Router.
482
+ * ONTFixedToWallPhoto
762
483
  *
763
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
764
- * @type {ALPHA_NUMERICAL}
765
- * @required
766
- * @visibleWhen WhatAreYouReplacing2 = ["NVG578LX1"]
767
- */
768
- NVG578LX1Serial: string;
769
- /**
770
- * Please add pictures of the new unit.
771
- *
772
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
484
+ * Evidence of how the ONT is fixed and powered.
773
485
  * @type {FILE_MULTIPLE}
774
- * @required
775
- * @visibleWhen WhatAreYouReplacing2 = ["NVG578LX1"]
776
- */
777
- NVG578LX1Photo: string;
778
- /**
779
- * Please capture the serial number of the new NVG578LX Gateway.
780
- *
781
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
782
- * @type {ALPHA_NUMERICAL}
783
- * @required
784
- * @visibleWhen WhatAreYouReplacing2 = ["NVG578LX"]
785
486
  */
786
- NVG578LXSerial: string;
487
+ ONTFixedToWallPhoto?: string | null;
787
488
  /**
788
- * Please add pictures of the new unit.
489
+ * ONTChecksPhoto
789
490
  *
790
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
491
+ * The readings behind the ONT check answer.
791
492
  * @type {FILE_MULTIPLE}
792
- * @required
793
- * @visibleWhen WhatAreYouReplacing2 = ["NVG578LX"]
794
- */
795
- NVG578LXPhoto: string;
796
- /**
797
- * Please capture the serial number of the new X5042 Extender.
798
- *
799
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
800
- * @type {ALPHA_NUMERICAL}
801
- * @required
802
- * @visibleWhen WhatAreYouReplacing2 = ["X5042"]
803
493
  */
804
- X5042Serial: string;
494
+ ONTChecksPhoto?: string | null;
805
495
  /**
806
- * Please add pictures of the new unit.
496
+ * ONTCheckFailReasonPhoto
807
497
  *
808
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
498
+ * What the engineer saw that produced the failure reason.
809
499
  * @type {FILE_MULTIPLE}
810
- * @required
811
- * @visibleWhen WhatAreYouReplacing2 = ["X5042"]
812
- */
813
- X5042Photo: string;
814
- /**
815
- * Any other Additional notes you wish to add?
816
- *
817
- * Free-text notes field for YfFieldServiceVisit. Used by Field Operations team for documentation.
818
- * @type {TEXT_LONG}
819
- * @required
820
- * @visibleWhen FaultResolvedEngineer = ["INSTALL_SETUP_REPLACEMENT"]
500
+ * @visibleWhen ONTChecksPassed = ["NO"]
821
501
  */
822
- AdditionalNotes2: string;
502
+ ONTCheckFailReasonPhoto?: string | null;
823
503
  /**
824
- * If applicable, go to the previous problem area and run another Wi-Fi SpeedTest using the EX1. Hard wire EX1 to router and complete Speedtest to validate their speeds.
504
+ * EngineerDiagnosisCustomerDevicePhoto
825
505
  *
826
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
506
+ * The device the diagnosis points at.
827
507
  * @type {FILE_MULTIPLE}
828
- * @required
829
- * @visibleWhen FaultResolvedEngineer = ["INSTALL_SETUP_REPLACEMENT"]
830
- */
831
- SecondSpeedTest: string;
832
- /**
833
- * Customer Signature
834
- *
835
- * Customer Signature (Field Operations - YfFieldServiceVisit)
836
- * @type {SIGNATURE}
837
- * @required
838
- * @visibleWhen FaultResolvedEngineer = ["YES","INSTALL_SETUP_REPLACEMENT"]
508
+ * @visibleWhen EngineerDiagnosis = ["CUSTOMER_DEVICE_ISSUE"]
839
509
  */
840
- CustomerSignature: undefined;
510
+ EngineerDiagnosisCustomerDevicePhoto?: string | null;
841
511
  /**
842
- * Engineer Signature
512
+ * RouterLocationPhoto
843
513
  *
844
- * Engineer Signature (Field Operations - YfFieldServiceVisit)
845
- * @type {SIGNATURE}
846
- * @required
847
- * @visibleWhen FaultResolvedEngineer = ["YES","INSTALL_SETUP_REPLACEMENT"]
848
- */
849
- EngineerSignature: undefined;
850
- /**
851
- * Service visit Date and Time:
852
- *
853
- * Service visit Date and Time: (Field Operations - YfFieldServiceVisit)
854
- * @type {DATE_TIME}
855
- * @default Dynamic: {date_today}
856
- * @format DD/MM/YYYY hh:mm:ss
857
- */
858
- ServiceVisitDateTime?: string | null;
859
- /**
860
- * Engineer Names
861
- *
862
- * Service engineer names (Field Operations - YfFieldServiceVisit)
863
- * @type {NAME}
864
- * @default Dynamic: {source_record_properties_EngineerName}
865
- */
866
- EngineerNames?: string | null;
867
- /**
868
- * Work Order Number
869
- *
870
- * e.g. (WO12345) (Field Operations - YfFieldServiceVisit)
871
- * @type {ALPHA_NUMERICAL}
872
- * @default Dynamic: {source_record_recordNumber}
873
- */
874
- WorkOrderNumber?: string | null;
875
- /**
876
- * Visit can not go ahead, please contact manager to reschedule. Check the box to confirm.
877
- *
878
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
879
- * @type {BOOLEAN}
514
+ * Where the router actually is — the answer text alone rarely settles a coverage argument.
515
+ * @type {FILE_MULTIPLE}
880
516
  */
881
- CantContinueVisit?: boolean | null;
517
+ RouterLocationPhoto?: string | null;
882
518
  /**
883
- * I confirm that I have completed this risk assessment BEFORE starting any work.
519
+ * YouMeshLocation1Photo
884
520
  *
885
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
886
- * @type {BOOLEAN}
521
+ * Evidence the node is not on the floor.
522
+ * @type {FILE_MULTIPLE}
523
+ * @visibleWhen HowManyYouMeshNodes = ["1","2","3"]
887
524
  */
888
- RiskAssessmentConsent?: boolean | null;
525
+ YouMeshLocation1Photo?: string | null;
889
526
  /**
890
- * Start your PRE fault investigation (BEFORE CHANGING ANYTHING). Speed tests must be completed using approved test equipment. This is mandatory unless authorised by a Supervisor. All results must be attached as screenshots or clear images (not PDFs). I confirm I have read these instructions.
527
+ * YouMeshLocation2Photo
891
528
  *
892
- * Reference identifier for YfFieldServiceVisit relationships. Used for data integrity.
893
- * @type {BOOLEAN}
529
+ * Evidence the node is not on the floor.
530
+ * @type {FILE_MULTIPLE}
531
+ * @visibleWhen HowManyYouMeshNodes = ["2","3"]
894
532
  */
895
- PreFaultInvestigationConsent?: boolean | null;
533
+ YouMeshLocation2Photo?: string | null;
896
534
  /**
897
- * Remember that if a customer wants to have ANYTIME calls as opposed to evening & weekends, it’s only £5 more for this. YouPhone (evening after 19:00 & weekends) £3PM YouPhone Plus (Anytime) £8PM *applies to landline calls only - calls automatically disconnect at the hour duration to avoid charges* Confirm
535
+ * YouMeshLocation3Photo
898
536
  *
899
- * Monetary value field for YfFieldServiceVisit. Used by Field Operations team for financial tracking.
900
- * @type {BOOLEAN}
901
- * @visibleWhen EngineerDiagnosis = ["INSTALL_PHONE"]
537
+ * Evidence the node is not on the floor.
538
+ * @type {FILE_MULTIPLE}
539
+ * @visibleWhen HowManyYouMeshNodes = ["3"]
902
540
  */
903
- YouPhonePriceConfirmation?: boolean | null;
541
+ YouMeshLocation3Photo?: string | null;
904
542
  /**
905
- * If the issue still present, please call CS to escalate.
543
+ * PreFaultTestPhoto
906
544
  *
907
- * Contact information field for YfFieldServiceVisit. Used by Field Operations team for communication.
908
- * @type {BOOLEAN}
909
- * @visibleWhen EngineerDiagnosis = ["YOUPHONE_ISSUE"]
545
+ * The before-state evidence the acknowledgement refers to.
546
+ * @type {FILE_MULTIPLE}
910
547
  */
911
- YouPhoneEscalate?: boolean | null;
548
+ PreFaultTestPhoto?: string | null;
912
549
  /**
913
- * Start your POST fault investigation (AFTER MAKING CHANGES). Complete this section only after changes have been implemented. I confirm I have read these instructions.
550
+ * PostFaultInvestigationConsent
914
551
  *
915
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
552
+ * Marks the boundary between the before-state and the after-state on the form.
916
553
  * @type {BOOLEAN}
917
554
  */
918
555
  PostFaultInvestigationConsent?: boolean | null;
919
556
  /**
920
- * Can this fault be resolved by the attending engineer? If it is an installation, upgrade, or replacement, select “Install/Setup/Replacement.” For all other resolvable issues, select “Yes” and continue with the form.
557
+ * NotAbleToAchieveSignalPhoto
921
558
  *
922
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
923
- * @type {ENUM}
559
+ * What the readings looked like where the standard could not be met.
560
+ * @type {FILE_MULTIPLE}
561
+ * @visibleWhen AbleToAchieveMinimumSpeed = ["NO"]
924
562
  */
925
- FaultResolvedEngineer?: string | null;
563
+ NotAbleToAchieveSignalPhoto?: string | null;
926
564
  /**
927
- * Wi-Fi analysis of the property should be at the furthest location from he router or gateway using approved diagnostic tools. Include a screenshot or report showing signal strength and network topology. A minimum signal strength of -65 dB and a minimum speed of 20 Mbps should be achieved throughout the property. If these standards cannot be met, propose an improvement plan agreed with a Supervisor (e.g. additional mesh nodes or powerline adaptors). I confirm I have read these instructions.
565
+ * ResolutionNotes
928
566
  *
929
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
930
- * @type {BOOLEAN}
931
- * @visibleWhen FaultResolvedEngineer = ["YES"]
567
+ * 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.
568
+ * @type {TEXT_LONG}
932
569
  */
933
- WiFiAnalysisConsent?: boolean | null;
570
+ ResolutionNotes?: string | null;
934
571
  /**
935
- * Is there a visible fibre break?
572
+ * OtherEvidence
936
573
  *
937
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
938
- * @type {ENUM}
574
+ * Anything the fixed questions did not ask for. The only optional upload that is a question in its own right.
575
+ * @type {FILE_MULTIPLE}
939
576
  */
940
- VisibleFibreBreak?: string | null;
577
+ OtherEvidence?: string | null;
941
578
  /**
942
- * I/We acknowledge that the work has been completed in a professional and courteous manner I/We confirm that the site has been left in a clean and tidy condition I/We am aware of the WiFi coverage around the property, and, if required, know what improvements are required I/We confirm that the fault/complaint/upgrade has been attended to and fully resolved. I/We confirm that the Gateway/Router/Mesh Nodes are provided on a lease basis and remain the property of the service provider. I am happy with my setup and all queries have been covered.
579
+ * CustomerAgreement
943
580
  *
944
- * Data field for YfFieldServiceVisit records. Used by Field Operations team.
581
+ * The customer-facing declaration, ticked before the signatures below. Six clauses, including the one that matters at churn: the kit is leased, not owned.
945
582
  * @type {BOOLEAN}
946
- * @visibleWhen FaultResolvedEngineer = ["YES","INSTALL_SETUP_REPLACEMENT"]
947
583
  */
948
- CustomerConfirmation?: boolean | null;
584
+ CustomerAgreement?: boolean | null;
949
585
  }
950
586
  /**
951
- * YF Field Service Visit Audit
587
+ * YF Field Visit Outcome Form
952
588
  *
953
- * YF Field Service Visit Audit
589
+ * YF Field Visit Outcome Form
954
590
  *
955
- * @actionType CREATE - Creates a new YfFieldServiceVisit record
591
+ * @actionType CREATE - Creates a new YfFieldVisitOutcomeForm record
956
592
  * @module FieldServiceModule
957
- * @entity YfFieldServiceVisit
958
- * @entityType OUTCOME_FORM (outcome form)
959
- * @event k1.t-hEOJjsDb.FieldServiceModule.YfFieldServiceVisit.Create.YfFieldServiceVisitAudit
960
- * @permission schema.action.yffieldservicevisitaudit.trigger
593
+ * @entity YfFieldVisitOutcomeForm
594
+ * @entityType OUTCOME_FORM (Outcome Form)
595
+ * @event k1.t-hEOJjsDb.FieldServiceModule.YfFieldVisitOutcomeForm.Create.YfFieldVisitOutcomeForm
596
+ * @permission schema.action.yffieldvisitoutcomeform.trigger
961
597
  * @benchmark This action is tracked for performance benchmarks
962
598
  */
963
- export declare class YfFieldServiceVisitAuditDto extends OdinRecordCreateDto<YfFieldServiceVisitAuditProperties> {
599
+ export declare class YfFieldVisitOutcomeFormDto extends OdinRecordCreateDto<YfFieldVisitOutcomeFormProperties> {
964
600
  /** Used by SDK generators to identify action type */
965
601
  static readonly ACTION_TYPE = "CREATE";
966
- static readonly ACTION_KEY = "YfFieldServiceVisitAudit";
602
+ static readonly ACTION_KEY = "YfFieldVisitOutcomeForm";
967
603
  static readonly MODULE_NAME = "FieldServiceModule";
968
604
  static readonly ENTITIES: string[];
969
605
  static readonly ENTITY_TYPE = "OUTCOME_FORM";
970
- static readonly EVENT_NAME = "k1.t-hEOJjsDb.FieldServiceModule.YfFieldServiceVisit.Create.YfFieldServiceVisitAudit";
971
- static readonly PERMISSION = "schema.action.yffieldservicevisitaudit.trigger";
606
+ static readonly EVENT_NAME = "k1.t-hEOJjsDb.FieldServiceModule.YfFieldVisitOutcomeForm.Create.YfFieldVisitOutcomeForm";
607
+ static readonly PERMISSION = "schema.action.yffieldvisitoutcomeform.trigger";
972
608
  /** Step metadata - entity this action targets */
973
- static readonly STEP_ENTITY = "FieldServiceModule:YfFieldServiceVisit";
974
- static readonly STEP_SCHEMA_ID = "cfc6080c-1f99-4b1b-af2a-38f16c6cec4c";
975
- static readonly STEP_SCHEMA_ACTION_ID = "191bd652-75b8-4073-9fc5-ab3ad83670dc";
976
- static readonly STEP_SCHEMA_TYPE_ID = "c79a7012-23b6-4db5-b178-355071ac07e4";
609
+ static readonly STEP_ENTITY = "FieldServiceModule:YfFieldVisitOutcomeForm";
610
+ static readonly STEP_SCHEMA_ID = "cca6f70d-9b11-42b6-9439-c3672d871e14";
611
+ static readonly STEP_SCHEMA_ACTION_ID = "7a7c95a1-0fc9-4a83-a4bd-26302411735d";
612
+ static readonly STEP_SCHEMA_TYPE_ID = "334af74f-77ed-4196-9e9b-a4dc31b5c864";
977
613
  static readonly STEP_TYPE = "OUTCOME_FORM";
978
614
  static readonly AUTO_LINK_PARENT = true;
979
615
  readonly actionName: string;
980
616
  readonly schemaActionId: string;
981
617
  readonly entity: string;
982
- constructor(properties: YfFieldServiceVisitAuditProperties, options?: {
618
+ constructor(properties: YfFieldVisitOutcomeFormProperties, options?: {
983
619
  journeyId?: string;
984
620
  });
985
621
  }
986
622
  declare type StepClassMap = {
987
623
  CompleteServiceWorkOrderDto: CompleteServiceWorkOrderDto;
988
- YfFieldServiceVisitAuditDto: YfFieldServiceVisitAuditDto;
624
+ YfFieldVisitOutcomeFormDto: YfFieldVisitOutcomeFormDto;
989
625
  };
990
626
  /**
991
627
  * Link definition for connecting steps in CompleteServiceWorkOrderFlow
@@ -1087,7 +723,7 @@ export declare class CompleteServiceWorkOrderFlowDto extends OdinRecordUpdateDto
1087
723
  journeyId?: string;
1088
724
  });
1089
725
  /** Step classes that can be used with this action */
1090
- static readonly stepClasses: readonly ["CompleteServiceWorkOrderDto", "YfFieldServiceVisitAuditDto"];
726
+ static readonly stepClasses: readonly ["CompleteServiceWorkOrderDto", "YfFieldVisitOutcomeFormDto"];
1091
727
  steps: StepClassMap[(typeof CompleteServiceWorkOrderFlowDto.stepClasses)[number]][];
1092
728
  }
1093
729
  export {};