@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.createSiteSpecificRiskAssessmentOutcomeForm({ ... }).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,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isSiteSpecificRiskAssessmentOutcomeFormRecord = exports.SiteSpecificRiskAssessmentOutcomeFormRecord = 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 WorkOrderRecord_1 = require("./WorkOrderRecord");
37
+ const FileRecord_1 = require("./FileRecord");
32
38
  /**
33
39
  * Builder for action execution with dryRun support
34
40
  *
@@ -140,6 +146,115 @@ class SiteSpecificRiskAssessmentOutcomeFormRecord {
140
146
  /** Access the underlying OdinRecord (null for new records) */
141
147
  get record() { return this._record; }
142
148
  // ============================================
149
+ // TYPE GUARDS (with TypeScript type predicates)
150
+ // ============================================
151
+ /**
152
+ * Type guard: check if this record is of type OUTCOME_FORM
153
+ *
154
+ * When this returns true, TypeScript automatically narrows the type,
155
+ * giving you access to OUTCOME_FORM-specific properties.
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * if (record.isOutcomeForm()) {
160
+ * // TypeScript knows record.properties is OutcomeFormSiteSpecificRiskAssessmentOutcomeFormProperties
161
+ * console.log(record.properties.SomeTypeSpecificField);
162
+ * }
163
+ * ```
164
+ * @remarks outcome form
165
+ */
166
+ isOutcomeForm() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTCOME_FORM'; }
167
+ /**
168
+ * Access linked Note records
169
+ * @remarks Available labels: SiteSpecificRiskAssessmentOutcomeForm__Note
170
+ * @throws Error if called on a new (unsaved) record
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * // Get all linked Note records
175
+ * const items = await record.notes.list();
176
+ * const first = await record.notes.first();
177
+ *
178
+ * // Filter by label
179
+ * const specific = await record.notes.first({ label: 'SiteSpecificRiskAssessmentOutcomeForm__Note' });
180
+ * ```
181
+ */
182
+ get notes() {
183
+ var _a;
184
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
185
+ throw new Error('Cannot access links on a new (unsaved) record');
186
+ if (!this._notes) {
187
+ this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
188
+ sourceEntity: 'FieldServiceModule:SiteSpecificRiskAssessmentOutcomeForm',
189
+ targetEntity: 'SupportModule:Note',
190
+ targetModuleName: 'SupportModule',
191
+ targetEntityName: 'Note',
192
+ labels: ['SiteSpecificRiskAssessmentOutcomeForm__Note'],
193
+ }, NoteRecord_1.NoteRecord);
194
+ }
195
+ return this._notes;
196
+ }
197
+ /**
198
+ * Access linked WorkOrder records
199
+ * @remarks Available labels: WorkOrder__SiteSpecificRiskAssessmentOutcomeForm
200
+ * @throws Error if called on a new (unsaved) record
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * // Get all linked WorkOrder records
205
+ * const items = await record.workOrders.list();
206
+ * const first = await record.workOrders.first();
207
+ *
208
+ * // Filter by label
209
+ * const specific = await record.workOrders.first({ label: 'WorkOrder__SiteSpecificRiskAssessmentOutcomeForm' });
210
+ * ```
211
+ */
212
+ get workOrders() {
213
+ var _a;
214
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
215
+ throw new Error('Cannot access links on a new (unsaved) record');
216
+ if (!this._workOrders) {
217
+ this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
218
+ sourceEntity: 'FieldServiceModule:SiteSpecificRiskAssessmentOutcomeForm',
219
+ targetEntity: 'FieldServiceModule:WorkOrder',
220
+ targetModuleName: 'FieldServiceModule',
221
+ targetEntityName: 'WorkOrder',
222
+ labels: ['WorkOrder__SiteSpecificRiskAssessmentOutcomeForm'],
223
+ }, WorkOrderRecord_1.WorkOrderRecord);
224
+ }
225
+ return this._workOrders;
226
+ }
227
+ /**
228
+ * Access linked File records
229
+ * @remarks Available labels: SiteSpecificRiskAssessmentOutcomeForm__File
230
+ * @throws Error if called on a new (unsaved) record
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * // Get all linked File records
235
+ * const items = await record.files.list();
236
+ * const first = await record.files.first();
237
+ *
238
+ * // Filter by label
239
+ * const specific = await record.files.first({ label: 'SiteSpecificRiskAssessmentOutcomeForm__File' });
240
+ * ```
241
+ */
242
+ get files() {
243
+ var _a;
244
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
245
+ throw new Error('Cannot access links on a new (unsaved) record');
246
+ if (!this._files) {
247
+ this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
248
+ sourceEntity: 'FieldServiceModule:SiteSpecificRiskAssessmentOutcomeForm',
249
+ targetEntity: 'SchemaModule:File',
250
+ targetModuleName: 'SchemaModule',
251
+ targetEntityName: 'File',
252
+ labels: ['SiteSpecificRiskAssessmentOutcomeForm__File'],
253
+ }, FileRecord_1.FileRecord);
254
+ }
255
+ return this._files;
256
+ }
257
+ // ============================================
143
258
  // LINK MANAGEMENT
