@d19n/youfibre-odin-sdk 2.0.13-beta.1 → 2.0.13

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 (239) hide show
  1. package/README.md +11 -10
  2. package/dist/actions-v2/CreateOrderFromBrskDto.d.ts +75 -0
  3. package/dist/actions-v2/CreateOrderItemFromBrskDto.d.ts +191 -0
  4. package/dist/actions-v2/CreateOrderItemFromBrskDto.js +52 -0
  5. package/dist/entities-v2/Order.d.ts +7 -0
  6. package/dist/entities-v2/Order.js +2 -0
  7. package/dist/entities-v2/OrderItem.d.ts +7 -0
  8. package/dist/entities-v2/OrderItem.js +2 -0
  9. package/dist/entities-v2/Product.d.ts +0 -42
  10. package/dist/entities-v2/Product.js +0 -2
  11. package/dist/records-v2/AccountCreditRecord.d.ts +62 -1
  12. package/dist/records-v2/AccountCreditRecord.js +91 -0
  13. package/dist/records-v2/AccountRecord.d.ts +306 -2
  14. package/dist/records-v2/AccountRecord.js +451 -0
  15. package/dist/records-v2/ActivityLogRecord.d.ts +122 -1
  16. package/dist/records-v2/ActivityLogRecord.js +190 -0
  17. package/dist/records-v2/ActivityRecord.d.ts +255 -2
  18. package/dist/records-v2/ActivityRecord.js +387 -0
  19. package/dist/records-v2/AddressRecord.d.ts +321 -0
  20. package/dist/records-v2/AddressRecord.js +532 -0
  21. package/dist/records-v2/AffiliateCodeRecord.d.ts +102 -1
  22. package/dist/records-v2/AffiliateCodeRecord.js +157 -0
  23. package/dist/records-v2/AppointmentRecord.d.ts +141 -0
  24. package/dist/records-v2/AppointmentRecord.js +235 -0
  25. package/dist/records-v2/BillingAdjustmentRecord.d.ts +81 -0
  26. package/dist/records-v2/BillingAdjustmentRecord.js +136 -0
  27. package/dist/records-v2/BillingRequestRecord.d.ts +178 -2
  28. package/dist/records-v2/BillingRequestRecord.js +271 -0
  29. package/dist/records-v2/BlockageA55Record.d.ts +103 -2
  30. package/dist/records-v2/BlockageA55Record.js +157 -0
  31. package/dist/records-v2/BrskEntityMigrationErrorRecord.d.ts +21 -1
  32. package/dist/records-v2/BrskEntityMigrationErrorRecord.js +21 -0
  33. package/dist/records-v2/CallEventRecord.d.ts +82 -1
  34. package/dist/records-v2/CallEventRecord.js +124 -0
  35. package/dist/records-v2/CallLegRecord.d.ts +82 -1
  36. package/dist/records-v2/CallLegRecord.js +124 -0
  37. package/dist/records-v2/CallRecord.d.ts +202 -1
  38. package/dist/records-v2/CallRecord.js +322 -0
  39. package/dist/records-v2/CallTransferRecord.d.ts +102 -1
  40. package/dist/records-v2/CallTransferRecord.js +157 -0
  41. package/dist/records-v2/CampaignRecord.d.ts +83 -2
  42. package/dist/records-v2/CampaignRecord.js +124 -0
  43. package/dist/records-v2/CaseRecord.d.ts +418 -2
  44. package/dist/records-v2/CaseRecord.js +667 -0
  45. package/dist/records-v2/ChangeReasonRecord.d.ts +171 -2
  46. package/dist/records-v2/ChangeReasonRecord.js +238 -0
  47. package/dist/records-v2/ChurnRequestRecord.d.ts +62 -1
  48. package/dist/records-v2/ChurnRequestRecord.js +91 -0
  49. package/dist/records-v2/ContactRecord.d.ts +560 -0
  50. package/dist/records-v2/ContactRecord.js +927 -0
  51. package/dist/records-v2/ContractBuyOutRecord.d.ts +162 -1
  52. package/dist/records-v2/ContractBuyOutRecord.js +256 -0
  53. package/dist/records-v2/ConversationFeedbackRecord.d.ts +102 -1
  54. package/dist/records-v2/ConversationFeedbackRecord.js +157 -0
  55. package/dist/records-v2/ConversationRecord.d.ts +102 -1
  56. package/dist/records-v2/ConversationRecord.js +157 -0
  57. package/dist/records-v2/CreditNoteRecord.d.ts +81 -0
  58. package/dist/records-v2/CreditNoteRecord.js +136 -0
  59. package/dist/records-v2/CrmDatasetRecord.d.ts +191 -2
  60. package/dist/records-v2/CrmDatasetRecord.js +271 -0
  61. package/dist/records-v2/CustomerDeviceAtaRecord.d.ts +21 -0
  62. package/dist/records-v2/CustomerDeviceAtaRecord.js +37 -0
  63. package/dist/records-v2/CustomerDeviceConfigurationRecord.d.ts +62 -1
  64. package/dist/records-v2/CustomerDeviceConfigurationRecord.js +91 -0
  65. package/dist/records-v2/CustomerDeviceOntRecord.d.ts +181 -0
  66. package/dist/records-v2/CustomerDeviceOntRecord.js +301 -0
  67. package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +141 -0
  68. package/dist/records-v2/CustomerDeviceRouterRecord.js +235 -0
  69. package/dist/records-v2/CustomerPhonePortingRecord.d.ts +21 -0
  70. package/dist/records-v2/CustomerPhonePortingRecord.js +37 -0
  71. package/dist/records-v2/DiscountRecord.d.ts +121 -0
  72. package/dist/records-v2/DiscountRecord.js +202 -0
  73. package/dist/records-v2/EmailRecord.d.ts +230 -2
  74. package/dist/records-v2/EmailRecord.js +336 -0
  75. package/dist/records-v2/EmailSenderRecord.d.ts +42 -1
  76. package/dist/records-v2/EmailSenderRecord.js +58 -0
  77. package/dist/records-v2/EmailTemplateRecord.d.ts +21 -1
  78. package/dist/records-v2/EmailTemplateRecord.js +21 -0
  79. package/dist/records-v2/FieldServiceDispatchedProductRecord.d.ts +135 -2
  80. package/dist/records-v2/FieldServiceDispatchedProductRecord.js +189 -0
  81. package/dist/records-v2/FieldServiceProductRecord.d.ts +115 -2
  82. package/dist/records-v2/FieldServiceProductRecord.js +156 -0
  83. package/dist/records-v2/FileRecord.d.ts +1211 -2
  84. package/dist/records-v2/FileRecord.js +1902 -0
  85. package/dist/records-v2/ImpersonationTrackerRecord.d.ts +62 -1
  86. package/dist/records-v2/ImpersonationTrackerRecord.js +91 -0
  87. package/dist/records-v2/InternalInstallAuditRecord.d.ts +83 -2
  88. package/dist/records-v2/InternalInstallAuditRecord.js +124 -0
  89. package/dist/records-v2/InvoiceItemRecord.d.ts +40 -0
  90. package/dist/records-v2/InvoiceItemRecord.js +69 -0
  91. package/dist/records-v2/InvoiceRecord.d.ts +399 -2
  92. package/dist/records-v2/InvoiceRecord.js +635 -0
  93. package/dist/records-v2/KnowledgeArticleRecord.d.ts +98 -2
  94. package/dist/records-v2/KnowledgeArticleRecord.js +139 -0
  95. package/dist/records-v2/LeadRecord.d.ts +261 -0
  96. package/dist/records-v2/LeadRecord.js +433 -0
  97. package/dist/records-v2/MessageRecord.d.ts +99 -2
  98. package/dist/records-v2/MessageRecord.js +140 -0
  99. package/dist/records-v2/NetworkDeviceRecord.d.ts +43 -2
  100. package/dist/records-v2/NetworkDeviceRecord.js +58 -0
  101. package/dist/records-v2/NoteRecord.d.ts +1121 -1
  102. package/dist/records-v2/NoteRecord.js +1839 -0
  103. package/dist/records-v2/OfferRecord.d.ts +154 -2
  104. package/dist/records-v2/OfferRecord.js +221 -0
  105. package/dist/records-v2/OhAuditOfInstallationRecord.d.ts +83 -2
  106. package/dist/records-v2/OhAuditOfInstallationRecord.js +124 -0
  107. package/dist/records-v2/OhExternalAuditRecord.d.ts +83 -2
  108. package/dist/records-v2/OhExternalAuditRecord.js +124 -0
  109. package/dist/records-v2/OhInProgressAuditRecord.d.ts +83 -2
  110. package/dist/records-v2/OhInProgressAuditRecord.js +124 -0
  111. package/dist/records-v2/OhInstallationAuditRecord.d.ts +83 -2
  112. package/dist/records-v2/OhInstallationAuditRecord.js +124 -0
  113. package/dist/records-v2/OhRetroAuditRecord.d.ts +83 -2
  114. package/dist/records-v2/OhRetroAuditRecord.js +124 -0
  115. package/dist/records-v2/OneTouchSwitchRecord.d.ts +255 -2
  116. package/dist/records-v2/OneTouchSwitchRecord.js +387 -0
  117. package/dist/records-v2/OntReplacementApprovalRecord.d.ts +62 -1
  118. package/dist/records-v2/OntReplacementApprovalRecord.js +91 -0
  119. package/dist/records-v2/OrderCheckRecord.d.ts +21 -0
  120. package/dist/records-v2/OrderCheckRecord.js +37 -0
  121. package/dist/records-v2/OrderItemRecord.d.ts +309 -0
  122. package/dist/records-v2/OrderItemRecord.js +501 -0
  123. package/dist/records-v2/OrderKciRecord.d.ts +42 -1
  124. package/dist/records-v2/OrderKciRecord.js +58 -0
  125. package/dist/records-v2/OrderRecord.d.ts +620 -0
  126. package/dist/records-v2/OrderRecord.js +1026 -0
  127. package/dist/records-v2/OutageRecord.d.ts +42 -1
  128. package/dist/records-v2/OutageRecord.js +58 -0
  129. package/dist/records-v2/OverlayRealA55Record.d.ts +83 -2
  130. package/dist/records-v2/OverlayRealA55Record.js +124 -0
  131. package/dist/records-v2/PICRequestRecord.d.ts +62 -1
  132. package/dist/records-v2/PICRequestRecord.js +91 -0
  133. package/dist/records-v2/PaymentMethodRecord.d.ts +121 -0
  134. package/dist/records-v2/PaymentMethodRecord.js +202 -0
  135. package/dist/records-v2/PaymentMethodRefundRecord.d.ts +181 -0
  136. package/dist/records-v2/PaymentMethodRefundRecord.js +301 -0
  137. package/dist/records-v2/PaymentRecord.d.ts +82 -1
  138. package/dist/records-v2/PaymentRecord.js +124 -0
  139. package/dist/records-v2/PermissionToFailRecord.d.ts +61 -0
  140. package/dist/records-v2/PermissionToFailRecord.js +103 -0
  141. package/dist/records-v2/PgAccountValidationRecord.d.ts +21 -1
  142. package/dist/records-v2/PgAccountValidationRecord.js +21 -0
  143. package/dist/records-v2/PgContactRecord.d.ts +62 -1
  144. package/dist/records-v2/PgContactRecord.js +91 -0
  145. package/dist/records-v2/PgDirectDebitFileRecord.d.ts +95 -2
  146. package/dist/records-v2/PgDirectDebitFileRecord.js +123 -0
  147. package/dist/records-v2/PgDisputeRecord.d.ts +62 -1
  148. package/dist/records-v2/PgDisputeRecord.js +91 -0
  149. package/dist/records-v2/PgFileAllocationRecord.d.ts +115 -2
  150. package/dist/records-v2/PgFileAllocationRecord.js +156 -0
  151. package/dist/records-v2/PgLogRecord.d.ts +21 -1
  152. package/dist/records-v2/PgLogRecord.js +21 -0
  153. package/dist/records-v2/PgPaymentMethodRecord.d.ts +102 -1
  154. package/dist/records-v2/PgPaymentMethodRecord.js +157 -0
  155. package/dist/records-v2/PgSortCodeSubstitutionRecord.d.ts +21 -1
  156. package/dist/records-v2/PgSortCodeSubstitutionRecord.js +21 -0
  157. package/dist/records-v2/PgTransactionRecord.d.ts +135 -2
  158. package/dist/records-v2/PgTransactionRecord.js +189 -0
  159. package/dist/records-v2/PgVocalinkRecord.d.ts +21 -1
  160. package/dist/records-v2/PgVocalinkRecord.js +21 -0
  161. package/dist/records-v2/PgWebhookAttemptRecord.d.ts +42 -1
  162. package/dist/records-v2/PgWebhookAttemptRecord.js +58 -0
  163. package/dist/records-v2/PgWebhookRecord.d.ts +122 -1
  164. package/dist/records-v2/PgWebhookRecord.js +190 -0
  165. package/dist/records-v2/PhoneNumberRecord.d.ts +41 -0
  166. package/dist/records-v2/PhoneNumberRecord.js +70 -0
  167. package/dist/records-v2/PriceBookRecord.d.ts +21 -0
  168. package/dist/records-v2/PriceBookRecord.js +37 -0
  169. package/dist/records-v2/ProductRecord.d.ts +258 -2
  170. package/dist/records-v2/ProductRecord.js +351 -0
  171. package/dist/records-v2/PushNotificationRecord.d.ts +162 -1
  172. package/dist/records-v2/PushNotificationRecord.js +256 -0
  173. package/dist/records-v2/ReferralRecord.d.ts +143 -2
  174. package/dist/records-v2/ReferralRecord.js +223 -0
  175. package/dist/records-v2/RemediationOutcomeFormRecord.d.ts +83 -2
  176. package/dist/records-v2/RemediationOutcomeFormRecord.js +124 -0
  177. package/dist/records-v2/RemediationRequiredReasonRecord.d.ts +103 -2
  178. package/dist/records-v2/RemediationRequiredReasonRecord.js +157 -0
  179. package/dist/records-v2/ReturnsRecord.d.ts +62 -1
  180. package/dist/records-v2/ReturnsRecord.js +91 -0
  181. package/dist/records-v2/RewardRecord.d.ts +123 -2
  182. package/dist/records-v2/RewardRecord.js +190 -0
  183. package/dist/records-v2/SalesTerritoryRecord.d.ts +79 -2
  184. package/dist/records-v2/SalesTerritoryRecord.js +107 -0
  185. package/dist/records-v2/ScheduleSlotRecord.d.ts +42 -1
  186. package/dist/records-v2/ScheduleSlotRecord.js +58 -0
  187. package/dist/records-v2/ServiceAppointmentConfigRecord.d.ts +287 -2
  188. package/dist/records-v2/ServiceAppointmentConfigRecord.js +367 -0
  189. package/dist/records-v2/ServiceAppointmentRecord.d.ts +81 -0
  190. package/dist/records-v2/ServiceAppointmentRecord.js +136 -0
  191. package/dist/records-v2/ServiceRecord.d.ts +40 -0
  192. package/dist/records-v2/ServiceRecord.js +69 -0
  193. package/dist/records-v2/ServiceVisitAuditRecord.d.ts +83 -2
  194. package/dist/records-v2/ServiceVisitAuditRecord.js +124 -0
  195. package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.d.ts +83 -2
  196. package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.js +124 -0
  197. package/dist/records-v2/SmsMessageRecord.d.ts +175 -2
  198. package/dist/records-v2/SmsMessageRecord.js +255 -0
  199. package/dist/records-v2/SweeperMaintenanceAuditRecord.d.ts +83 -2
  200. package/dist/records-v2/SweeperMaintenanceAuditRecord.js +124 -0
  201. package/dist/records-v2/TeamRecord.d.ts +101 -0
  202. package/dist/records-v2/TeamRecord.js +169 -0
  203. package/dist/records-v2/TestEntityForVisualBuilderRecord.d.ts +115 -2
  204. package/dist/records-v2/TestEntityForVisualBuilderRecord.js +156 -0
  205. package/dist/records-v2/TimeSlotRecord.d.ts +21 -0
  206. package/dist/records-v2/TimeSlotRecord.js +37 -0
  207. package/dist/records-v2/TransactionRecord.d.ts +181 -1
  208. package/dist/records-v2/TransactionRecord.js +288 -0
  209. package/dist/records-v2/TwilioUserUpdateRecord.d.ts +42 -1
  210. package/dist/records-v2/TwilioUserUpdateRecord.js +58 -0
  211. package/dist/records-v2/UgAuditOfInstallationRecord.d.ts +83 -2
  212. package/dist/records-v2/UgAuditOfInstallationRecord.js +124 -0
  213. package/dist/records-v2/UgExternalAuditRecord.d.ts +83 -2
  214. package/dist/records-v2/UgExternalAuditRecord.js +124 -0
  215. package/dist/records-v2/UgInProgressAuditRecord.d.ts +83 -2
  216. package/dist/records-v2/UgInProgressAuditRecord.js +124 -0
  217. package/dist/records-v2/UgInstallationAuditRecord.d.ts +83 -2
  218. package/dist/records-v2/UgInstallationAuditRecord.js +124 -0
  219. package/dist/records-v2/UgRetroAuditRecord.d.ts +83 -2
  220. package/dist/records-v2/UgRetroAuditRecord.js +124 -0
  221. package/dist/records-v2/UserRecord.d.ts +400 -0
  222. package/dist/records-v2/UserRecord.js +663 -0
  223. package/dist/records-v2/VisitRecord.d.ts +121 -0
  224. package/dist/records-v2/VisitRecord.js +202 -0
  225. package/dist/records-v2/VoiceConfigurationRecord.d.ts +21 -0
  226. package/dist/records-v2/VoiceConfigurationRecord.js +37 -0
  227. package/dist/records-v2/WayleaveAuditRecord.d.ts +83 -2
  228. package/dist/records-v2/WayleaveAuditRecord.js +124 -0
  229. package/dist/records-v2/WorkOrderRecord.d.ts +1226 -2
  230. package/dist/records-v2/WorkOrderRecord.js +1865 -0
  231. package/dist/records-v2/WorkOrderStatusUpdateRecord.d.ts +75 -2
  232. package/dist/records-v2/WorkOrderStatusUpdateRecord.js +90 -0
  233. package/dist/records-v2/YfFieldServiceVisitRecord.d.ts +83 -2
  234. package/dist/records-v2/YfFieldServiceVisitRecord.js +124 -0
  235. package/dist/records-v2/YfStockAuditRecord.d.ts +103 -2
  236. package/dist/records-v2/YfStockAuditRecord.js +157 -0
  237. package/dist/records-v2/index.d.ts +1 -1
  238. package/dist/records-v2/index.js +5 -5
  239. package/package.json +1 -1
