@d19n/youfibre-odin-sdk 2.0.318 → 2.0.320

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/README.md CHANGED
@@ -370,7 +370,7 @@ This SDK includes **182** entities across **12** modules.
370
370
 
371
371
  ## Actions
372
372
 
373
- This SDK includes **881** actions.
373
+ This SDK includes **882** actions.
374
374
 
375
375
  ### Action Types
376
376
 
@@ -2130,6 +2130,7 @@ This SDK includes **881** actions.
2130
2130
  | Action | Type | Event |
2131
2131
  |--------|------|-------|
2132
2132
  | `CreateQaReport` | CREATE | k1.t-hEOJjsDb.SupportModule.QaReport.Create.CreateQaReport |
2133
+ | `RecordQaReportFeedback` | UPDATE | k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback |
2133
2134
 
2134
2135
  #### Recontract
2135
2136
 
@@ -0,0 +1,104 @@
1
+ /**
2
+ * RecordQaReportFeedback Action DTO
3
+ *
4
+ * RecordQaReportFeedback
5
+ *
6
+ * @module SupportModule
7
+ * @entity QaReport
8
+ * @entityType DEFAULT
9
+ * @actionKey RecordQaReportFeedback
10
+ * @event k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback
11
+ *
12
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
13
+ */
14
+ import { OdinRecord, OdinRecordUpdateDto, OdinRecordUpdatedEvent } from '@d19n/odin-types/dist/core';
15
+ /**
16
+ * RabbitMQ message payload for RecordQaReportFeedback updated events
17
+ *
18
+ * @event k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback
19
+ */
20
+ export interface RecordQaReportFeedbackMessage extends OdinRecordUpdatedEvent<RecordQaReportFeedbackDto, RecordQaReportFeedbackProperties> {
21
+ }
22
+ /**
23
+ * Properties for RecordQaReportFeedback action
24
+ *
25
+ * @property Required fields: 1
26
+ * @property Optional fields: 4
27
+ */
28
+ export interface RecordQaReportFeedbackProperties {
29
+ /**
30
+ * Is this report accurate?
31
+ *
32
+ * Whether the agent reading this report judged it accurate.
33
+ * @type {ENUM}
34
+ * @required
35
+ */
36
+ FeedbackAccuracy: string;
37
+ /**
38
+ * What was wrong?
39
+ *
40
+ * Only set when the report was judged inaccurate.
41
+ * @type {ENUM}
42
+ */
43
+ FeedbackReason?: string | null;
44
+ /**
45
+ * Feedback comment
46
+ *
47
+ * Free text from the person giving feedback. TEXT, not TEXT_LONG: the ceiling is the same either way, about 2,700 characters of varied text, which is far more than a comment needs.
48
+ * @type {TEXT}
49
+ */
50
+ FeedbackComment?: string | null;
51
+ /**
52
+ * Feedback by
53
+ *
54
+ * Identity user id of whoever gave the feedback, stamped by the server from the principal. lastModifiedBy is not enough — any later edit would overwrite it.
55
+ * @type {TEXT}
56
+ */
57
+ FeedbackBy?: string | null;
58
+ /**
59
+ * Feedback at
60
+ *
61
+ * When the feedback was given. Separate from updatedAt, which moves on any change to the record.
62
+ * @type {DATE_TIME}
63
+ */
64
+ FeedbackAt?: string | null;
65
+ }
66
+ /**
67
+ * RecordQaReportFeedback
68
+ *
69
+ * @actionType UPDATE - Updates an existing QaReport record
70
+ * @module SupportModule
71
+ * @entity QaReport
72
+ * @entityType DEFAULT (Default)
73
+ * @event k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback
74
+ * @permission schema.action.recordqareportfeedback.trigger
75
+ * @benchmark This action is tracked for performance benchmarks
76
+ */
77
+ export declare class RecordQaReportFeedbackDto extends OdinRecordUpdateDto<RecordQaReportFeedbackProperties> {
78
+ /** Used by SDK generators to identify action type */
79
+ static readonly ACTION_TYPE = "UPDATE";
80
+ static readonly ACTION_KEY = "RecordQaReportFeedback";
81
+ static readonly MODULE_NAME = "SupportModule";
82
+ static readonly ENTITIES: string[];
83
+ static readonly ENTITY_TYPE = "DEFAULT";
84
+ static readonly EVENT_NAME = "k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback";
85
+ static readonly PERMISSION = "schema.action.recordqareportfeedback.trigger";
86
+ /** Step metadata - entity this action targets */
87
+ static readonly STEP_ENTITY = "SupportModule:QaReport";
88
+ static readonly STEP_SCHEMA_ID = "68057e56-74e5-4b9e-b4c2-6c3f46b000ad";
89
+ static readonly STEP_SCHEMA_ACTION_ID = "196d9f3f-ffa5-4489-9368-e09d5de9cd52";
90
+ static readonly STEP_SCHEMA_TYPE_ID = "d056f400-5301-4f7a-8655-4746e507ccd4";
91
+ static readonly STEP_TYPE = "DEFAULT";
92
+ static readonly AUTO_LINK_PARENT = false;
93
+ readonly actionName: string;
94
+ readonly schemaActionId: string;
95
+ readonly entity: string;
96
+ constructor(record: OdinRecord<any> | {
97
+ id: string;
98
+ entity: string;
99
+ type?: string;
100
+ }, properties: RecordQaReportFeedbackProperties, options?: {
101
+ journeyId?: string;
102
+ stageKey?: string;
103
+ });
104
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * RecordQaReportFeedback Action DTO
4
+ *
5
+ * RecordQaReportFeedback
6
+ *
7
+ * @module SupportModule
8
+ * @entity QaReport
9
+ * @entityType DEFAULT
10
+ * @actionKey RecordQaReportFeedback
11
+ * @event k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback
12
+ *
13
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RecordQaReportFeedbackDto = void 0;
17
+ const core_1 = require("@d19n/odin-types/dist/core");
18
+ /**
19
+ * RecordQaReportFeedback
20
+ *
21
+ * @actionType UPDATE - Updates an existing QaReport record
22
+ * @module SupportModule
23
+ * @entity QaReport
24
+ * @entityType DEFAULT (Default)
25
+ * @event k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback
26
+ * @permission schema.action.recordqareportfeedback.trigger
27
+ * @benchmark This action is tracked for performance benchmarks
28
+ */
29
+ class RecordQaReportFeedbackDto extends core_1.OdinRecordUpdateDto {
30
+ constructor(record, properties, options) {
31
+ super({
32
+ id: record.id,
33
+ entity: record.entity,
34
+ type: record.type,
35
+ properties,
36
+ journeyId: options === null || options === void 0 ? void 0 : options.journeyId,
37
+ stageKey: options === null || options === void 0 ? void 0 : options.stageKey,
38
+ });
39
+ this.actionName = 'RecordQaReportFeedback';
40
+ this.schemaActionId = '196d9f3f-ffa5-4489-9368-e09d5de9cd52';
41
+ this.entity = 'SupportModule:QaReport';
42
+ }
43
+ }
44
+ exports.RecordQaReportFeedbackDto = RecordQaReportFeedbackDto;
45
+ /** Used by SDK generators to identify action type */
46
+ RecordQaReportFeedbackDto.ACTION_TYPE = 'UPDATE';
47
+ RecordQaReportFeedbackDto.ACTION_KEY = 'RecordQaReportFeedback';
48
+ RecordQaReportFeedbackDto.MODULE_NAME = 'SupportModule';
49
+ RecordQaReportFeedbackDto.ENTITIES = ['QaReport'];
50
+ RecordQaReportFeedbackDto.ENTITY_TYPE = 'DEFAULT';
51
+ RecordQaReportFeedbackDto.EVENT_NAME = 'k1.t-hEOJjsDb.SupportModule.QaReport.Update.RecordQaReportFeedback';
52
+ RecordQaReportFeedbackDto.PERMISSION = 'schema.action.recordqareportfeedback.trigger';
53
+ /** Step metadata - entity this action targets */
54
+ RecordQaReportFeedbackDto.STEP_ENTITY = 'SupportModule:QaReport';
55
+ RecordQaReportFeedbackDto.STEP_SCHEMA_ID = '68057e56-74e5-4b9e-b4c2-6c3f46b000ad';
56
+ RecordQaReportFeedbackDto.STEP_SCHEMA_ACTION_ID = '196d9f3f-ffa5-4489-9368-e09d5de9cd52';
57
+ RecordQaReportFeedbackDto.STEP_SCHEMA_TYPE_ID = 'd056f400-5301-4f7a-8655-4746e507ccd4';
58
+ RecordQaReportFeedbackDto.STEP_TYPE = 'DEFAULT';
59
+ RecordQaReportFeedbackDto.AUTO_LINK_PARENT = false;
@@ -335,12 +335,12 @@ export declare enum ChangeReasonRescheduleReason {
335
335
  *
336
336
  * @remarks Available options:
337
337
  * - `CUSTOMER_UNAVAILABLE_RETRYING_LATER` - Customer Unavailable - Retrying Later
338
- * - `EN_ROUTER_IN_ERROR` - En-Router in error
338
+ * - `EN_ROUTE_IN_ERROR` - En Route in error
339
339
  * - `MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE` - Moving to another job - Customer Aware
340
340
  */
341
341
  export declare enum ChangeReasonStandDownReason {
342
342
  CUSTOMER_UNAVAILABLE_RETRYING_LATER = "CUSTOMER_UNAVAILABLE_RETRYING_LATER",
343
- EN_ROUTER_IN_ERROR = "EN_ROUTER_IN_ERROR",
343
+ EN_ROUTE_IN_ERROR = "EN_ROUTE_IN_ERROR",
344
344
  MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE = "MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE"
345
345
  }
346
346
  /**
@@ -342,13 +342,13 @@ var ChangeReasonRescheduleReason;
342
342
  *
343
343
  * @remarks Available options:
344
344
  * - `CUSTOMER_UNAVAILABLE_RETRYING_LATER` - Customer Unavailable - Retrying Later
345
- * - `EN_ROUTER_IN_ERROR` - En-Router in error
345
+ * - `EN_ROUTE_IN_ERROR` - En Route in error
346
346
  * - `MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE` - Moving to another job - Customer Aware
347
347
  */
348
348
  var ChangeReasonStandDownReason;
349
349
  (function (ChangeReasonStandDownReason) {
350
350
  ChangeReasonStandDownReason["CUSTOMER_UNAVAILABLE_RETRYING_LATER"] = "CUSTOMER_UNAVAILABLE_RETRYING_LATER";
351
- ChangeReasonStandDownReason["EN_ROUTER_IN_ERROR"] = "EN_ROUTER_IN_ERROR";
351
+ ChangeReasonStandDownReason["EN_ROUTE_IN_ERROR"] = "EN_ROUTE_IN_ERROR";
352
352
  ChangeReasonStandDownReason["MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE"] = "MOVING_TO_ANOTHER_JOB_CUSTOMER_AWARE";
353
353
  })(ChangeReasonStandDownReason = exports.ChangeReasonStandDownReason || (exports.ChangeReasonStandDownReason = {}));
354
354
  /**
@@ -38,6 +38,38 @@ export declare enum QaReportChannel {
38
38
  PORTAL_CHAT = "PORTAL_CHAT",
39
39
  WEB_CHAT = "WEB_CHAT"
40
40
  }
41
+ /**
42
+ * Valid values for QaReport.FeedbackAccuracy
43
+ *
44
+ * Whether the agent reading this report judged it accurate.
45
+ *
46
+ * @remarks Available options:
47
+ * - `ACCURATE` - Accurate
48
+ * - `INACCURATE` - Inaccurate
49
+ */
50
+ export declare enum QaReportFeedbackAccuracy {
51
+ ACCURATE = "ACCURATE",
52
+ INACCURATE = "INACCURATE"
53
+ }
54
+ /**
55
+ * Valid values for QaReport.FeedbackReason
56
+ *
57
+ * Only set when the report was judged inaccurate.
58
+ *
59
+ * @remarks Available options:
60
+ * - `MISSED_SOMETHING` - It missed something
61
+ * - `OTHER` - Something else
62
+ * - `EVIDENCE_WRONG` - The evidence is wrong
63
+ * - `SCORE_WRONG` - The score is wrong
64
+ * - `UNFAIR_TO_AGENT` - Unfair to the agent
65
+ */
66
+ export declare enum QaReportFeedbackReason {
67
+ IT_MISSED_SOMETHING = "MISSED_SOMETHING",
68
+ SOMETHING_ELSE = "OTHER",
69
+ THE_EVIDENCE_IS_WRONG = "EVIDENCE_WRONG",
70
+ THE_SCORE_IS_WRONG = "SCORE_WRONG",
71
+ UNFAIR_TO_THE_AGENT = "UNFAIR_TO_AGENT"
72
+ }
41
73
  /**
42
74
  * Property keys for QaReport
43
75
  * Use these constants instead of string literals for type safety
@@ -60,7 +92,17 @@ export declare enum QaReportPropertyKeys {
60
92
  /** 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
93
  CorrelationId = "CorrelationId",
62
94
  /** 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"
95
+ CaseId = "CaseId",
96
+ /** Whether the agent reading this report judged it accurate. */
97
+ FeedbackAccuracy = "FeedbackAccuracy",
98
+ /** Identity user id of whoever gave the feedback, stamped by the server from the principal. lastModifiedBy is not enough — any later edit would overwrite it. */
99
+ FeedbackBy = "FeedbackBy",
100
+ /** Only set when the report was judged inaccurate. */
101
+ FeedbackReason = "FeedbackReason",
102
+ /** Free text from the person giving feedback. TEXT, not TEXT_LONG: the ceiling is the same either way, about 2,700 characters of varied text, which is far more than a comment needs. */
103
+ FeedbackComment = "FeedbackComment",
104
+ /** When the feedback was given. Separate from updatedAt, which moves on any change to the record. */
105
+ FeedbackAt = "FeedbackAt"
64
106
  }
65
107
  /**
66
108
  * Properties for QaReport records
@@ -123,6 +165,39 @@ export interface QaReportProperties {
123
165
  * @default
124
166
  */
125
167
  CaseId: string;
168
+ /** Whether the agent reading this report judged it accurate.
169
+ *
170
+ * @type {ENUM}
171
+ * @default
172
+ * @enum {QaReportFeedbackAccuracy}
173
+ */
174
+ FeedbackAccuracy: QaReportFeedbackAccuracy;
175
+ /** Identity user id of whoever gave the feedback, stamped by the server from the principal. lastModifiedBy is not enough — any later edit would overwrite it.
176
+ *
177
+ * @type {TEXT}
178
+ * @default
179
+ */
180
+ FeedbackBy: string;
181
+ /** Only set when the report was judged inaccurate.
182
+ *
183
+ * @type {ENUM}
184
+ * @default
185
+ * @enum {QaReportFeedbackReason}
186
+ */
187
+ FeedbackReason: QaReportFeedbackReason;
188
+ /** Free text from the person giving feedback. TEXT, not TEXT_LONG: the ceiling is the same either way, about 2,700 characters of varied text, which is far more than a comment needs.
189
+ *
190
+ * @type {TEXT}
191
+ * @default
192
+ * @placeholder Anything else? (optional)
193
+ */
194
+ FeedbackComment: string;
195
+ /** When the feedback was given. Separate from updatedAt, which moves on any change to the record.
196
+ *
197
+ * @type {DATE_TIME}
198
+ * @default
199
+ */
200
+ FeedbackAt: string;
126
201
  }
