@d19n/youfibre-odin-sdk 2.0.315 → 2.0.317
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.
- package/dist/actions-v2/AssignEngineerDto.d.ts +1 -1
- package/dist/actions-v2/CompleteServiceWorkOrderFlowDto.d.ts +1 -1
- package/dist/actions-v2/CreateQaReportDto.d.ts +9 -2
- package/dist/entities-v2/Config.d.ts +8 -8
- package/dist/entities-v2/Config.js +2 -2
- package/dist/entities-v2/PgReportEvent.d.ts +2 -0
- package/dist/entities-v2/PgReportEvent.js +2 -0
- package/dist/entities-v2/QaReport.d.ts +31 -23
- package/dist/entities-v2/QaReport.js +8 -6
- package/dist/entities-v2/YfFieldVisitOutcomeForm.d.ts +14 -14
- package/dist/entities-v2/YfFieldVisitOutcomeForm.js +2 -2
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ export interface AssignEngineerProperties {
|
|
|
30
30
|
*
|
|
31
31
|
* Reference identifier for WorkOrder relationships. Used for data integrity.
|
|
32
32
|
* @type {LOOKUP}
|
|
33
|
-
* @visibleWhen ScheduleIdDummy = ["*
|
|
33
|
+
* @visibleWhen ScheduleIdDummy = ["*"]
|
|
34
34
|
*/
|
|
35
35
|
EngineerId?: string | null;
|
|
36
36
|
/**
|
|
@@ -148,7 +148,7 @@ export interface YfFieldVisitOutcomeFormProperties {
|
|
|
148
148
|
* Location
|
|
149
149
|
*
|
|
150
150
|
* The property visited, linked to the CRM address record.
|
|
151
|
-
* @type {
|
|
151
|
+
* @type {TEXT}
|
|
152
152
|
* @required
|
|
153
153
|
* @default Dynamic: {source_record_properties_AddressId}
|
|
154
154
|
*/
|
|
@@ -23,13 +23,13 @@ export interface CreateQaReportMessage extends OdinRecordCreatedEvent<CreateQaRe
|
|
|
23
23
|
* Properties for CreateQaReport action
|
|
24
24
|
*
|
|
25
25
|
* @property Required fields: 2
|
|
26
|
-
* @property Optional fields:
|
|
26
|
+
* @property Optional fields: 7
|
|
27
27
|
*/
|
|
28
28
|
export interface CreateQaReportProperties {
|
|
29
29
|
/**
|
|
30
30
|
* Case
|
|
31
31
|
*
|
|
32
|
-
* The case this report scores.
|
|
32
|
+
* The case this report scores. This is the real link; it holds a uuid, so it is not shown in tables — the same choice Note.Case and ConversationSummaryFeedback.ConversationId make. The readable reference is the Case column below.
|
|
33
33
|
* @type {LOOKUP}
|
|
34
34
|
* @required
|
|
35
35
|
*/
|
|
@@ -42,6 +42,13 @@ export interface CreateQaReportProperties {
|
|
|
42
42
|
* @required
|
|
43
43
|
*/
|
|
44
44
|
ReportUrl: string;
|
|
45
|
+
/**
|
|
46
|
+
* Case
|
|
47
|
+
*
|
|
48
|
+
* Record number of the case this report scores, e.g. SC6490.
|
|
49
|
+
* @type {TEXT}
|
|
50
|
+
*/
|
|
51
|
+
Case?: string | null;
|
|
45
52
|
/**
|
|
46
53
|
* Score %
|
|
47
54
|
*
|
|
@@ -23,12 +23,12 @@ export declare enum ConfigEntityTypes {
|
|
|
23
23
|
* Use these constants instead of string literals for type safety
|
|
24
24
|
*/
|
|
25
25
|
export declare enum ConfigPropertyKeys {
|
|
26
|
+
/** Data field for Config records. Used by Platform team. */
|
|
27
|
+
Test = "Test",
|
|
26
28
|
/** the name of the app this config relates to (Platform - Config) */
|
|
27
29
|
AppName = "AppName",
|
|
28
30
|
/** object of { key: value } mappings (Platform - Config) */
|
|
29
|
-
Mappings = "Mappings"
|
|
30
|
-
/** Data field for Config records. Used by Platform team. */
|
|
31
|
-
Test = "Test"
|
|
31
|
+
Mappings = "Mappings"
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Properties for Config records
|
|
@@ -36,6 +36,11 @@ export declare enum ConfigPropertyKeys {
|
|
|
36
36
|
* @see SchemaModule:Config
|
|
37
37
|
*/
|
|
38
38
|
export interface ConfigProperties {
|
|
39
|
+
/** Data field for Config records. Used by Platform team.
|
|
40
|
+
*
|
|
41
|
+
* @type {TEXT}
|
|
42
|
+
*/
|
|
43
|
+
Test: string;
|
|
39
44
|
/** the name of the app this config relates to (Platform - Config)
|
|
40
45
|
*
|
|
41
46
|
* @type {TEXT}
|
|
@@ -46,11 +51,6 @@ export interface ConfigProperties {
|
|
|
46
51
|
* @type {JSON}
|
|
47
52
|
*/
|
|
48
53
|
Mappings: string;
|
|
49
|
-
/** Data field for Config records. Used by Platform team.
|
|
50
|
-
*
|
|
51
|
-
* @type {TEXT}
|
|
52
|
-
*/
|
|
53
|
-
Test: string;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Config entity from SchemaModule
|
|
@@ -28,12 +28,12 @@ var ConfigEntityTypes;
|
|
|
28
28
|
*/
|
|
29
29
|
var ConfigPropertyKeys;
|
|
30
30
|
(function (ConfigPropertyKeys) {
|
|
31
|
+
/** Data field for Config records. Used by Platform team. */
|
|
32
|
+
ConfigPropertyKeys["Test"] = "Test";
|
|
31
33
|
/** the name of the app this config relates to (Platform - Config) */
|
|
32
34
|
ConfigPropertyKeys["AppName"] = "AppName";
|
|
33
35
|
/** object of { key: value } mappings (Platform - Config) */
|
|
34
36
|
ConfigPropertyKeys["Mappings"] = "Mappings";
|
|
35
|
-
/** Data field for Config records. Used by Platform team. */
|
|
36
|
-
ConfigPropertyKeys["Test"] = "Test";
|
|
37
37
|
})(ConfigPropertyKeys = exports.ConfigPropertyKeys || (exports.ConfigPropertyKeys = {}));
|
|
38
38
|
/**
|
|
39
39
|
* Config entity from SchemaModule
|
|
@@ -62,6 +62,7 @@ export declare enum DefaultPgReportEventStageKeys {
|
|
|
62
62
|
* - `AUDDIS_ADVICE` - AUDDIS Advice Report
|
|
63
63
|
* - `AUDDIS_ACCEPTANCE` - AUDDIS File Acceptance Report
|
|
64
64
|
* - `AUDDIS_INPUT` - AUDDIS Input Report
|
|
65
|
+
* - `AWACS`
|
|
65
66
|
* - `INPUT` - PE Input Report
|
|
66
67
|
*/
|
|
67
68
|
export declare enum PgReportEventReportType {
|
|
@@ -71,6 +72,7 @@ export declare enum PgReportEventReportType {
|
|
|
71
72
|
AUDDIS_ADVICE_REPORT = "AUDDIS_ADVICE",
|
|
72
73
|
AUDDIS_FILE_ACCEPTANCE_REPORT = "AUDDIS_ACCEPTANCE",
|
|
73
74
|
AUDDIS_INPUT_REPORT = "AUDDIS_INPUT",
|
|
75
|
+
AWACS = "AWACS",
|
|
74
76
|
PE_INPUT_REPORT = "INPUT"
|
|
75
77
|
}
|
|
76
78
|
/**
|
|
@@ -65,6 +65,7 @@ var DefaultPgReportEventStageKeys;
|
|
|
65
65
|
* - `AUDDIS_ADVICE` - AUDDIS Advice Report
|
|
66
66
|
* - `AUDDIS_ACCEPTANCE` - AUDDIS File Acceptance Report
|
|
67
67
|
* - `AUDDIS_INPUT` - AUDDIS Input Report
|
|
68
|
+
* - `AWACS`
|
|
68
69
|
* - `INPUT` - PE Input Report
|
|
69
70
|
*/
|
|
70
71
|
var PgReportEventReportType;
|
|
@@ -75,6 +76,7 @@ var PgReportEventReportType;
|
|
|
75
76
|
PgReportEventReportType["AUDDIS_ADVICE_REPORT"] = "AUDDIS_ADVICE";
|
|
76
77
|
PgReportEventReportType["AUDDIS_FILE_ACCEPTANCE_REPORT"] = "AUDDIS_ACCEPTANCE";
|
|
77
78
|
PgReportEventReportType["AUDDIS_INPUT_REPORT"] = "AUDDIS_INPUT";
|
|
79
|
+
PgReportEventReportType["AWACS"] = "AWACS";
|
|
78
80
|
PgReportEventReportType["PE_INPUT_REPORT"] = "INPUT";
|
|
79
81
|
})(PgReportEventReportType = exports.PgReportEventReportType || (exports.PgReportEventReportType = {}));
|
|
80
82
|
/**
|
|
@@ -43,22 +43,24 @@ export declare enum QaReportChannel {
|
|
|
43
43
|
* Use these constants instead of string literals for type safety
|
|
44
44
|
*/
|
|
45
45
|
export declare enum QaReportPropertyKeys {
|
|
46
|
-
/** The case this report scores. */
|
|
47
|
-
CaseId = "CaseId",
|
|
48
46
|
/** Total score the rubric awarded, 0-100, parsed out of the report. Stored separately so QA can be reported on without parsing HTML. */
|
|
49
47
|
Score = "Score",
|
|
50
48
|
/** Channel of the scored case. Copied from the case so QA can be filtered by channel without joining back. */
|
|
51
49
|
Channel = "Channel",
|
|
52
|
-
/** Identity user id of the agent scored, from the case RAssignedOrgUserId. Not a LOOKUP: users live in IdentityModule and there is no association to bind to. */
|
|
53
|
-
AgentId = "AgentId",
|
|
54
50
|
/** Display name of the agent at the time of scoring. Point-in-time on purpose, so the assessment still reads correctly if the person is renamed or leaves. */
|
|
55
51
|
AgentName = "AgentName",
|
|
56
|
-
/** Returned by the Databricks endpoint. The only thread tying this record to the matching inference row on the Databricks side — without it you are matching on timestamp and hoping. */
|
|
57
|
-
CorrelationId = "CorrelationId",
|
|
58
52
|
/** Which model produced the report, e.g. system.ai.gpt-5-4. Needed to compare scores once the rubric or the model changes. */
|
|
59
53
|
LlmEndpointUsed = "LlmEndpointUsed",
|
|
60
54
|
/** S3 URL of the scorecard HTML returned by the Databricks quality_assurance_report endpoint. Uploaded through Odin, so it lands in the org files bucket and also exists as a SchemaModule:File. */
|
|
61
|
-
ReportUrl = "ReportUrl"
|
|
55
|
+
ReportUrl = "ReportUrl",
|
|
56
|
+
/** Record number of the case this report scores, e.g. SC6490. */
|
|
57
|
+
Case = "Case",
|
|
58
|
+
/** Identity user id of the agent scored, from the case RAssignedOrgUserId. Not a LOOKUP: users live in IdentityModule and there is no association to bind to. */
|
|
59
|
+
AgentId = "AgentId",
|
|
60
|
+
/** Returned by the Databricks endpoint. The only thread tying this record to the matching inference row on the Databricks side — without it you are matching on timestamp and hoping. */
|
|
61
|
+
CorrelationId = "CorrelationId",
|
|
62
|
+
/** The case this report scores. This is the real link; it holds a uuid, so it is not shown in tables — the same choice Note.Case and ConversationSummaryFeedback.ConversationId make. The readable reference is the Case column below. */
|
|
63
|
+
CaseId = "CaseId"
|
|
62
64
|
}
|
|
63
65
|
/**
|
|
64
66
|
* Properties for QaReport records
|
|
@@ -66,12 +68,6 @@ export declare enum QaReportPropertyKeys {
|
|
|
66
68
|
* @see SupportModule:QaReport
|
|
67
69
|
*/
|
|
68
70
|
export interface QaReportProperties {
|
|
69
|
-
/** The case this report scores.
|
|
70
|
-
*
|
|
71
|
-
* @type {LOOKUP}
|
|
72
|
-
* @default
|
|
73
|
-
*/
|
|
74
|
-
CaseId: string;
|
|
75
71
|
/** Total score the rubric awarded, 0-100, parsed out of the report. Stored separately so QA can be reported on without parsing HTML.
|
|
76
72
|
*
|
|
77
73
|
* @type {NUMBER}
|
|
@@ -85,36 +81,48 @@ export interface QaReportProperties {
|
|
|
85
81
|
* @enum {QaReportChannel}
|
|
86
82
|
*/
|
|
87
83
|
Channel: QaReportChannel;
|
|
88
|
-
/**
|
|
84
|
+
/** Display name of the agent at the time of scoring. Point-in-time on purpose, so the assessment still reads correctly if the person is renamed or leaves.
|
|
89
85
|
*
|
|
90
86
|
* @type {TEXT}
|
|
91
87
|
* @default
|
|
92
88
|
*/
|
|
93
|
-
|
|
94
|
-
/**
|
|
89
|
+
AgentName: string;
|
|
90
|
+
/** Which model produced the report, e.g. system.ai.gpt-5-4. Needed to compare scores once the rubric or the model changes.
|
|
95
91
|
*
|
|
96
92
|
* @type {TEXT}
|
|
97
93
|
* @default
|
|
98
94
|
*/
|
|
99
|
-
|
|
100
|
-
/**
|
|
95
|
+
LlmEndpointUsed: string;
|
|
96
|
+
/** S3 URL of the scorecard HTML returned by the Databricks quality_assurance_report endpoint. Uploaded through Odin, so it lands in the org files bucket and also exists as a SchemaModule:File.
|
|
101
97
|
*
|
|
102
98
|
* @type {TEXT}
|
|
103
99
|
* @default
|
|
104
100
|
*/
|
|
105
|
-
|
|
106
|
-
/**
|
|
101
|
+
ReportUrl: string;
|
|
102
|
+
/** Record number of the case this report scores, e.g. SC6490.
|
|
107
103
|
*
|
|
108
104
|
* @type {TEXT}
|
|
109
105
|
* @default
|
|
110
106
|
*/
|
|
111
|
-
|
|
112
|
-
/**
|
|
107
|
+
Case: string;
|
|
108
|
+
/** Identity user id of the agent scored, from the case RAssignedOrgUserId. Not a LOOKUP: users live in IdentityModule and there is no association to bind to.
|
|
113
109
|
*
|
|
114
110
|
* @type {TEXT}
|
|
115
111
|
* @default
|
|
116
112
|
*/
|
|
117
|
-
|
|
113
|
+
AgentId: string;
|
|
114
|
+
/** Returned by the Databricks endpoint. The only thread tying this record to the matching inference row on the Databricks side — without it you are matching on timestamp and hoping.
|
|
115
|
+
*
|
|
116
|
+
* @type {TEXT}
|
|
117
|
+
* @default
|
|
118
|
+
*/
|
|
119
|
+
CorrelationId: string;
|
|
120
|
+
/** The case this report scores. This is the real link; it holds a uuid, so it is not shown in tables — the same choice Note.Case and ConversationSummaryFeedback.ConversationId make. The readable reference is the Case column below.
|
|
121
|
+
*
|
|
122
|
+
* @type {LOOKUP}
|
|
123
|
+
* @default
|
|
124
|
+
*/
|
|
125
|
+
CaseId: string;
|
|
118
126
|
}
|
|
119
127
|
/**
|
|
120
128
|
* QaReport entity from SupportModule
|
|
@@ -48,22 +48,24 @@ var QaReportChannel;
|
|
|
48
48
|
*/
|
|
49
49
|
var QaReportPropertyKeys;
|
|
50
50
|
(function (QaReportPropertyKeys) {
|
|
51
|
-
/** The case this report scores. */
|
|
52
|
-
QaReportPropertyKeys["CaseId"] = "CaseId";
|
|
53
51
|
/** Total score the rubric awarded, 0-100, parsed out of the report. Stored separately so QA can be reported on without parsing HTML. */
|
|
54
52
|
QaReportPropertyKeys["Score"] = "Score";
|
|
55
53
|
/** Channel of the scored case. Copied from the case so QA can be filtered by channel without joining back. */
|
|
56
54
|
QaReportPropertyKeys["Channel"] = "Channel";
|
|
57
|
-
/** Identity user id of the agent scored, from the case RAssignedOrgUserId. Not a LOOKUP: users live in IdentityModule and there is no association to bind to. */
|
|
58
|
-
QaReportPropertyKeys["AgentId"] = "AgentId";
|
|
59
55
|
/** Display name of the agent at the time of scoring. Point-in-time on purpose, so the assessment still reads correctly if the person is renamed or leaves. */
|
|
60
56
|
QaReportPropertyKeys["AgentName"] = "AgentName";
|
|
61
|
-
/** Returned by the Databricks endpoint. The only thread tying this record to the matching inference row on the Databricks side — without it you are matching on timestamp and hoping. */
|
|
62
|
-
QaReportPropertyKeys["CorrelationId"] = "CorrelationId";
|
|
63
57
|
/** Which model produced the report, e.g. system.ai.gpt-5-4. Needed to compare scores once the rubric or the model changes. */
|
|
64
58
|
QaReportPropertyKeys["LlmEndpointUsed"] = "LlmEndpointUsed";
|
|
65
59
|
/** S3 URL of the scorecard HTML returned by the Databricks quality_assurance_report endpoint. Uploaded through Odin, so it lands in the org files bucket and also exists as a SchemaModule:File. */
|
|
66
60
|
QaReportPropertyKeys["ReportUrl"] = "ReportUrl";
|
|
61
|
+
/** Record number of the case this report scores, e.g. SC6490. */
|
|
62
|
+
QaReportPropertyKeys["Case"] = "Case";
|
|
63
|
+
/** Identity user id of the agent scored, from the case RAssignedOrgUserId. Not a LOOKUP: users live in IdentityModule and there is no association to bind to. */
|
|
64
|
+
QaReportPropertyKeys["AgentId"] = "AgentId";
|
|
65
|
+
/** Returned by the Databricks endpoint. The only thread tying this record to the matching inference row on the Databricks side — without it you are matching on timestamp and hoping. */
|
|
66
|
+
QaReportPropertyKeys["CorrelationId"] = "CorrelationId";
|
|
67
|
+
/** The case this report scores. This is the real link; it holds a uuid, so it is not shown in tables — the same choice Note.Case and ConversationSummaryFeedback.ConversationId make. The readable reference is the Case column below. */
|
|
68
|
+
QaReportPropertyKeys["CaseId"] = "CaseId";
|
|
67
69
|
})(QaReportPropertyKeys = exports.QaReportPropertyKeys || (exports.QaReportPropertyKeys = {}));
|
|
68
70
|
/**
|
|
69
71
|
* QaReport entity from SupportModule
|
|
@@ -335,8 +335,6 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
|
|
|
335
335
|
WorkOrderNumber = "WorkOrderNumber",
|
|
336
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
337
|
EngineerName = "EngineerName",
|
|
338
|
-
/** The property visited, linked to the CRM address record. */
|
|
339
|
-
Location = "Location",
|
|
340
338
|
/** The picture the engineer confirms having taken on arrival. */
|
|
341
339
|
PropertyFrontPhoto = "PropertyFrontPhoto",
|
|
342
340
|
/** Where the main router sits, as found on arrival. */
|
|
@@ -349,6 +347,8 @@ export declare enum YfFieldVisitOutcomeFormPropertyKeys {
|
|
|
349
347
|
YouMeshLocation1 = "YouMeshLocation1",
|
|
350
348
|
/** Evidence the node is not on the floor. */
|
|
351
349
|
YouMeshLocation2Photo = "YouMeshLocation2Photo",
|
|
350
|
+
/** The property visited, linked to the CRM address record. */
|
|
351
|
+
Location = "Location",
|
|
352
352
|
/** Proof of attendance at the right property. The confirmation is the enforced half; the photo beside it is not. */
|
|
353
353
|
PropertyFrontPhotoConfirmed = "PropertyFrontPhotoConfirmed",
|
|
354
354
|
/** An ONT on an extension lead or sitting loose is a repeat-fault cause in its own right. */
|
|
@@ -498,12 +498,6 @@ export interface YfFieldVisitOutcomeFormProperties {
|
|
|
498
498
|
* @default
|
|
499
499
|
*/
|
|
500
500
|
EngineerName: string;
|
|
501
|
-
/** The property visited, linked to the CRM address record.
|
|
502
|
-
*
|
|
503
|
-
* @type {LOOKUP}
|
|
504
|
-
* @default
|
|
505
|
-
*/
|
|
506
|
-
Location: string;
|
|
507
501
|
/** The picture the engineer confirms having taken on arrival.
|
|
508
502
|
*
|
|
509
503
|
* @type {FILE_MULTIPLE}
|
|
@@ -541,6 +535,12 @@ export interface YfFieldVisitOutcomeFormProperties {
|
|
|
541
535
|
* @default
|
|
542
536
|
*/
|
|
543
537
|
YouMeshLocation2Photo: string;
|
|
538
|
+
/** The property visited, linked to the CRM address record.
|
|
539
|
+
*
|
|
540
|
+
* @type {TEXT}
|
|
541
|
+
* @default
|
|
542
|
+
*/
|
|
543
|
+
Location: string;
|
|
544
544
|
/** Proof of attendance at the right property. The confirmation is the enforced half; the photo beside it is not.
|
|
545
545
|
*
|
|
546
546
|
* @type {ENUM}
|
|
@@ -892,12 +892,6 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
|
|
|
892
892
|
* @default
|
|
893
893
|
*/
|
|
894
894
|
EngineerName: string;
|
|
895
|
-
/** The property visited, linked to the CRM address record.
|
|
896
|
-
*
|
|
897
|
-
* @type {LOOKUP}
|
|
898
|
-
* @default
|
|
899
|
-
*/
|
|
900
|
-
Location: string;
|
|
901
895
|
/** The picture the engineer confirms having taken on arrival.
|
|
902
896
|
*
|
|
903
897
|
* @type {FILE_MULTIPLE}
|
|
@@ -935,6 +929,12 @@ export interface OutcomeFormYfFieldVisitOutcomeFormProperties {
|
|
|
935
929
|
* @default
|
|
936
930
|
*/
|
|
937
931
|
YouMeshLocation2Photo: string;
|
|
932
|
+
/** The property visited, linked to the CRM address record.
|
|
933
|
+
*
|
|
934
|
+
* @type {TEXT}
|
|
935
|
+
* @default
|
|
936
|
+
*/
|
|
937
|
+
Location: string;
|
|
938
938
|
/** Proof of attendance at the right property. The confirmation is the enforced half; the photo beside it is not.
|
|
939
939
|
*
|
|
940
940
|
* @type {ENUM}
|
|
@@ -350,8 +350,6 @@ var YfFieldVisitOutcomeFormPropertyKeys;
|
|
|
350
350
|
YfFieldVisitOutcomeFormPropertyKeys["WorkOrderNumber"] = "WorkOrderNumber";
|
|
351
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
352
|
YfFieldVisitOutcomeFormPropertyKeys["EngineerName"] = "EngineerName";
|
|
353
|
-
/** The property visited, linked to the CRM address record. */
|
|
354
|
-
YfFieldVisitOutcomeFormPropertyKeys["Location"] = "Location";
|
|
355
353
|
/** The picture the engineer confirms having taken on arrival. */
|
|
356
354
|
YfFieldVisitOutcomeFormPropertyKeys["PropertyFrontPhoto"] = "PropertyFrontPhoto";
|
|
357
355
|
/** Where the main router sits, as found on arrival. */
|
|
@@ -364,6 +362,8 @@ var YfFieldVisitOutcomeFormPropertyKeys;
|
|
|
364
362
|
YfFieldVisitOutcomeFormPropertyKeys["YouMeshLocation1"] = "YouMeshLocation1";
|
|
365
363
|
/** Evidence the node is not on the floor. */
|
|
366
364
|
YfFieldVisitOutcomeFormPropertyKeys["YouMeshLocation2Photo"] = "YouMeshLocation2Photo";
|
|
365
|
+
/** The property visited, linked to the CRM address record. */
|
|
366
|
+
YfFieldVisitOutcomeFormPropertyKeys["Location"] = "Location";
|
|
367
367
|
/** Proof of attendance at the right property. The confirmation is the enforced half; the photo beside it is not. */
|
|
368
368
|
YfFieldVisitOutcomeFormPropertyKeys["PropertyFrontPhotoConfirmed"] = "PropertyFrontPhotoConfirmed";
|
|
369
369
|
/** An ONT on an extension lead or sitting loose is a repeat-fault cause in its own right. */
|