@@ -14,6 +14,8 @@
14
14
  * await record.createRemediationRequiredReason({ ... }).execute();
15
15
  * ```
16
16
  *
17
+ * Entity Types: OUTCOME_FORM
18
+ *
17
19
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
18
20
  */
19
21
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -29,6 +31,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isRemediationRequiredReasonRecord = exports.RemediationRequiredReasonRecord = void 0;
30
32
  const uuid_1 = require("uuid");
31
33
  const core_1 = require("@d19n/odin-types/dist/core");
34
+ const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
35
+ const NoteRecord_1 = require("./NoteRecord");
36
+ const FileRecord_1 = require("./FileRecord");
37
+ const WorkOrderRecord_1 = require("./WorkOrderRecord");
38
+ const PermissionToFailRecord_1 = require("./PermissionToFailRecord");
32
39
  /**
33
40
  * Builder for action execution with dryRun support
34
41
  *
@@ -140,6 +147,145 @@ class RemediationRequiredReasonRecord {
140
147
  /** Access the underlying OdinRecord (null for new records) */
141
148
  get record() { return this._record; }
142
149
  // ============================================
150
+ // TYPE GUARDS (with TypeScript type predicates)
151
+ // ============================================
152
+ /**
153
+ * Type guard: check if this record is of type OUTCOME_FORM
154
+ *
155
+ * When this returns true, TypeScript automatically narrows the type,
156
+ * giving you access to OUTCOME_FORM-specific properties.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * if (record.isOutcomeForm()) {
161
+ * // TypeScript knows record.properties is OutcomeFormRemediationRequiredReasonProperties
162
+ * console.log(record.properties.SomeTypeSpecificField);
163
+ * }
164
+ * ```
165
+ * @remarks outcome form
166
+ */
167
+ isOutcomeForm() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTCOME_FORM'; }
168
+ /**
169
+ * Access linked Note records
170
+ * @remarks Available labels: RemediationRequiredReason__Note
171
+ * @throws Error if called on a new (unsaved) record
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * // Get all linked Note records
176
+ * const items = await record.notes.list();
177
+ * const first = await record.notes.first();
178
+ *
179
+ * // Filter by label
180
+ * const specific = await record.notes.first({ label: 'RemediationRequiredReason__Note' });
181
+ * ```
182
+ */
183
+ get notes() {
184
+ var _a;
185
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
186
+ throw new Error('Cannot access links on a new (unsaved) record');
187
+ if (!this._notes) {
188
+ this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
189
+ sourceEntity: 'FieldServiceModule:RemediationRequiredReason',
190
+ targetEntity: 'SupportModule:Note',
191
+ targetModuleName: 'SupportModule',
192
+ targetEntityName: 'Note',
193
+ labels: ['RemediationRequiredReason__Note'],
194
+ }, NoteRecord_1.NoteRecord);
195
+ }
196
+ return this._notes;
197
+ }
198
+ /**
199
+ * Access linked File records
200
+ * @remarks Available labels: RemediationRequiredReason__File
201
+ * @throws Error if called on a new (unsaved) record
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * // Get all linked File records
206
+ * const items = await record.files.list();
207
+ * const first = await record.files.first();
208
+ *
209
+ * // Filter by label
210
+ * const specific = await record.files.first({ label: 'RemediationRequiredReason__File' });
211
+ * ```
212
+ */
213
+ get files() {
214
+ var _a;
215
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
216
+ throw new Error('Cannot access links on a new (unsaved) record');
217
+ if (!this._files) {
218
+ this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
219
+ sourceEntity: 'FieldServiceModule:RemediationRequiredReason',
220
+ targetEntity: 'SchemaModule:File',
221
+ targetModuleName: 'SchemaModule',
222
+ targetEntityName: 'File',
223
+ labels: ['RemediationRequiredReason__File'],
224
+ }, FileRecord_1.FileRecord);
225
+ }
226
+ return this._files;
227
+ }
228
+ /**
229
+ * Access linked WorkOrder records
230
+ * @remarks Available labels: WorkOrder__RemediationRequiredReason
231
+ * @throws Error if called on a new (unsaved) record
232
+ *
233
+ * @example
234
+ * ```typescript
235
+ * // Get all linked WorkOrder records
236
+ * const items = await record.workOrders.list();
237
+ * const first = await record.workOrders.first();
238
+ *
239
+ * // Filter by label
240
+ * const specific = await record.workOrders.first({ label: 'WorkOrder__RemediationRequiredReason' });
241
+ * ```
242
+ */
243
+ get workOrders() {
244
+ var _a;
245
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
246
+ throw new Error('Cannot access links on a new (unsaved) record');
247
+ if (!this._workOrders) {
248
+ this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
249
+ sourceEntity: 'FieldServiceModule:RemediationRequiredReason',
250
+ targetEntity: 'FieldServiceModule:WorkOrder',
251
+ targetModuleName: 'FieldServiceModule',
252
+ targetEntityName: 'WorkOrder',
253
+ labels: ['WorkOrder__RemediationRequiredReason'],
254
+ }, WorkOrderRecord_1.WorkOrderRecord);
255
+ }
256
+ return this._workOrders;
257
+ }
258
+ /**
259
+ * Access linked PermissionToFail records
260
+ * @remarks Available labels: PermissionToFail__RemediationRequiredReason
261
+ * @throws Error if called on a new (unsaved) record
262
+ *
263
+ * @example
264
+ * ```typescript
265
+ * // Get all linked PermissionToFail records
266
+ * const items = await record.permissionToFails.list();
267
+ * const first = await record.permissionToFails.first();
268
+ *
269
+ * // Filter by label
270
+ * const specific = await record.permissionToFails.first({ label: 'PermissionToFail__RemediationRequiredReason' });
271
+ * ```
272
+ */
273
+ get permissionToFails() {
274
+ var _a;
275
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
276
+ throw new Error('Cannot access links on a new (unsaved) record');
277
+ if (!this._permissionToFails) {
278
+ this._permissionToFails = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
279
+ sourceEntity: 'FieldServiceModule:RemediationRequiredReason',
280
+ targetEntity: 'FieldServiceModule:PermissionToFail',
281
+ targetModuleName: 'FieldServiceModule',
282
+ targetEntityName: 'PermissionToFail',
283
+ labels: ['PermissionToFail__RemediationRequiredReason'],
284
+ }, PermissionToFailRecord_1.PermissionToFailRecord);
285
+ }
286
+ return this._permissionToFails;
287
+ }
288
+ // ============================================
143
289
  // LINK MANAGEMENT
