@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.createTransaction({ ... }).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,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isTransactionRecord = exports.TransactionRecord = 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 PaymentMethodRecord_1 = require("./PaymentMethodRecord");
36
+ const NoteRecord_1 = require("./NoteRecord");
37
+ const CreditNoteRecord_1 = require("./CreditNoteRecord");
38
+ const FileRecord_1 = require("./FileRecord");
39
+ const BillingRequestRecord_1 = require("./BillingRequestRecord");
40
+ const PaymentRecord_1 = require("./PaymentRecord");
41
+ const InvoiceRecord_1 = require("./InvoiceRecord");
32
42
  /**
33
43
  * Builder for action execution with dryRun support
34
44
  *
@@ -140,6 +150,265 @@ class TransactionRecord {
140
150
  /** Access the underlying OdinRecord (null for new records) */
141
151
  get record() { return this._record; }
142
152
  // ============================================
153
+ // TYPE GUARDS (with TypeScript type predicates)
154
+ // ============================================
155
+ /**
156
+ * Type guard: check if this record is of type DEFAULT
157
+ *
158
+ * When this returns true, TypeScript automatically narrows the type,
159
+ * giving you access to DEFAULT-specific properties.
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * if (record.isDefault()) {
164
+ * // TypeScript knows record.properties is TransactionProperties
165
+ * console.log(record.properties.SomeTypeSpecificField);
166
+ * }
167
+ * ```
168
+ * @remarks This is the default record type
169
+ */
170
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
171
+ /**
172
+ * Access linked PaymentMethod records
173
+ * @remarks Available labels: Transaction__PaymentMethod
174
+ * @throws Error if called on a new (unsaved) record
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * // Get all linked PaymentMethod records
179
+ * const items = await record.paymentMethods.list();
180
+ * const first = await record.paymentMethods.first();
181
+ *
182
+ * // Filter by label
183
+ * const specific = await record.paymentMethods.first({ label: 'Transaction__PaymentMethod' });
184
+ * ```
185
+ */
186
+ get paymentMethods() {
187
+ var _a;
188
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
189
+ throw new Error('Cannot access links on a new (unsaved) record');
190
+ if (!this._paymentMethods) {
191
+ this._paymentMethods = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
192
+ sourceEntity: 'BillingModule:Transaction',
193
+ targetEntity: 'BillingModule:PaymentMethod',
194
+ targetModuleName: 'BillingModule',
195
+ targetEntityName: 'PaymentMethod',
196
+ labels: ['Transaction__PaymentMethod'],
197
+ }, PaymentMethodRecord_1.PaymentMethodRecord);
198
+ }
199
+ return this._paymentMethods;
200
+ }
201
+ /**
202
+ * Access linked Transaction records
203
+ * @remarks Available labels: Transaction__Transaction
204
+ * @throws Error if called on a new (unsaved) record
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * // Get all linked Transaction records
209
+ * const items = await record.transactions.list();
210
+ * const first = await record.transactions.first();
211
+ *
212
+ * // Filter by label
213
+ * const specific = await record.transactions.first({ label: 'Transaction__Transaction' });
214
+ * ```
215
+ */
216
+ get transactions() {
217
+ var _a;
218
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
219
+ throw new Error('Cannot access links on a new (unsaved) record');
220
+ if (!this._transactions) {
221
+ this._transactions = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
222
+ sourceEntity: 'BillingModule:Transaction',
223
+ targetEntity: 'BillingModule:Transaction',
224
+ targetModuleName: 'BillingModule',
225
+ targetEntityName: 'Transaction',
226
+ labels: ['Transaction__Transaction'],
227
+ }, TransactionRecord);
228
+ }
229
+ return this._transactions;
230
+ }
231
+ /**
232
+ * Access linked Note records
233
+ * @remarks Available labels: Transaction__Note
234
+ * @throws Error if called on a new (unsaved) record
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * // Get all linked Note records
239
+ * const items = await record.notes.list();
240
+ * const first = await record.notes.first();
241
+ *
242
+ * // Filter by label
243
+ * const specific = await record.notes.first({ label: 'Transaction__Note' });
244
+ * ```
245
+ */
246
+ get notes() {
247
+ var _a;
248
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
249
+ throw new Error('Cannot access links on a new (unsaved) record');
250
+ if (!this._notes) {
251
+ this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
252
+ sourceEntity: 'BillingModule:Transaction',
253
+ targetEntity: 'SupportModule:Note',
254
+ targetModuleName: 'SupportModule',
255
+ targetEntityName: 'Note',
256
+ labels: ['Transaction__Note'],
257
+ }, NoteRecord_1.NoteRecord);
258
+ }
259
+ return this._notes;
260
+ }
261
+ /**
262
+ * Access linked CreditNote records
263
+ * @remarks Available labels: CreditNote__Transaction
264
+ * @throws Error if called on a new (unsaved) record
265
+ *
266
+ * @example
267
+ * ```typescript
268
+ * // Get all linked CreditNote records
269
+ * const items = await record.creditNotes.list();
270
+ * const first = await record.creditNotes.first();
271
+ *
272
+ * // Filter by label
273
+ * const specific = await record.creditNotes.first({ label: 'CreditNote__Transaction' });
274
+ * ```
275
+ */
276
+ get creditNotes() {
277
+ var _a;
278
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
279
+ throw new Error('Cannot access links on a new (unsaved) record');
280
+ if (!this._creditNotes) {
281
+ this._creditNotes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
282
+ sourceEntity: 'BillingModule:Transaction',
283
+ targetEntity: 'BillingModule:CreditNote',
284
+ targetModuleName: 'BillingModule',
285
+ targetEntityName: 'CreditNote',
286
+ labels: ['CreditNote__Transaction'],
287
+ }, CreditNoteRecord_1.CreditNoteRecord);
288
+ }
289
+ return this._creditNotes;
290
+ }
291
+ /**
292
+ * Access linked File records
293
+ * @remarks Available labels: Transaction__File
294
+ * @throws Error if called on a new (unsaved) record
295
+ *
296
+ * @example
297
+ * ```typescript
298
+ * // Get all linked File records
299
+ * const items = await record.files.list();
300
+ * const first = await record.files.first();
301
+ *
302
+ * // Filter by label
303
+ * const specific = await record.files.first({ label: 'Transaction__File' });
304
+ * ```
305
+ */
306
+ get files() {
307
+ var _a;
308
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
309
+ throw new Error('Cannot access links on a new (unsaved) record');
310
+ if (!this._files) {
311
+ this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
312
+ sourceEntity: 'BillingModule:Transaction',
313
+ targetEntity: 'SchemaModule:File',
314
+ targetModuleName: 'SchemaModule',
315
+ targetEntityName: 'File',
316
+ labels: ['Transaction__File'],
317
+ }, FileRecord_1.FileRecord);
318
+ }
319
+ return this._files;
320
+ }
321
+ /**
322
+ * Access linked BillingRequest records
323
+ * @remarks Available labels: BillingRequest__Transaction
324
+ * @throws Error if called on a new (unsaved) record
325
+ *
326
+ * @example
327
+ * ```typescript
328
+ * // Get all linked BillingRequest records
329
+ * const items = await record.billingRequests.list();
330
+ * const first = await record.billingRequests.first();
331
+ *
332
+ * // Filter by label
333
+ * const specific = await record.billingRequests.first({ label: 'BillingRequest__Transaction' });
334
+ * ```
335
+ */
336
+ get billingRequests() {
337
+ var _a;
338
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
339
+ throw new Error('Cannot access links on a new (unsaved) record');
340
+ if (!this._billingRequests) {
341
+ this._billingRequests = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
342
+ sourceEntity: 'BillingModule:Transaction',
343
+ targetEntity: 'BillingModule:BillingRequest',
344
+ targetModuleName: 'BillingModule',
345
+ targetEntityName: 'BillingRequest',
346
+ labels: ['BillingRequest__Transaction'],
347
+ }, BillingRequestRecord_1.BillingRequestRecord);
348
+ }
349
+ return this._billingRequests;
350
+ }
351
+ /**
352
+ * Access linked Payment records
353
+ * @remarks Available labels: Payment_Transaction
354
+ * @throws Error if called on a new (unsaved) record
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * // Get all linked Payment records
359
+ * const items = await record.payments.list();
360
+ * const first = await record.payments.first();
361
+ *
362
+ * // Filter by label
363
+ * const specific = await record.payments.first({ label: 'Payment_Transaction' });
364
+ * ```
365
+ */
366
+ get payments() {
367
+ var _a;
368
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
369
+ throw new Error('Cannot access links on a new (unsaved) record');
370
+ if (!this._payments) {
371
+ this._payments = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
372
+ sourceEntity: 'BillingModule:Transaction',
373
+ targetEntity: 'BillingModule:Payment',
374
+ targetModuleName: 'BillingModule',
375
+ targetEntityName: 'Payment',
376
+ labels: ['Payment_Transaction'],
377
+ }, PaymentRecord_1.PaymentRecord);
378
+ }
379
+ return this._payments;
380
+ }
381
+ /**
382
+ * Access linked Invoice records
383
+ * @remarks Available labels: Invoice__Transaction
384
+ * @throws Error if called on a new (unsaved) record
385
+ *
386
+ * @example
387
+ * ```typescript
388
+ * // Get all linked Invoice records
389
+ * const items = await record.invoices.list();
390
+ * const first = await record.invoices.first();
391
+ *
392
+ * // Filter by label
393
+ * const specific = await record.invoices.first({ label: 'Invoice__Transaction' });
394
+ * ```
395
+ */
396
+ get invoices() {
397
+ var _a;
398
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
399
+ throw new Error('Cannot access links on a new (unsaved) record');
400
+ if (!this._invoices) {
401
+ this._invoices = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
402
+ sourceEntity: 'BillingModule:Transaction',
403
+ targetEntity: 'BillingModule:Invoice',
404
+ targetModuleName: 'BillingModule',
405
+ targetEntityName: 'Invoice',
406
+ labels: ['Invoice__Transaction'],
407
+ }, InvoiceRecord_1.InvoiceRecord);
408
+ }
409
+ return this._invoices;
410
+ }
411
+ // ============================================
143
412
  // LINK MANAGEMENT