144
259
  // ============================================
145
260
  /**
@@ -247,6 +362,15 @@ class SiteSpecificRiskAssessmentOutcomeFormRecord {
247
362
  }
248
363
  }
249
364
  exports.SiteSpecificRiskAssessmentOutcomeFormRecord = SiteSpecificRiskAssessmentOutcomeFormRecord;
365
+ // ============================================
366
+ // TYPED LINK ACCESSORS
367
+ // ============================================
368
+ /** Valid labels for Note associations */
369
+ SiteSpecificRiskAssessmentOutcomeFormRecord.notesLabels = ['SiteSpecificRiskAssessmentOutcomeForm__Note'];
370
+ /** Valid labels for WorkOrder associations */
371
+ SiteSpecificRiskAssessmentOutcomeFormRecord.workOrdersLabels = ['WorkOrder__SiteSpecificRiskAssessmentOutcomeForm'];
372
+ /** Valid labels for File associations */
373
+ SiteSpecificRiskAssessmentOutcomeFormRecord.filesLabels = ['SiteSpecificRiskAssessmentOutcomeForm__File'];
250
374
  /** Type guard to check if an object is a SiteSpecificRiskAssessmentOutcomeFormRecord */
251
375
  function isSiteSpecificRiskAssessmentOutcomeFormRecord(obj) {
252
376
  return obj instanceof SiteSpecificRiskAssessmentOutcomeFormRecord;
@@ -13,14 +13,25 @@
13
13
  * await record.createSmsMessage({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: DEFAULT, INBOUND, OUTBOUND
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 { SmsMessageProperties } from '../entities-v2/SmsMessage';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { SmsMessageProperties, InboundSmsMessageProperties, OutboundSmsMessageProperties } from '../entities-v2/SmsMessage';
23
26
  import { CreateOutboundSmsProperties } from '../actions-v2/CreateOutboundSmsDto';
27
+ import { CaseRecord } from './CaseRecord';
28
+ import { ContactRecord } from './ContactRecord';
29
+ import { NoteRecord } from './NoteRecord';
30
+ import { OrderRecord } from './OrderRecord';
31
+ import { WorkOrderRecord } from './WorkOrderRecord';
32
+ import { InvoiceRecord } from './InvoiceRecord';
33
+ /** Valid entity types for SmsMessage */
34
+ export declare type SmsMessageType = 'DEFAULT' | 'INBOUND' | 'OUTBOUND';
24
35
  /**
25
36
  * Builder for action execution with dryRun support
26
37
  *
@@ -84,6 +95,12 @@ export declare class SmsMessageRecord<TProps = SmsMessageProperties> {
84
95
  private _provider;
85
96
  private _pendingLinks;
86
97
  private _preGeneratedId;
98
+ private _cases?;
99
+ private _contacts?;
100
+ private _notes?;
101
+ private _orders?;
102
+ private _workOrders?;
103
+ private _invoices?;
87
104
  /**
88
105
  * Create a record wrapper.
89
106
  * @param record - The underlying record, or null for create operations
@@ -96,7 +113,7 @@ export declare class SmsMessageRecord<TProps = SmsMessageProperties> {
96
113
  /** Record ID - always available (pre-generated for new records) */
97
114
  get id(): string;
98
115
  get entity(): string;
99
- get type(): string | undefined;
116
+ get type(): SmsMessageType | undefined;
100
117
  /** Record properties - empty object for new (unsaved) records */
101
118
  get properties(): TProps;
102
119
  get title(): string | undefined;
@@ -109,6 +126,162 @@ export declare class SmsMessageRecord<TProps = SmsMessageProperties> {
109
126
  get groups(): string[];
110
127
  /** Access the underlying OdinRecord (null for new records) */
111
128
  get record(): OdinRecord<TProps> | null;
129
+ /**
130
+ * Type guard: check if this record is of type DEFAULT
131
+ *
132
+ * When this returns true, TypeScript automatically narrows the type,
133
+ * giving you access to DEFAULT-specific properties.
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * if (record.isDefault()) {
138
+ * // TypeScript knows record.properties is SmsMessageProperties
139
+ * console.log(record.properties.SomeTypeSpecificField);
140
+ * }
141
+ * ```
142
+ * @remarks This is the default record type
143
+ */
144
+ isDefault(): this is SmsMessageRecord<SmsMessageProperties>;
145
+ /**
146
+ * Type guard: check if this record is of type INBOUND
147
+ *
148
+ * When this returns true, TypeScript automatically narrows the type,
149
+ * giving you access to INBOUND-specific properties.
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * if (record.isInbound()) {
154
+ * // TypeScript knows record.properties is InboundSmsMessageProperties
155
+ * console.log(record.properties.SomeTypeSpecificField);
156
+ * }
157
+ * ```
158
+ * @remarks an inbound message
159
+ */
160
+ isInbound(): this is SmsMessageRecord<InboundSmsMessageProperties>;
161
+ /**
162
+ * Type guard: check if this record is of type OUTBOUND
163
+ *
164
+ * When this returns true, TypeScript automatically narrows the type,
165
+ * giving you access to OUTBOUND-specific properties.
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * if (record.isOutbound()) {
170
+ * // TypeScript knows record.properties is OutboundSmsMessageProperties
171
+ * console.log(record.properties.SomeTypeSpecificField);
172
+ * }
173
+ * ```
174
+ * @remarks Outbound message
175
+ */
176
+ isOutbound(): this is SmsMessageRecord<OutboundSmsMessageProperties>;
177
+ /** Valid labels for Case associations */
178
+ static readonly casesLabels: readonly ["Case__SmsMessage"];
179
+ /**
180
+ * Access linked Case records
181
+ * @remarks Available labels: Case__SmsMessage
182
+ * @throws Error if called on a new (unsaved) record
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * // Get all linked Case records
187
+ * const items = await record.cases.list();
188
+ * const first = await record.cases.first();
189
+ *
190
+ * // Filter by label
191
+ * const specific = await record.cases.first({ label: 'Case__SmsMessage' });
192
+ * ```
193
+ */
194
+ get cases(): RecordLinkManager<CaseRecord, typeof SmsMessageRecord['casesLabels'][number]>;
195
+ /** Valid labels for Contact associations */
196
+ static readonly contactsLabels: readonly ["Contact__SmsMessage"];
197
+ /**
198
+ * Access linked Contact records
199
+ * @remarks Available labels: Contact__SmsMessage
200
+ * @throws Error if called on a new (unsaved) record
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * // Get all linked Contact records
205
+ * const items = await record.contacts.list();
206
+ * const first = await record.contacts.first();
207
+ *
208
+ * // Filter by label
209
+ * const specific = await record.contacts.first({ label: 'Contact__SmsMessage' });
210
+ * ```
211
+ */
212
+ get contacts(): RecordLinkManager<ContactRecord, typeof SmsMessageRecord['contactsLabels'][number]>;
213
+ /** Valid labels for Note associations */
214
+ static readonly notesLabels: readonly ["SmsMessage__Note"];
215
+ /**
216
+ * Access linked Note records
217
+ * @remarks Available labels: SmsMessage__Note
218
+ * @throws Error if called on a new (unsaved) record
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * // Get all linked Note records
223
+ * const items = await record.notes.list();
224
+ * const first = await record.notes.first();
225
+ *
226
+ * // Filter by label
227
+ * const specific = await record.notes.first({ label: 'SmsMessage__Note' });
228
+ * ```
229
+ */
230
+ get notes(): RecordLinkManager<NoteRecord, typeof SmsMessageRecord['notesLabels'][number]>;
231
+ /** Valid labels for Order associations */
232
+ static readonly ordersLabels: readonly ["Order__SmsMessage"];
233
+ /**
234
+ * Access linked Order records
235
+ * @remarks Available labels: Order__SmsMessage
236
+ * @throws Error if called on a new (unsaved) record
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * // Get all linked Order records
241
+ * const items = await record.orders.list();
242
+ * const first = await record.orders.first();
243
+ *
244
+ * // Filter by label
245
+ * const specific = await record.orders.first({ label: 'Order__SmsMessage' });
246
+ * ```
247
+ */
248
+ get orders(): RecordLinkManager<OrderRecord, typeof SmsMessageRecord['ordersLabels'][number]>;
249
+ /** Valid labels for WorkOrder associations */
250
+ static readonly workOrdersLabels: readonly ["WorkOrder__SmsMessage"];
251
+ /**
252
+ * Access linked WorkOrder records
253
+ * @remarks Available labels: WorkOrder__SmsMessage
254
+ * @throws Error if called on a new (unsaved) record
255
+ *
256
+ * @example
257
+ * ```typescript
258
+ * // Get all linked WorkOrder records
259
+ * const items = await record.workOrders.list();
260
+ * const first = await record.workOrders.first();
261
+ *
262
+ * // Filter by label
263
+ * const specific = await record.workOrders.first({ label: 'WorkOrder__SmsMessage' });
264
+ * ```
265
+ */
266
+ get workOrders(): RecordLinkManager<WorkOrderRecord, typeof SmsMessageRecord['workOrdersLabels'][number]>;
267
+ /** Valid labels for Invoice associations */
268
+ static readonly invoicesLabels: readonly ["Invoice__SmsMessage"];
269
+ /**
270
+ * Access linked Invoice records
271
+ * @remarks Available labels: Invoice__SmsMessage
272
+ * @throws Error if called on a new (unsaved) record
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * // Get all linked Invoice records
277
+ * const items = await record.invoices.list();
278
+ * const first = await record.invoices.first();
279
+ *
280
+ * // Filter by label
281
+ * const specific = await record.invoices.first({ label: 'Invoice__SmsMessage' });
282
+ * ```
283
+ */
284
+ get invoices(): RecordLinkManager<InvoiceRecord, typeof SmsMessageRecord['invoicesLabels'][number]>;
112
285
  /**
113
286
  * Queue a link to be created with the next action.
114
287
  * Works for both create and update actions.
@@ -14,6 +14,8 @@
14
14
  * await record.createSmsMessage({ ... }).execute();
15
15
  * ```
16
16
  *
17
+ * Entity Types: DEFAULT, INBOUND, OUTBOUND
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,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isSmsMessageRecord = exports.SmsMessageRecord = 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 CaseRecord_1 = require("./CaseRecord");
36
+ const ContactRecord_1 = require("./ContactRecord");
37
+ const NoteRecord_1 = require("./NoteRecord");
38
+ const OrderRecord_1 = require("./OrderRecord");
39
+ const WorkOrderRecord_1 = require("./WorkOrderRecord");
40
+ const InvoiceRecord_1 = require("./InvoiceRecord");
32
41
  /**
33
42
  * Builder for action execution with dryRun support
34
43
  *
@@ -140,6 +149,237 @@ class SmsMessageRecord {
140
149
  /** Access the underlying OdinRecord (null for new records) */
141
150
  get record() { return this._record; }
142
151
  // ============================================
152
+ // TYPE GUARDS (with TypeScript type predicates)
153
+ // ============================================
154
+ /**
155
+ * Type guard: check if this record is of type DEFAULT
156
+ *
157
+ * When this returns true, TypeScript automatically narrows the type,
158
+ * giving you access to DEFAULT-specific properties.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * if (record.isDefault()) {
163
+ * // TypeScript knows record.properties is SmsMessageProperties
164
+ * console.log(record.properties.SomeTypeSpecificField);
165
+ * }
166
+ * ```
167
+ * @remarks This is the default record type
168
+ */
169
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
170
+ /**
171
+ * Type guard: check if this record is of type INBOUND
172
+ *
173
+ * When this returns true, TypeScript automatically narrows the type,
174
+ * giving you access to INBOUND-specific properties.
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * if (record.isInbound()) {
179
+ * // TypeScript knows record.properties is InboundSmsMessageProperties
180
+ * console.log(record.properties.SomeTypeSpecificField);
181
+ * }
182
+ * ```
183
+ * @remarks an inbound message
184
+ */
185
+ isInbound() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'INBOUND'; }
186
+ /**
187
+ * Type guard: check if this record is of type OUTBOUND
188
+ *
189
+ * When this returns true, TypeScript automatically narrows the type,
190
+ * giving you access to OUTBOUND-specific properties.
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * if (record.isOutbound()) {
195
+ * // TypeScript knows record.properties is OutboundSmsMessageProperties
196
+ * console.log(record.properties.SomeTypeSpecificField);
197
+ * }
198
+ * ```
199
+ * @remarks Outbound message
200
+ */
201
+ isOutbound() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTBOUND'; }
202
+ /**
203
+ * Access linked Case records
204
+ * @remarks Available labels: Case__SmsMessage
205
+ * @throws Error if called on a new (unsaved) record
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * // Get all linked Case records
210
+ * const items = await record.cases.list();
211
+ * const first = await record.cases.first();
212
+ *
213
+ * // Filter by label
214
+ * const specific = await record.cases.first({ label: 'Case__SmsMessage' });
215
+ * ```
216
+ */
217
+ get cases() {
218
+ var _a;
219
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
220
+ throw new Error('Cannot access links on a new (unsaved) record');
221
+ if (!this._cases) {
222
+ this._cases = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
223
+ sourceEntity: 'NotificationModule:SmsMessage',
224
+ targetEntity: 'SupportModule:Case',
225
+ targetModuleName: 'SupportModule',
226
+ targetEntityName: 'Case',
227
+ labels: ['Case__SmsMessage'],
228
+ }, CaseRecord_1.CaseRecord);
229
+ }
230
+ return this._cases;
231
+ }
232
+ /**
233
+ * Access linked Contact records
234
+ * @remarks Available labels: Contact__SmsMessage
235
+ * @throws Error if called on a new (unsaved) record
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * // Get all linked Contact records
240
+ * const items = await record.contacts.list();
241
+ * const first = await record.contacts.first();
242
+ *
243
+ * // Filter by label
244
+ * const specific = await record.contacts.first({ label: 'Contact__SmsMessage' });
245
+ * ```
246
+ */
247
+ get contacts() {
248
+ var _a;
249
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
250
+ throw new Error('Cannot access links on a new (unsaved) record');
251
+ if (!this._contacts) {
252
+ this._contacts = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
253
+ sourceEntity: 'NotificationModule:SmsMessage',
254
+ targetEntity: 'CrmModule:Contact',
255
+ targetModuleName: 'CrmModule',
256
+ targetEntityName: 'Contact',
257
+ labels: ['Contact__SmsMessage'],
258
+ }, ContactRecord_1.ContactRecord);
259
+ }
260
+ return this._contacts;
261
+ }
262
+ /**
263
+ * Access linked Note records
264
+ * @remarks Available labels: SmsMessage__Note
265
+ * @throws Error if called on a new (unsaved) record
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * // Get all linked Note records
270
+ * const items = await record.notes.list();
271
+ * const first = await record.notes.first();
272
+ *
273
+ * // Filter by label
274
+ * const specific = await record.notes.first({ label: 'SmsMessage__Note' });
275
+ * ```
276
+ */
277
+ get notes() {
278
+ var _a;
279
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
280
+ throw new Error('Cannot access links on a new (unsaved) record');
281
+ if (!this._notes) {
282
+ this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
283
+ sourceEntity: 'NotificationModule:SmsMessage',
284
+ targetEntity: 'SupportModule:Note',
285
+ targetModuleName: 'SupportModule',
286
+ targetEntityName: 'Note',
287
+ labels: ['SmsMessage__Note'],
288
+ }, NoteRecord_1.NoteRecord);
289
+ }
290
+ return this._notes;
291
+ }
292
+ /**
293
+ * Access linked Order records
294
+ * @remarks Available labels: Order__SmsMessage
295
+ * @throws Error if called on a new (unsaved) record
296
+ *
297
+ * @example
298
+ * ```typescript
299
+ * // Get all linked Order records
300
+ * const items = await record.orders.list();
301
+ * const first = await record.orders.first();
302
+ *
303
+ * // Filter by label
304
+ * const specific = await record.orders.first({ label: 'Order__SmsMessage' });
305
+ * ```
306
+ */
307
+ get orders() {
308
+ var _a;
309
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
310
+ throw new Error('Cannot access links on a new (unsaved) record');
311
+ if (!this._orders) {
312
+ this._orders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
313
+ sourceEntity: 'NotificationModule:SmsMessage',
314
+ targetEntity: 'OrderModule:Order',
315
+ targetModuleName: 'OrderModule',
316
+ targetEntityName: 'Order',
317
+ labels: ['Order__SmsMessage'],
318
+ }, OrderRecord_1.OrderRecord);
319
+ }
320
+ return this._orders;
321
+ }
322
+ /**
323
+ * Access linked WorkOrder records
324
+ * @remarks Available labels: WorkOrder__SmsMessage
325
+ * @throws Error if called on a new (unsaved) record
326
+ *
327
+ * @example
328
+ * ```typescript
329
+ * // Get all linked WorkOrder records
330
+ * const items = await record.workOrders.list();
331
+ * const first = await record.workOrders.first();
332
+ *
333
+ * // Filter by label
334
+ * const specific = await record.workOrders.first({ label: 'WorkOrder__SmsMessage' });
335
+ * ```
336
+ */
337
+ get workOrders() {
338
+ var _a;
339
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
340
+ throw new Error('Cannot access links on a new (unsaved) record');
341
+ if (!this._workOrders) {
342
+ this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
343
+ sourceEntity: 'NotificationModule:SmsMessage',
344
+ targetEntity: 'FieldServiceModule:WorkOrder',
345
+ targetModuleName: 'FieldServiceModule',
346
+ targetEntityName: 'WorkOrder',
347
+ labels: ['WorkOrder__SmsMessage'],
348
+ }, WorkOrderRecord_1.WorkOrderRecord);
349
+ }
350
+ return this._workOrders;
351
+ }
352
+ /**
353
+ * Access linked Invoice records
354
+ * @remarks Available labels: Invoice__SmsMessage
355
+ * @throws Error if called on a new (unsaved) record
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * // Get all linked Invoice records
360
+ * const items = await record.invoices.list();
361
+ * const first = await record.invoices.first();
362
+ *
363
+ * // Filter by label
364
+ * const specific = await record.invoices.first({ label: 'Invoice__SmsMessage' });
365
+ * ```
366
+ */
367
+ get invoices() {
368
+ var _a;
369
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
370
+ throw new Error('Cannot access links on a new (unsaved) record');
371
+ if (!this._invoices) {
372
+ this._invoices = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
373
+ sourceEntity: 'NotificationModule:SmsMessage',
374
+ targetEntity: 'BillingModule:Invoice',
375
+ targetModuleName: 'BillingModule',
376
+ targetEntityName: 'Invoice',
377
+ labels: ['Invoice__SmsMessage'],
378
+ }, InvoiceRecord_1.InvoiceRecord);
379
+ }
380
+ return this._invoices;
381
+ }
382
+ // ============================================
143
383
  // LINK MANAGEMENT