144
290
  // ============================================
145
291
  /**
@@ -215,6 +361,17 @@ class RemediationRequiredReasonRecord {
215
361
  }
216
362
  }
217
363
  exports.RemediationRequiredReasonRecord = RemediationRequiredReasonRecord;
364
+ // ============================================
365
+ // TYPED LINK ACCESSORS
366
+ // ============================================
367
+ /** Valid labels for Note associations */
368
+ RemediationRequiredReasonRecord.notesLabels = ['RemediationRequiredReason__Note'];
369
+ /** Valid labels for File associations */
370
+ RemediationRequiredReasonRecord.filesLabels = ['RemediationRequiredReason__File'];
371
+ /** Valid labels for WorkOrder associations */
372
+ RemediationRequiredReasonRecord.workOrdersLabels = ['WorkOrder__RemediationRequiredReason'];
373
+ /** Valid labels for PermissionToFail associations */
374
+ RemediationRequiredReasonRecord.permissionToFailsLabels = ['PermissionToFail__RemediationRequiredReason'];
218
375
  /** Type guard to check if an object is a RemediationRequiredReasonRecord */
219
376
  function isRemediationRequiredReasonRecord(obj) {
220
377
  return obj instanceof RemediationRequiredReasonRecord;
@@ -13,16 +13,23 @@
13
13
  * await record.createReturns({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: DEFAULT
17
+ *
16
18
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
17
19
  */
18
20
  import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
19
21
  import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
20
22
  import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
21
23
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
22
25
  import { ReturnsProperties } from '../entities-v2/Returns';
23
26
  import { CreateNewReturnProperties } from '../actions-v2/CreateNewReturnDto';
24
27
  import { EditReturnProperties } from '../actions-v2/EditReturnDto';
25
28
  import { ReActionReturnCompletionProperties } from '../actions-v2/ReActionReturnCompletionDto';
29
+ import { WorkOrderRecord } from './WorkOrderRecord';
30
+ import { UserRecord } from './UserRecord';
31
+ /** Valid entity types for Returns */
32
+ export declare type ReturnsType = 'DEFAULT';
26
33
  /**
27
34
  * Builder for action execution with dryRun support
28
35
  *
@@ -86,6 +93,8 @@ export declare class ReturnsRecord<TProps = ReturnsProperties> {
86
93
  private _provider;
87
94
  private _pendingLinks;
88
95
  private _preGeneratedId;
96
+ private _workOrders?;
97
+ private _users?;
89
98
  /**
90
99
  * Create a record wrapper.
91
100
  * @param record - The underlying record, or null for create operations
@@ -98,7 +107,7 @@ export declare class ReturnsRecord<TProps = ReturnsProperties> {
98
107
  /** Record ID - always available (pre-generated for new records) */
99
108
  get id(): string;
100
109
  get entity(): string;
101
- get type(): string | undefined;
110
+ get type(): ReturnsType | undefined;
102
111
  /** Record properties - empty object for new (unsaved) records */
103
112
  get properties(): TProps;
104
113
  get title(): string | undefined;
@@ -111,6 +120,58 @@ export declare class ReturnsRecord<TProps = ReturnsProperties> {
111
120
  get groups(): string[];
112
121
  /** Access the underlying OdinRecord (null for new records) */
113
122
  get record(): OdinRecord<TProps> | null;
123
+ /**
124
+ * Type guard: check if this record is of type DEFAULT
125
+ *
126
+ * When this returns true, TypeScript automatically narrows the type,
127
+ * giving you access to DEFAULT-specific properties.
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * if (record.isDefault()) {
132
+ * // TypeScript knows record.properties is ReturnsProperties
133
+ * console.log(record.properties.SomeTypeSpecificField);
134
+ * }
135
+ * ```
136
+ * @remarks This is the default record type
137
+ */
138
+ isDefault(): this is ReturnsRecord<ReturnsProperties>;
139
+ /** Valid labels for WorkOrder associations */
140
+ static readonly workOrdersLabels: readonly ["Returns__WorkOrder"];
141
+ /**
142
+ * Access linked WorkOrder records
143
+ * @remarks Available labels: Returns__WorkOrder
144
+ * @throws Error if called on a new (unsaved) record
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * // Get all linked WorkOrder records
149
+ * const items = await record.workOrders.list();
150
+ * const first = await record.workOrders.first();
151
+ *
152
+ * // Filter by label
153
+ * const specific = await record.workOrders.first({ label: 'Returns__WorkOrder' });
154
+ * ```
155
+ */
156
+ get workOrders(): RecordLinkManager<WorkOrderRecord, typeof ReturnsRecord['workOrdersLabels'][number]>;
157
+ /** Valid labels for User associations */
158
+ static readonly usersLabels: readonly ["Returns__Inspected_By"];
159
+ /**
160
+ * Access linked User records
161
+ * @remarks Available labels: Returns__Inspected_By
162
+ * @throws Error if called on a new (unsaved) record
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // Get all linked User records
167
+ * const items = await record.users.list();
168
+ * const first = await record.users.first();
169
+ *
170
+ * // Filter by label
171
+ * const specific = await record.users.first({ label: 'Returns__Inspected_By' });
172
+ * ```
173
+ */
174
+ get users(): RecordLinkManager<UserRecord, typeof ReturnsRecord['usersLabels'][number]>;
114
175
  /**
115
176
  * Queue a link to be created with the next action.
116
177
  * Works for both create and update actions.
@@ -14,6 +14,8 @@
14
14
  * await record.createReturns({ ... }).execute();
15
15
  * ```
16
16
  *
17
+ * Entity Types: DEFAULT
18
+ *
17
19
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
18
20
  */
19
21
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -29,6 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isReturnsRecord = exports.ReturnsRecord = void 0;
30
32
  const uuid_1 = require("uuid");
31
33
  const core_1 = require("@d19n/odin-types/dist/core");
34
+ const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
35
+ const WorkOrderRecord_1 = require("./WorkOrderRecord");
36
+ const UserRecord_1 = require("./UserRecord");
32
37
  /**
33
38
  * Builder for action execution with dryRun support
34
39
  *
@@ -140,6 +145,85 @@ class ReturnsRecord {
140
145
  /** Access the underlying OdinRecord (null for new records) */
141
146
  get record() { return this._record; }
142
147
  // ============================================
148
+ // TYPE GUARDS (with TypeScript type predicates)
149
+ // ============================================
150
+ /**
151
+ * Type guard: check if this record is of type DEFAULT
152
+ *
153
+ * When this returns true, TypeScript automatically narrows the type,
154
+ * giving you access to DEFAULT-specific properties.
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * if (record.isDefault()) {
159
+ * // TypeScript knows record.properties is ReturnsProperties
160
+ * console.log(record.properties.SomeTypeSpecificField);
161
+ * }
162
+ * ```
163
+ * @remarks This is the default record type
164
+ */
165
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
166
+ /**
167
+ * Access linked WorkOrder records
168
+ * @remarks Available labels: Returns__WorkOrder
169
+ * @throws Error if called on a new (unsaved) record
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * // Get all linked WorkOrder records
174
+ * const items = await record.workOrders.list();
175
+ * const first = await record.workOrders.first();
176
+ *
177
+ * // Filter by label
178
+ * const specific = await record.workOrders.first({ label: 'Returns__WorkOrder' });
179
+ * ```
180
+ */
181
+ get workOrders() {
182
+ var _a;
183
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
184
+ throw new Error('Cannot access links on a new (unsaved) record');
185
+ if (!this._workOrders) {
186
+ this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
187
+ sourceEntity: 'FieldServiceModule:Returns',
188
+ targetEntity: 'FieldServiceModule:WorkOrder',
189
+ targetModuleName: 'FieldServiceModule',
190
+ targetEntityName: 'WorkOrder',
191
+ labels: ['Returns__WorkOrder'],
192
+ }, WorkOrderRecord_1.WorkOrderRecord);
193
+ }
194
+ return this._workOrders;
195
+ }
196
+ /**
197
+ * Access linked User records
198
+ * @remarks Available labels: Returns__Inspected_By
199
+ * @throws Error if called on a new (unsaved) record
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * // Get all linked User records
204
+ * const items = await record.users.list();
205
+ * const first = await record.users.first();
206
+ *
207
+ * // Filter by label
208
+ * const specific = await record.users.first({ label: 'Returns__Inspected_By' });
209
+ * ```
210
+ */
211
+ get users() {
212
+ var _a;
213
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
214
+ throw new Error('Cannot access links on a new (unsaved) record');
215
+ if (!this._users) {
216
+ this._users = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
217
+ sourceEntity: 'FieldServiceModule:Returns',
218
+ targetEntity: 'IdentityModule:User',
219
+ targetModuleName: 'IdentityModule',
220
+ targetEntityName: 'User',
221
+ labels: ['Returns__Inspected_By'],
222
+ }, UserRecord_1.UserRecord);
223
+ }
224
+ return this._users;
225
+ }
226
+ // ============================================
143
227
  // LINK MANAGEMENT