144
413
  // ============================================
145
414
  /**
@@ -472,6 +741,25 @@ class TransactionRecord {
472
741
  }
473
742
  }
474
743
  exports.TransactionRecord = TransactionRecord;
744
+ // ============================================
745
+ // TYPED LINK ACCESSORS
746
+ // ============================================
747
+ /** Valid labels for PaymentMethod associations */
748
+ TransactionRecord.paymentMethodsLabels = ['Transaction__PaymentMethod'];
749
+ /** Valid labels for Transaction associations */
750
+ TransactionRecord.transactionsLabels = ['Transaction__Transaction'];
751
+ /** Valid labels for Note associations */
752
+ TransactionRecord.notesLabels = ['Transaction__Note'];
753
+ /** Valid labels for CreditNote associations */
754
+ TransactionRecord.creditNotesLabels = ['CreditNote__Transaction'];
755
+ /** Valid labels for File associations */
756
+ TransactionRecord.filesLabels = ['Transaction__File'];
757
+ /** Valid labels for BillingRequest associations */
758
+ TransactionRecord.billingRequestsLabels = ['BillingRequest__Transaction'];
759
+ /** Valid labels for Payment associations */
760
+ TransactionRecord.paymentsLabels = ['Payment_Transaction'];
761
+ /** Valid labels for Invoice associations */
762
+ TransactionRecord.invoicesLabels = ['Invoice__Transaction'];
475
763
  /** Type guard to check if an object is a TransactionRecord */