127
202
  /**
128
203
  * QaReport entity from SupportModule
@@ -12,7 +12,7 @@
12
12
  * Generated from Odin schema definition
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ROUTING_KEY_QA_REPORT_DEFAULT_DELETED = exports.ROUTING_KEY_QA_REPORT_DEFAULT_UPDATED = exports.ROUTING_KEY_QA_REPORT_DEFAULT_CREATED = exports.ROUTING_KEY_QA_REPORT_DELETED = exports.ROUTING_KEY_QA_REPORT_UPDATED = exports.ROUTING_KEY_QA_REPORT_CREATED = exports.QaReport = exports.QaReportPropertyKeys = exports.QaReportChannel = exports.QaReportEntityTypes = void 0;
15
+ exports.ROUTING_KEY_QA_REPORT_DEFAULT_DELETED = exports.ROUTING_KEY_QA_REPORT_DEFAULT_UPDATED = exports.ROUTING_KEY_QA_REPORT_DEFAULT_CREATED = exports.ROUTING_KEY_QA_REPORT_DELETED = exports.ROUTING_KEY_QA_REPORT_UPDATED = exports.ROUTING_KEY_QA_REPORT_CREATED = exports.QaReport = exports.QaReportPropertyKeys = exports.QaReportFeedbackReason = exports.QaReportFeedbackAccuracy = exports.QaReportChannel = exports.QaReportEntityTypes = void 0;
16
16
  const core_1 = require("@d19n/odin-types/dist/core");
17
17
  /**
18
18
  * Available types for QaReport records
@@ -42,6 +42,40 @@ var QaReportChannel;
42
42
  QaReportChannel["PORTAL_CHAT"] = "PORTAL_CHAT";
43
43
  QaReportChannel["WEB_CHAT"] = "WEB_CHAT";
44
44
  })(QaReportChannel = exports.QaReportChannel || (exports.QaReportChannel = {}));
45
+ /**
46
+ * Valid values for QaReport.FeedbackAccuracy
47
+ *
48
+ * Whether the agent reading this report judged it accurate.
49
+ *
50
+ * @remarks Available options:
51
+ * - `ACCURATE` - Accurate
52
+ * - `INACCURATE` - Inaccurate
53
+ */
54
+ var QaReportFeedbackAccuracy;
55
+ (function (QaReportFeedbackAccuracy) {
56
+ QaReportFeedbackAccuracy["ACCURATE"] = "ACCURATE";
57
+ QaReportFeedbackAccuracy["INACCURATE"] = "INACCURATE";
58
+ })(QaReportFeedbackAccuracy = exports.QaReportFeedbackAccuracy || (exports.QaReportFeedbackAccuracy = {}));
59
+ /**
60
+ * Valid values for QaReport.FeedbackReason
61
+ *
62
+ * Only set when the report was judged inaccurate.
63
+ *
64
+ * @remarks Available options:
65
+ * - `MISSED_SOMETHING` - It missed something
66
+ * - `OTHER` - Something else
67
+ * - `EVIDENCE_WRONG` - The evidence is wrong
68
+ * - `SCORE_WRONG` - The score is wrong
69
+ * - `UNFAIR_TO_AGENT` - Unfair to the agent
70
+ */
71
+ var QaReportFeedbackReason;
72
+ (function (QaReportFeedbackReason) {
73
+ QaReportFeedbackReason["IT_MISSED_SOMETHING"] = "MISSED_SOMETHING";
74
+ QaReportFeedbackReason["SOMETHING_ELSE"] = "OTHER";
75
+ QaReportFeedbackReason["THE_EVIDENCE_IS_WRONG"] = "EVIDENCE_WRONG";
76
+ QaReportFeedbackReason["THE_SCORE_IS_WRONG"] = "SCORE_WRONG";
77
+ QaReportFeedbackReason["UNFAIR_TO_THE_AGENT"] = "UNFAIR_TO_AGENT";
78
+ })(QaReportFeedbackReason = exports.QaReportFeedbackReason || (exports.QaReportFeedbackReason = {}));
45
79
  /**
46
80
  * Property keys for QaReport
47
81
  * Use these constants instead of string literals for type safety
@@ -66,6 +100,16 @@ var QaReportPropertyKeys;
66
100
  QaReportPropertyKeys["CorrelationId"] = "CorrelationId";
67
101
  /** 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
102
  QaReportPropertyKeys["CaseId"] = "CaseId";
103
+ /** Whether the agent reading this report judged it accurate. */
104
+ QaReportPropertyKeys["FeedbackAccuracy"] = "FeedbackAccuracy";
105
+ /** Identity user id of whoever gave the feedback, stamped by the server from the principal. lastModifiedBy is not enough — any later edit would overwrite it. */
106
+ QaReportPropertyKeys["FeedbackBy"] = "FeedbackBy";
107
+ /** Only set when the report was judged inaccurate. */
108
+ QaReportPropertyKeys["FeedbackReason"] = "FeedbackReason";
109
+ /** Free text from the person giving feedback. TEXT, not TEXT_LONG: the ceiling is the same either way, about 2,700 characters of varied text, which is far more than a comment needs. */
110
+ QaReportPropertyKeys["FeedbackComment"] = "FeedbackComment";
111
+ /** When the feedback was given. Separate from updatedAt, which moves on any change to the record. */
112
+ QaReportPropertyKeys["FeedbackAt"] = "FeedbackAt";
69
113
  })(QaReportPropertyKeys = exports.QaReportPropertyKeys || (exports.QaReportPropertyKeys = {}));