144
228
  // ============================================
145
229
  /**
@@ -292,6 +376,13 @@ class ReturnsRecord {
292
376
  }
293
377
  }
294
378
  exports.ReturnsRecord = ReturnsRecord;
379
+ // ============================================
380
+ // TYPED LINK ACCESSORS
381
+ // ============================================
382
+ /** Valid labels for WorkOrder associations */
383
+ ReturnsRecord.workOrdersLabels = ['Returns__WorkOrder'];
384
+ /** Valid labels for User associations */
385
+ ReturnsRecord.usersLabels = ['Returns__Inspected_By'];
295
386
  /** Type guard to check if an object is a ReturnsRecord */
296
387
  function isReturnsRecord(obj) {
297
388
  return obj instanceof ReturnsRecord;
@@ -13,16 +13,26 @@
13
13
  * await record.createReward({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: CASHBACK
17
+ *
16
18
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
17
19
  */
18
20
  import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
19
21
  import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
20
22
  import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
21
23
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
22
- import { RewardProperties } from '../entities-v2/Reward';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { RewardProperties, CashbackRewardProperties } from '../entities-v2/Reward';
23
26
  import { CreateCashbackRewardProperties } from '../actions-v2/CreateCashbackRewardDto';
24
27
  import { CreateCashbackRewardForOrderReferralProperties } from '../actions-v2/CreateCashbackRewardForOrderReferralDto';
25
28
  import { CreateCashbackRewardForOrderReferralBuilder } from '../actions-v2/CreateCashbackRewardForOrderReferralDto';
29
+ import { CampaignRecord } from './CampaignRecord';
30
+ import { ContactRecord } from './ContactRecord';
31
+ import { AffiliateCodeRecord } from './AffiliateCodeRecord';
32
+ import { PaymentMethodRefundRecord } from './PaymentMethodRefundRecord';
33
+ import { ReferralRecord } from './ReferralRecord';
34
+ /** Valid entity types for Reward */
35
+ export declare type RewardType = 'CASHBACK';
26
36
  /**
27
37
  * Builder for action execution with dryRun support
28
38
  *
@@ -86,6 +96,11 @@ export declare class RewardRecord<TProps = RewardProperties> {
86
96
  private _provider;
87
97
  private _pendingLinks;
88
98
  private _preGeneratedId;
99
+ private _campaigns?;
100
+ private _contacts?;
101
+ private _affiliateCodes?;
102
+ private _paymentMethodRefunds?;
103
+ private _referrals?;
89
104
  /**
90
105
  * Create a record wrapper.
91
106
  * @param record - The underlying record, or null for create operations
@@ -98,7 +113,7 @@ export declare class RewardRecord<TProps = RewardProperties> {
98
113
  /** Record ID - always available (pre-generated for new records) */
99
114
  get id(): string;
100
115
  get entity(): string;
101
- get type(): string | undefined;
116
+ get type(): RewardType | undefined;
102
117
  /** Record properties - empty object for new (unsaved) records */
103
118
  get properties(): TProps;
104
119
  get title(): string | undefined;
@@ -111,6 +126,112 @@ export declare class RewardRecord<TProps = RewardProperties> {
111
126
  get groups(): string[];
112
127
  /** Access the underlying OdinRecord (null for new records) */
113
128
  get record(): OdinRecord<TProps> | null;
129
+ /**
130
+ * Type guard: check if this record is of type CASHBACK
131
+ *
132
+ * When this returns true, TypeScript automatically narrows the type,
133
+ * giving you access to CASHBACK-specific properties.
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * if (record.isCashback()) {
138
+ * // TypeScript knows record.properties is CashbackRewardProperties
139
+ * console.log(record.properties.SomeTypeSpecificField);
140
+ * }
141
+ * ```
142
+ * @remarks Cashback reward
143
+ */
144
+ isCashback(): this is RewardRecord<CashbackRewardProperties>;
145
+ /** Valid labels for Campaign associations */
146
+ static readonly campaignsLabels: readonly ["CampaignRewards"];
147
+ /**
148
+ * Access linked Campaign records
149
+ * @remarks Available labels: CampaignRewards
150
+ * @throws Error if called on a new (unsaved) record
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * // Get all linked Campaign records
155
+ * const items = await record.campaigns.list();
156
+ * const first = await record.campaigns.first();
157
+ *
158
+ * // Filter by label
159
+ * const specific = await record.campaigns.first({ label: 'CampaignRewards' });
160
+ * ```
161
+ */
162
+ get campaigns(): RecordLinkManager<CampaignRecord, typeof RewardRecord['campaignsLabels'][number]>;
163
+ /** Valid labels for Contact associations */
164
+ static readonly contactsLabels: readonly ["ContactReward"];
165
+ /**
166
+ * Access linked Contact records
167
+ * @remarks Available labels: ContactReward
168
+ * @throws Error if called on a new (unsaved) record
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * // Get all linked Contact records
173
+ * const items = await record.contacts.list();
174
+ * const first = await record.contacts.first();
175
+ *
176
+ * // Filter by label
177
+ * const specific = await record.contacts.first({ label: 'ContactReward' });
178
+ * ```
179
+ */
180
+ get contacts(): RecordLinkManager<ContactRecord, typeof RewardRecord['contactsLabels'][number]>;
181
+ /** Valid labels for AffiliateCode associations */
182
+ static readonly affiliateCodesLabels: readonly ["AffiliateCodeRewards"];
183
+ /**
184
+ * Access linked AffiliateCode records
185
+ * @remarks Available labels: AffiliateCodeRewards
186
+ * @throws Error if called on a new (unsaved) record
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * // Get all linked AffiliateCode records
191
+ * const items = await record.affiliateCodes.list();
192
+ * const first = await record.affiliateCodes.first();
193
+ *
194
+ * // Filter by label
195
+ * const specific = await record.affiliateCodes.first({ label: 'AffiliateCodeRewards' });
196
+ * ```
197
+ */
198
+ get affiliateCodes(): RecordLinkManager<AffiliateCodeRecord, typeof RewardRecord['affiliateCodesLabels'][number]>;
199
+ /** Valid labels for PaymentMethodRefund associations */
200
+ static readonly paymentMethodRefundsLabels: readonly ["RewardPaymentMethodRefund"];
201
+ /**
202
+ * Access linked PaymentMethodRefund records
203
+ * @remarks Available labels: RewardPaymentMethodRefund
204
+ * @throws Error if called on a new (unsaved) record
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * // Get all linked PaymentMethodRefund records
209
+ * const items = await record.paymentMethodRefunds.list();
210
+ * const first = await record.paymentMethodRefunds.first();
211
+ *
212
+ * // Filter by label
213
+ * const specific = await record.paymentMethodRefunds.first({ label: 'RewardPaymentMethodRefund' });
214
+ * ```
215
+ */
216
+ get paymentMethodRefunds(): RecordLinkManager<PaymentMethodRefundRecord, typeof RewardRecord['paymentMethodRefundsLabels'][number]>;
217
+ /** Valid labels for Referral associations */
218
+ static readonly referralsLabels: readonly ["OrderReferralCashbackReward"];
219
+ /**
220
+ * Access linked Referral records
221
+ * @remarks Available labels: OrderReferralCashbackReward
222
+ * @throws Error if called on a new (unsaved) record
223
+ *
224
+ * @example
225
+ * ```typescript
226
+ * // Get all linked Referral records
227
+ * const items = await record.referrals.list();
228
+ * const first = await record.referrals.first();
229
+ *
230
+ * // Filter by label
231
+ * const specific = await record.referrals.first({ label: 'OrderReferralCashbackReward' });
232
+ * ```
233
+ */
234
+ get referrals(): RecordLinkManager<ReferralRecord, typeof RewardRecord['referralsLabels'][number]>;
114
235
  /**
115
236
  * Queue a link to be created with the next action.
116
237
  * Works for both create and update actions.