476
764
  function isTransactionRecord(obj) {
477
765
  return obj instanceof TransactionRecord;
@@ -13,14 +13,20 @@
13
13
  * await record.createTwilioUserUpdate({ ... }).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 { TwilioUserUpdateProperties } from '../entities-v2/TwilioUserUpdate';
23
26
  import { CreatetwiliouserupdateProperties } from '../actions-v2/CreatetwiliouserupdateDto';
27
+ import { UserRecord } from './UserRecord';
28
+ /** Valid entity types for TwilioUserUpdate */
29
+ export declare type TwilioUserUpdateType = 'DEFAULT';
24
30
  /**
25
31
  * Builder for action execution with dryRun support
26
32
  *
@@ -84,6 +90,7 @@ export declare class TwilioUserUpdateRecord<TProps = TwilioUserUpdateProperties>
84
90
  private _provider;
85
91
  private _pendingLinks;
86
92
  private _preGeneratedId;
93
+ private _users?;
87
94
  /**
88
95
  * Create a record wrapper.
89
96
  * @param record - The underlying record, or null for create operations
@@ -96,7 +103,7 @@ export declare class TwilioUserUpdateRecord<TProps = TwilioUserUpdateProperties>
96
103
  /** Record ID - always available (pre-generated for new records) */
97
104
  get id(): string;
98
105
  get entity(): string;
99
- get type(): string | undefined;
106
+ get type(): TwilioUserUpdateType | undefined;
100
107
  /** Record properties - empty object for new (unsaved) records */
101
108
  get properties(): TProps;
102
109
  get title(): string | undefined;
@@ -109,6 +116,40 @@ export declare class TwilioUserUpdateRecord<TProps = TwilioUserUpdateProperties>
109
116
  get groups(): string[];
110
117
  /** Access the underlying OdinRecord (null for new records) */
111
118
  get record(): OdinRecord<TProps> | null;
119
+ /**
120
+ * Type guard: check if this record is of type DEFAULT
121
+ *
122
+ * When this returns true, TypeScript automatically narrows the type,
123
+ * giving you access to DEFAULT-specific properties.
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * if (record.isDefault()) {
128
+ * // TypeScript knows record.properties is TwilioUserUpdateProperties
129
+ * console.log(record.properties.SomeTypeSpecificField);
130
+ * }
131
+ * ```
132
+ * @remarks This is the default record type
133
+ */
134
+ isDefault(): this is TwilioUserUpdateRecord<TwilioUserUpdateProperties>;
135
+ /** Valid labels for User associations */
136
+ static readonly usersLabels: readonly ["TwilioUserUpdate"];
137
+ /**
138
+ * Access linked User records
139
+ * @remarks Available labels: TwilioUserUpdate
140
+ * @throws Error if called on a new (unsaved) record
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // Get all linked User records
145
+ * const items = await record.users.list();
146
+ * const first = await record.users.first();
147
+ *
148
+ * // Filter by label
149
+ * const specific = await record.users.first({ label: 'TwilioUserUpdate' });
150
+ * ```
151
+ */
152
+ get users(): RecordLinkManager<UserRecord, typeof TwilioUserUpdateRecord['usersLabels'][number]>;
112
153
  /**
113
154
  * Queue a link to be created with the next action.
114
155
  * Works for both create and update actions.
@@ -14,6 +14,8 @@
14
14
  * await record.createTwilioUserUpdate({ ... }).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,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isTwilioUserUpdateRecord = exports.TwilioUserUpdateRecord = 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 UserRecord_1 = require("./UserRecord");
32
36
  /**
33
37
  * Builder for action execution with dryRun support
34
38
  *
@@ -140,6 +144,55 @@ class TwilioUserUpdateRecord {
140
144
  /** Access the underlying OdinRecord (null for new records) */
141
145
  get record() { return this._record; }
142
146
  // ============================================
147
+ // TYPE GUARDS (with TypeScript type predicates)
148
+ // ============================================
149
+ /**
150
+ * Type guard: check if this record is of type DEFAULT
151
+ *
152
+ * When this returns true, TypeScript automatically narrows the type,
153
+ * giving you access to DEFAULT-specific properties.
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * if (record.isDefault()) {
158
+ * // TypeScript knows record.properties is TwilioUserUpdateProperties
159
+ * console.log(record.properties.SomeTypeSpecificField);
160
+ * }
161
+ * ```
162
+ * @remarks This is the default record type
163
+ */
164
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
165
+ /**
166
+ * Access linked User records
167
+ * @remarks Available labels: TwilioUserUpdate
168
+ * @throws Error if called on a new (unsaved) record
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * // Get all linked User records
173
+ * const items = await record.users.list();
174
+ * const first = await record.users.first();
175
+ *
176
+ * // Filter by label
177
+ * const specific = await record.users.first({ label: 'TwilioUserUpdate' });
178
+ * ```
179
+ */
180
+ get users() {
181
+ var _a;
182
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
183
+ throw new Error('Cannot access links on a new (unsaved) record');
184
+ if (!this._users) {
185
+ this._users = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
186
+ sourceEntity: 'NotificationModule:TwilioUserUpdate',
187
+ targetEntity: 'IdentityModule:User',
188
+ targetModuleName: 'IdentityModule',
189
+ targetEntityName: 'User',
190
+ labels: ['TwilioUserUpdate'],
191
+ }, UserRecord_1.UserRecord);
192
+ }
193
+ return this._users;
194
+ }
195
+ // ============================================
143
196
  // LINK MANAGEMENT