70
114
  /**
71
115
  * QaReport entity from SupportModule
@@ -24,6 +24,7 @@ import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
24
24
  import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
25
  import { QaReportProperties } from '../entities-v2/QaReport';
26
26
  import { CreateQaReportProperties } from '../actions-v2/CreateQaReportDto';
27
+ import { RecordQaReportFeedbackProperties } from '../actions-v2/RecordQaReportFeedbackDto';
27
28
  import { CaseRecord } from './CaseRecord';
28
29
  /** Valid entity types for QaReport */
29
30
  export declare type QaReportType = 'DEFAULT';
@@ -201,6 +202,32 @@ export declare class QaReportRecord<TProps = QaReportProperties> {
201
202
  journeyId?: string;
202
203
  stageKey?: string;
203
204
  }): ActionBuilder;
205
+ /**
206
+ * RecordQaReportFeedback
207
+ *
208
+ * Updates this QaReport record with the specified properties.
209
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
210
+ *
211
+ * @param properties - Required properties for this action
212
+ * @param options - Optional settings
213
+ * @param options.journeyId - Associate with a journey
214
+ * @param options.stageKey - Transition to pipeline stage
215
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
216
+ * @throws Error if called on a new (unsaved) record
217
+ *
218
+ * @example
219
+ * ```typescript
220
+ * const record = await odinClient.qaReports.get(id);
221
+ * await record.recordQaReportFeedback({ ... }).execute();
222
+ *
223
+ * // Dry run (for debugging)
224
+ * const payload = record.recordQaReportFeedback({ ... }).dryRun();
225
+ * ```
226
+ */
227
+ recordQaReportFeedback(properties: RecordQaReportFeedbackProperties, options?: {
228
+ journeyId?: string;
229
+ stageKey?: string;
230
+ }): ActionBuilder;
204
231
  }