144
384
  // ============================================
145
385
  /**
@@ -215,6 +455,21 @@ class SmsMessageRecord {
215
455
  }
216
456
  }
217
457
  exports.SmsMessageRecord = SmsMessageRecord;
458
+ // ============================================
459
+ // TYPED LINK ACCESSORS
460
+ // ============================================
461
+ /** Valid labels for Case associations */
462
+ SmsMessageRecord.casesLabels = ['Case__SmsMessage'];
463
+ /** Valid labels for Contact associations */
464
+ SmsMessageRecord.contactsLabels = ['Contact__SmsMessage'];
465
+ /** Valid labels for Note associations */
466
+ SmsMessageRecord.notesLabels = ['SmsMessage__Note'];
467
+ /** Valid labels for Order associations */
468
+ SmsMessageRecord.ordersLabels = ['Order__SmsMessage'];
469
+ /** Valid labels for WorkOrder associations */
470
+ SmsMessageRecord.workOrdersLabels = ['WorkOrder__SmsMessage'];
471
+ /** Valid labels for Invoice associations */
472
+ SmsMessageRecord.invoicesLabels = ['Invoice__SmsMessage'];
218
473
  /** Type guard to check if an object is a SmsMessageRecord */
219
474
  function isSmsMessageRecord(obj) {
220
475
  return obj instanceof SmsMessageRecord;