144
197
  // ============================================
145
198
  /**
@@ -215,6 +268,11 @@ class TwilioUserUpdateRecord {
215
268
  }
216
269
  }
217
270
  exports.TwilioUserUpdateRecord = TwilioUserUpdateRecord;
271
+ // ============================================
272
+ // TYPED LINK ACCESSORS
273
+ // ============================================
274
+ /** Valid labels for User associations */
275
+ TwilioUserUpdateRecord.usersLabels = ['TwilioUserUpdate'];
218
276
  /** Type guard to check if an object is a TwilioUserUpdateRecord */
219
277
  function isTwilioUserUpdateRecord(obj) {
220
278
  return obj instanceof TwilioUserUpdateRecord;
@@ -13,13 +13,21 @@
13
13
  * await record.createUgAuditOfInstallation({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: OUTCOME_FORM
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 { UgAuditOfInstallationProperties } from '../entities-v2/UgAuditOfInstallation';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { UgAuditOfInstallationProperties, OutcomeFormUgAuditOfInstallationProperties } from '../entities-v2/UgAuditOfInstallation';
26
+ import { NoteRecord } from './NoteRecord';
27
+ import { WorkOrderRecord } from './WorkOrderRecord';
28
+ import { FileRecord } from './FileRecord';
29
+ /** Valid entity types for UgAuditOfInstallation */
30
+ export declare type UgAuditOfInstallationType = 'OUTCOME_FORM';
23
31
  /**
24
32
  * Builder for action execution with dryRun support
25
33
  *
@@ -83,6 +91,9 @@ export declare class UgAuditOfInstallationRecord<TProps = UgAuditOfInstallationP
83
91
  private _provider;
84
92
  private _pendingLinks;
85
93
  private _preGeneratedId;
94
+ private _notes?;
95
+ private _workOrders?;
96
+ private _files?;
86
97
  /**
87
98
  * Create a record wrapper.
88
99
  * @param record - The underlying record, or null for create operations
@@ -95,7 +106,7 @@ export declare class UgAuditOfInstallationRecord<TProps = UgAuditOfInstallationP
95
106
  /** Record ID - always available (pre-generated for new records) */
96
107
  get id(): string;
97
108
  get entity(): string;
98
- get type(): string | undefined;
109
+ get type(): UgAuditOfInstallationType | undefined;
99
110
  /** Record properties - empty object for new (unsaved) records */
100
111
  get properties(): TProps;
101
112
  get title(): string | undefined;
@@ -108,6 +119,76 @@ export declare class UgAuditOfInstallationRecord<TProps = UgAuditOfInstallationP
108
119
  get groups(): string[];
109
120
  /** Access the underlying OdinRecord (null for new records) */
110
121
  get record(): OdinRecord<TProps> | null;
122
+ /**
123
+ * Type guard: check if this record is of type OUTCOME_FORM
124
+ *
125
+ * When this returns true, TypeScript automatically narrows the type,
126
+ * giving you access to OUTCOME_FORM-specific properties.
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * if (record.isOutcomeForm()) {
131
+ * // TypeScript knows record.properties is OutcomeFormUgAuditOfInstallationProperties
132
+ * console.log(record.properties.SomeTypeSpecificField);
133
+ * }
134
+ * ```
135
+ * @remarks outcome form
136
+ */
137
+ isOutcomeForm(): this is UgAuditOfInstallationRecord<OutcomeFormUgAuditOfInstallationProperties>;
138
+ /** Valid labels for Note associations */
139
+ static readonly notesLabels: readonly ["UgAuditOfInstallation__Note"];
140
+ /**
141
+ * Access linked Note records
142
+ * @remarks Available labels: UgAuditOfInstallation__Note
143
+ * @throws Error if called on a new (unsaved) record
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * // Get all linked Note records
148
+ * const items = await record.notes.list();
149
+ * const first = await record.notes.first();
150
+ *
151
+ * // Filter by label
152
+ * const specific = await record.notes.first({ label: 'UgAuditOfInstallation__Note' });
153
+ * ```
154
+ */
155
+ get notes(): RecordLinkManager<NoteRecord, typeof UgAuditOfInstallationRecord['notesLabels'][number]>;
156
+ /** Valid labels for WorkOrder associations */
157
+ static readonly workOrdersLabels: readonly ["WorkOrder_UgAuditOfInstallation"];
158
+ /**
159
+ * Access linked WorkOrder records
160
+ * @remarks Available labels: WorkOrder_UgAuditOfInstallation
161
+ * @throws Error if called on a new (unsaved) record
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * // Get all linked WorkOrder records
166
+ * const items = await record.workOrders.list();
167
+ * const first = await record.workOrders.first();
168
+ *
169
+ * // Filter by label
170
+ * const specific = await record.workOrders.first({ label: 'WorkOrder_UgAuditOfInstallation' });
171
+ * ```
172
+ */
173
+ get workOrders(): RecordLinkManager<WorkOrderRecord, typeof UgAuditOfInstallationRecord['workOrdersLabels'][number]>;
174
+ /** Valid labels for File associations */
175
+ static readonly filesLabels: readonly ["UgAuditOfInstallation__File"];
176
+ /**
177
+ * Access linked File records
178
+ * @remarks Available labels: UgAuditOfInstallation__File
179
+ * @throws Error if called on a new (unsaved) record
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * // Get all linked File records
184
+ * const items = await record.files.list();
185
+ * const first = await record.files.first();
186
+ *
187
+ * // Filter by label
188
+ * const specific = await record.files.first({ label: 'UgAuditOfInstallation__File' });
189
+ * ```
190
+ */
191
+ get files(): RecordLinkManager<FileRecord, typeof UgAuditOfInstallationRecord['filesLabels'][number]>;
111
192
  /**
112
193
  * Queue a link to be created with the next action.
113
194
  * Works for both create and update actions.