205
232
  /** Type guard to check if an object is a QaReportRecord */
206
233
  export declare function isQaReportRecord(obj: any): obj is QaReportRecord;
@@ -268,6 +268,38 @@ class QaReportRecord {
268
268
  };
269
269
  return new ActionBuilder(this._provider, 'SupportModule', 'QaReport', payload, () => { this._pendingLinks = []; });
270
270
  }
271
+ // ============================================
272
+ // UPDATE ACTIONS (require existing record)
273
+ // ============================================
274
+ /**
275
+ * RecordQaReportFeedback
276
+ *
277
+ * Updates this QaReport record with the specified properties.
278
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
279
+ *
280
+ * @param properties - Required properties for this action
281
+ * @param options - Optional settings
282
+ * @param options.journeyId - Associate with a journey
283
+ * @param options.stageKey - Transition to pipeline stage
284
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
285
+ * @throws Error if called on a new (unsaved) record
286
+ *
287
+ * @example
288
+ * ```typescript
289
+ * const record = await odinClient.qaReports.get(id);
290
+ * await record.recordQaReportFeedback({ ... }).execute();
291
+ *
292
+ * // Dry run (for debugging)
293
+ * const payload = record.recordQaReportFeedback({ ... }).dryRun();
294
+ * ```
295
+ */
296
+ recordQaReportFeedback(properties, options) {
297
+ var _a;
298
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
299
+ throw new Error('recordQaReportFeedback requires an existing record. Use accessor.get() first.');
300
+ const payload = Object.assign({ id: this._record.id, entity: this._record.entity, type: this._record.type, actionName: 'RecordQaReportFeedback', properties, associations: this._pendingLinks.length > 0 ? this._pendingLinks : undefined }, options);
301
+ return new ActionBuilder(this._provider, 'SupportModule', 'QaReport', payload, () => { this._pendingLinks = []; });
302
+ }
271
303
  }
272
304
  exports.QaReportRecord = QaReportRecord;
273
305
  // ============================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d19n/youfibre-odin-sdk",
3
- "version": "2.0.318",
3
+ "version": "2.0.320",
4
4
  "description": "",
5
5
  "author": "@d19n",
6
6
  "license": "UNLICENSED",