@d19n/youfibre-odin-sdk 1.0.331 → 1.0.332

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 (211) hide show
  1. package/dist/entities-v2/Email.d.ts +17 -0
  2. package/dist/entities-v2/Email.js +2 -0
  3. package/dist/records-v2/AccountRecord.d.ts +306 -2
  4. package/dist/records-v2/AccountRecord.js +451 -0
  5. package/dist/records-v2/ActivityLogRecord.d.ts +122 -1
  6. package/dist/records-v2/ActivityLogRecord.js +190 -0
  7. package/dist/records-v2/ActivityRecord.d.ts +255 -2
  8. package/dist/records-v2/ActivityRecord.js +387 -0
  9. package/dist/records-v2/AddressRecord.d.ts +321 -0
  10. package/dist/records-v2/AddressRecord.js +532 -0
  11. package/dist/records-v2/AffiliateCodeRecord.d.ts +102 -1
  12. package/dist/records-v2/AffiliateCodeRecord.js +157 -0
  13. package/dist/records-v2/AppointmentRecord.d.ts +141 -0
  14. package/dist/records-v2/AppointmentRecord.js +235 -0
  15. package/dist/records-v2/BillingAdjustmentRecord.d.ts +81 -0
  16. package/dist/records-v2/BillingAdjustmentRecord.js +136 -0
  17. package/dist/records-v2/BillingRequestRecord.d.ts +178 -2
  18. package/dist/records-v2/BillingRequestRecord.js +271 -0
  19. package/dist/records-v2/BlockageA55Record.d.ts +103 -2
  20. package/dist/records-v2/BlockageA55Record.js +157 -0
  21. package/dist/records-v2/CallEventRecord.d.ts +82 -1
  22. package/dist/records-v2/CallEventRecord.js +124 -0
  23. package/dist/records-v2/CallLegRecord.d.ts +82 -1
  24. package/dist/records-v2/CallLegRecord.js +124 -0
  25. package/dist/records-v2/CallRecord.d.ts +202 -1
  26. package/dist/records-v2/CallRecord.js +322 -0
  27. package/dist/records-v2/CallTransferRecord.d.ts +102 -1
  28. package/dist/records-v2/CallTransferRecord.js +157 -0
  29. package/dist/records-v2/CampaignRecord.d.ts +83 -2
  30. package/dist/records-v2/CampaignRecord.js +124 -0
  31. package/dist/records-v2/CaseRecord.d.ts +358 -2
  32. package/dist/records-v2/CaseRecord.js +568 -0
  33. package/dist/records-v2/ChangeReasonRecord.d.ts +171 -2
  34. package/dist/records-v2/ChangeReasonRecord.js +238 -0
  35. package/dist/records-v2/ChurnRequestRecord.d.ts +62 -1
  36. package/dist/records-v2/ChurnRequestRecord.js +91 -0
  37. package/dist/records-v2/ContactRecord.d.ts +460 -0
  38. package/dist/records-v2/ContactRecord.js +762 -0
  39. package/dist/records-v2/ContractBuyOutRecord.d.ts +162 -1
  40. package/dist/records-v2/ContractBuyOutRecord.js +256 -0
  41. package/dist/records-v2/ConversationRecord.d.ts +62 -1
  42. package/dist/records-v2/ConversationRecord.js +91 -0
  43. package/dist/records-v2/CreditNoteRecord.d.ts +81 -0
  44. package/dist/records-v2/CreditNoteRecord.js +136 -0
  45. package/dist/records-v2/CrmDatasetRecord.d.ts +191 -2
  46. package/dist/records-v2/CrmDatasetRecord.js +271 -0
  47. package/dist/records-v2/CustomerDeviceAtaRecord.d.ts +21 -0
  48. package/dist/records-v2/CustomerDeviceAtaRecord.js +37 -0
  49. package/dist/records-v2/CustomerDeviceOntRecord.d.ts +181 -0
  50. package/dist/records-v2/CustomerDeviceOntRecord.js +301 -0
  51. package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +141 -0
  52. package/dist/records-v2/CustomerDeviceRouterRecord.js +235 -0
  53. package/dist/records-v2/CustomerPhonePortingRecord.d.ts +21 -0
  54. package/dist/records-v2/CustomerPhonePortingRecord.js +37 -0
  55. package/dist/records-v2/DiscountRecord.d.ts +121 -0
  56. package/dist/records-v2/DiscountRecord.js +202 -0
  57. package/dist/records-v2/EmailRecord.d.ts +174 -2
  58. package/dist/records-v2/EmailRecord.js +254 -0
  59. package/dist/records-v2/EmailTemplateRecord.d.ts +21 -1
  60. package/dist/records-v2/EmailTemplateRecord.js +21 -0
  61. package/dist/records-v2/FieldServiceDispatchedProductRecord.d.ts +135 -2
  62. package/dist/records-v2/FieldServiceDispatchedProductRecord.js +189 -0
  63. package/dist/records-v2/FieldServiceProductRecord.d.ts +115 -2
  64. package/dist/records-v2/FieldServiceProductRecord.js +156 -0
  65. package/dist/records-v2/FileRecord.d.ts +1191 -2
  66. package/dist/records-v2/FileRecord.js +1869 -0
  67. package/dist/records-v2/ImpersonationTrackerRecord.d.ts +62 -1
  68. package/dist/records-v2/ImpersonationTrackerRecord.js +91 -0
  69. package/dist/records-v2/InternalInstallAuditRecord.d.ts +83 -2
  70. package/dist/records-v2/InternalInstallAuditRecord.js +124 -0
  71. package/dist/records-v2/InvoiceItemRecord.d.ts +40 -0
  72. package/dist/records-v2/InvoiceItemRecord.js +69 -0
  73. package/dist/records-v2/InvoiceRecord.d.ts +359 -2
  74. package/dist/records-v2/InvoiceRecord.js +569 -0
  75. package/dist/records-v2/KnowledgeArticleRecord.d.ts +98 -2
  76. package/dist/records-v2/KnowledgeArticleRecord.js +139 -0
  77. package/dist/records-v2/LeadRecord.d.ts +261 -0
  78. package/dist/records-v2/LeadRecord.js +433 -0
  79. package/dist/records-v2/MessageRecord.d.ts +79 -2
  80. package/dist/records-v2/MessageRecord.js +107 -0
  81. package/dist/records-v2/NetworkDeviceRecord.d.ts +43 -2
  82. package/dist/records-v2/NetworkDeviceRecord.js +58 -0
  83. package/dist/records-v2/NoteRecord.d.ts +1101 -1
  84. package/dist/records-v2/NoteRecord.js +1806 -0
  85. package/dist/records-v2/OfferRecord.d.ts +154 -2
  86. package/dist/records-v2/OfferRecord.js +221 -0
  87. package/dist/records-v2/OhAuditOfInstallationRecord.d.ts +83 -2
  88. package/dist/records-v2/OhAuditOfInstallationRecord.js +124 -0
  89. package/dist/records-v2/OhExternalAuditRecord.d.ts +83 -2
  90. package/dist/records-v2/OhExternalAuditRecord.js +124 -0
  91. package/dist/records-v2/OhInProgressAuditRecord.d.ts +83 -2
  92. package/dist/records-v2/OhInProgressAuditRecord.js +124 -0
  93. package/dist/records-v2/OhInstallationAuditRecord.d.ts +83 -2
  94. package/dist/records-v2/OhInstallationAuditRecord.js +124 -0
  95. package/dist/records-v2/OhRetroAuditRecord.d.ts +83 -2
  96. package/dist/records-v2/OhRetroAuditRecord.js +124 -0
  97. package/dist/records-v2/OneTouchSwitchRecord.d.ts +255 -2
  98. package/dist/records-v2/OneTouchSwitchRecord.js +387 -0
  99. package/dist/records-v2/OntReplacementApprovalRecord.d.ts +62 -1
  100. package/dist/records-v2/OntReplacementApprovalRecord.js +91 -0
  101. package/dist/records-v2/OrderCheckRecord.d.ts +21 -0
  102. package/dist/records-v2/OrderCheckRecord.js +37 -0
  103. package/dist/records-v2/OrderItemRecord.d.ts +280 -0
  104. package/dist/records-v2/OrderItemRecord.js +465 -0
  105. package/dist/records-v2/OrderRecord.d.ts +540 -0
  106. package/dist/records-v2/OrderRecord.js +894 -0
  107. package/dist/records-v2/OutageRecord.d.ts +42 -1
  108. package/dist/records-v2/OutageRecord.js +58 -0
  109. package/dist/records-v2/OverlayRealA55Record.d.ts +83 -2
  110. package/dist/records-v2/OverlayRealA55Record.js +124 -0
  111. package/dist/records-v2/PICRequestRecord.d.ts +62 -1
  112. package/dist/records-v2/PICRequestRecord.js +91 -0
  113. package/dist/records-v2/PaymentMethodRecord.d.ts +121 -0
  114. package/dist/records-v2/PaymentMethodRecord.js +202 -0
  115. package/dist/records-v2/PaymentMethodRefundRecord.d.ts +181 -0
  116. package/dist/records-v2/PaymentMethodRefundRecord.js +301 -0
  117. package/dist/records-v2/PaymentRecord.d.ts +82 -1
  118. package/dist/records-v2/PaymentRecord.js +124 -0
  119. package/dist/records-v2/PermissionToFailRecord.d.ts +61 -0
  120. package/dist/records-v2/PermissionToFailRecord.js +103 -0
  121. package/dist/records-v2/PgAccountValidationRecord.d.ts +21 -1
  122. package/dist/records-v2/PgAccountValidationRecord.js +21 -0
  123. package/dist/records-v2/PgContactRecord.d.ts +62 -1
  124. package/dist/records-v2/PgContactRecord.js +91 -0
  125. package/dist/records-v2/PgDirectDebitFileRecord.d.ts +95 -2
  126. package/dist/records-v2/PgDirectDebitFileRecord.js +123 -0
  127. package/dist/records-v2/PgDisputeRecord.d.ts +62 -1
  128. package/dist/records-v2/PgDisputeRecord.js +91 -0
  129. package/dist/records-v2/PgFileAllocationRecord.d.ts +115 -2
  130. package/dist/records-v2/PgFileAllocationRecord.js +156 -0
  131. package/dist/records-v2/PgLogRecord.d.ts +21 -1
  132. package/dist/records-v2/PgLogRecord.js +21 -0
  133. package/dist/records-v2/PgPaymentMethodRecord.d.ts +102 -1
  134. package/dist/records-v2/PgPaymentMethodRecord.js +157 -0
  135. package/dist/records-v2/PgSortCodeSubstitutionRecord.d.ts +21 -1
  136. package/dist/records-v2/PgSortCodeSubstitutionRecord.js +21 -0
  137. package/dist/records-v2/PgTransactionRecord.d.ts +135 -2
  138. package/dist/records-v2/PgTransactionRecord.js +189 -0
  139. package/dist/records-v2/PgVocalinkRecord.d.ts +21 -1
  140. package/dist/records-v2/PgVocalinkRecord.js +21 -0
  141. package/dist/records-v2/PgWebhookAttemptRecord.d.ts +42 -1
  142. package/dist/records-v2/PgWebhookAttemptRecord.js +58 -0
  143. package/dist/records-v2/PgWebhookRecord.d.ts +122 -1
  144. package/dist/records-v2/PgWebhookRecord.js +190 -0
  145. package/dist/records-v2/PriceBookRecord.d.ts +21 -0
  146. package/dist/records-v2/PriceBookRecord.js +37 -0
  147. package/dist/records-v2/ProductRecord.d.ts +242 -2
  148. package/dist/records-v2/ProductRecord.js +335 -0
  149. package/dist/records-v2/PushNotificationRecord.d.ts +42 -1
  150. package/dist/records-v2/PushNotificationRecord.js +58 -0
  151. package/dist/records-v2/ReferralRecord.d.ts +103 -2
  152. package/dist/records-v2/ReferralRecord.js +157 -0
  153. package/dist/records-v2/RemediationOutcomeFormRecord.d.ts +83 -2
  154. package/dist/records-v2/RemediationOutcomeFormRecord.js +124 -0
  155. package/dist/records-v2/RemediationRequiredReasonRecord.d.ts +103 -2
  156. package/dist/records-v2/RemediationRequiredReasonRecord.js +157 -0
  157. package/dist/records-v2/ReturnsRecord.d.ts +62 -1
  158. package/dist/records-v2/ReturnsRecord.js +91 -0
  159. package/dist/records-v2/RewardRecord.d.ts +103 -2
  160. package/dist/records-v2/RewardRecord.js +157 -0
  161. package/dist/records-v2/SalesTerritoryRecord.d.ts +79 -2
  162. package/dist/records-v2/SalesTerritoryRecord.js +107 -0
  163. package/dist/records-v2/ScheduleSlotRecord.d.ts +42 -1
  164. package/dist/records-v2/ScheduleSlotRecord.js +58 -0
  165. package/dist/records-v2/ServiceAppointmentConfigRecord.d.ts +287 -2
  166. package/dist/records-v2/ServiceAppointmentConfigRecord.js +367 -0
  167. package/dist/records-v2/ServiceAppointmentRecord.d.ts +81 -0
  168. package/dist/records-v2/ServiceAppointmentRecord.js +136 -0
  169. package/dist/records-v2/ServiceRecord.d.ts +40 -0
  170. package/dist/records-v2/ServiceRecord.js +69 -0
  171. package/dist/records-v2/ServiceVisitAuditRecord.d.ts +83 -2
  172. package/dist/records-v2/ServiceVisitAuditRecord.js +124 -0
  173. package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.d.ts +83 -2
  174. package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.js +124 -0
  175. package/dist/records-v2/SweeperMaintenanceAuditRecord.d.ts +83 -2
  176. package/dist/records-v2/SweeperMaintenanceAuditRecord.js +124 -0
  177. package/dist/records-v2/TeamRecord.d.ts +81 -0
  178. package/dist/records-v2/TeamRecord.js +136 -0
  179. package/dist/records-v2/TimeSlotRecord.d.ts +21 -0
  180. package/dist/records-v2/TimeSlotRecord.js +37 -0
  181. package/dist/records-v2/TransactionRecord.d.ts +181 -1
  182. package/dist/records-v2/TransactionRecord.js +288 -0
  183. package/dist/records-v2/TwilioUserUpdateRecord.d.ts +42 -1
  184. package/dist/records-v2/TwilioUserUpdateRecord.js +58 -0
  185. package/dist/records-v2/UgAuditOfInstallationRecord.d.ts +83 -2
  186. package/dist/records-v2/UgAuditOfInstallationRecord.js +124 -0
  187. package/dist/records-v2/UgExternalAuditRecord.d.ts +83 -2
  188. package/dist/records-v2/UgExternalAuditRecord.js +124 -0
  189. package/dist/records-v2/UgInProgressAuditRecord.d.ts +83 -2
  190. package/dist/records-v2/UgInProgressAuditRecord.js +124 -0
  191. package/dist/records-v2/UgInstallationAuditRecord.d.ts +83 -2
  192. package/dist/records-v2/UgInstallationAuditRecord.js +124 -0
  193. package/dist/records-v2/UgRetroAuditRecord.d.ts +83 -2
  194. package/dist/records-v2/UgRetroAuditRecord.js +124 -0
  195. package/dist/records-v2/UserRecord.d.ts +360 -0
  196. package/dist/records-v2/UserRecord.js +597 -0
  197. package/dist/records-v2/VisitRecord.d.ts +121 -0
  198. package/dist/records-v2/VisitRecord.js +202 -0
  199. package/dist/records-v2/VoiceConfigurationRecord.d.ts +21 -0
  200. package/dist/records-v2/VoiceConfigurationRecord.js +37 -0
  201. package/dist/records-v2/WayleaveAuditRecord.d.ts +83 -2
  202. package/dist/records-v2/WayleaveAuditRecord.js +124 -0
  203. package/dist/records-v2/WorkOrderRecord.d.ts +1206 -2
  204. package/dist/records-v2/WorkOrderRecord.js +1832 -0
  205. package/dist/records-v2/WorkOrderStatusUpdateRecord.d.ts +75 -2
  206. package/dist/records-v2/WorkOrderStatusUpdateRecord.js +90 -0
  207. package/dist/records-v2/YfFieldServiceVisitRecord.d.ts +83 -2
  208. package/dist/records-v2/YfFieldServiceVisitRecord.js +124 -0
  209. package/dist/records-v2/YfStockAuditRecord.d.ts +83 -2
  210. package/dist/records-v2/YfStockAuditRecord.js +124 -0
  211. package/package.json +1 -1
@@ -14,6 +14,8 @@
14
14
  * await record.createActivityLog({ ... }).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,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
31
  exports.isActivityLogRecord = exports.ActivityLogRecord = 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 OrderRecord_1 = require("./OrderRecord");
36
+ const CaseRecord_1 = require("./CaseRecord");
37
+ const OneTouchSwitchRecord_1 = require("./OneTouchSwitchRecord");
38
+ const CallRecord_1 = require("./CallRecord");
39
+ const WorkOrderRecord_1 = require("./WorkOrderRecord");
32
40
  /**
33
41
  * Builder for action execution with dryRun support
34
42
  *
@@ -103,6 +111,175 @@ class ActivityLogRecord {
103
111
  /** Access the underlying OdinRecord (null for new records) */
104
112
  get record() { return this._record; }
105
113
  // ============================================
114
+ // TYPE GUARDS (with TypeScript type predicates)
115
+ // ============================================
116
+ /**
117
+ * Type guard: check if this record is of type DEFAULT
118
+ *
119
+ * When this returns true, TypeScript automatically narrows the type,
120
+ * giving you access to DEFAULT-specific properties.
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * if (record.isDefault()) {
125
+ * // TypeScript knows record.properties is ActivityLogProperties
126
+ * console.log(record.properties.SomeTypeSpecificField);
127
+ * }
128
+ * ```
129
+ * @remarks This is the default record type
130
+ */
131
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
132
+ /**
133
+ * Access linked Order records
134
+ * @remarks Available labels: Order__ActivityLog
135
+ * @throws Error if called on a new (unsaved) record
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * // Get all linked Order records
140
+ * const items = await record.orders.list();
141
+ * const first = await record.orders.first();
142
+ *
143
+ * // Filter by label
144
+ * const specific = await record.orders.first({ label: 'Order__ActivityLog' });
145
+ * ```
146
+ */
147
+ get orders() {
148
+ var _a;
149
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
150
+ throw new Error('Cannot access links on a new (unsaved) record');
151
+ if (!this._orders) {
152
+ this._orders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
153
+ sourceEntity: 'AuditModule:ActivityLog',
154
+ targetEntity: 'OrderModule:Order',
155
+ targetModuleName: 'OrderModule',
156
+ targetEntityName: 'Order',
157
+ labels: ['Order__ActivityLog'],
158
+ }, OrderRecord_1.OrderRecord);
159
+ }
160
+ return this._orders;
161
+ }
162
+ /**
163
+ * Access linked Case records
164
+ * @remarks Available labels: Case__ActivityLog
165
+ * @throws Error if called on a new (unsaved) record
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * // Get all linked Case records
170
+ * const items = await record.cases.list();
171
+ * const first = await record.cases.first();
172
+ *
173
+ * // Filter by label
174
+ * const specific = await record.cases.first({ label: 'Case__ActivityLog' });
175
+ * ```
176
+ */
177
+ get cases() {
178
+ var _a;
179
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
180
+ throw new Error('Cannot access links on a new (unsaved) record');
181
+ if (!this._cases) {
182
+ this._cases = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
183
+ sourceEntity: 'AuditModule:ActivityLog',
184
+ targetEntity: 'SupportModule:Case',
185
+ targetModuleName: 'SupportModule',
186
+ targetEntityName: 'Case',
187
+ labels: ['Case__ActivityLog'],
188
+ }, CaseRecord_1.CaseRecord);
189
+ }
190
+ return this._cases;
191
+ }
192
+ /**
193
+ * Access linked OneTouchSwitch records
194
+ * @remarks Available labels: OneTouchSwitch_ActivityLog
195
+ * @throws Error if called on a new (unsaved) record
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * // Get all linked OneTouchSwitch records
200
+ * const items = await record.oneTouchSwitches.list();
201
+ * const first = await record.oneTouchSwitches.first();
202
+ *
203
+ * // Filter by label
204
+ * const specific = await record.oneTouchSwitches.first({ label: 'OneTouchSwitch_ActivityLog' });
205
+ * ```
206
+ */
207
+ get oneTouchSwitches() {
208
+ var _a;
209
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
210
+ throw new Error('Cannot access links on a new (unsaved) record');
211
+ if (!this._oneTouchSwitches) {
212
+ this._oneTouchSwitches = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
213
+ sourceEntity: 'AuditModule:ActivityLog',
214
+ targetEntity: 'OrderModule:OneTouchSwitch',
215
+ targetModuleName: 'OrderModule',
216
+ targetEntityName: 'OneTouchSwitch',
217
+ labels: ['OneTouchSwitch_ActivityLog'],
218
+ }, OneTouchSwitchRecord_1.OneTouchSwitchRecord);
219
+ }
220
+ return this._oneTouchSwitches;
221
+ }
222
+ /**
223
+ * Access linked Call records
224
+ * @remarks Available labels: CallActivity
225
+ * @throws Error if called on a new (unsaved) record
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * // Get all linked Call records
230
+ * const items = await record.calls.list();
231
+ * const first = await record.calls.first();
232
+ *
233
+ * // Filter by label
234
+ * const specific = await record.calls.first({ label: 'CallActivity' });
235
+ * ```
236
+ */
237
+ get calls() {
238
+ var _a;
239
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
240
+ throw new Error('Cannot access links on a new (unsaved) record');
241
+ if (!this._calls) {
242
+ this._calls = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
243
+ sourceEntity: 'AuditModule:ActivityLog',
244
+ targetEntity: 'NotificationModule:Call',
245
+ targetModuleName: 'NotificationModule',
246
+ targetEntityName: 'Call',
247
+ labels: ['CallActivity'],
248
+ }, CallRecord_1.CallRecord);
249
+ }
250
+ return this._calls;
251
+ }
252
+ /**
253
+ * Access linked WorkOrder records
254
+ * @remarks Available labels: WorkOrder_ActivityLog
255
+ * @throws Error if called on a new (unsaved) record
256
+ *
257
+ * @example
258
+ * ```typescript
259
+ * // Get all linked WorkOrder records
260
+ * const items = await record.workOrders.list();
261
+ * const first = await record.workOrders.first();
262
+ *
263
+ * // Filter by label
264
+ * const specific = await record.workOrders.first({ label: 'WorkOrder_ActivityLog' });
265
+ * ```
266
+ */
267
+ get workOrders() {
268
+ var _a;
269
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
270
+ throw new Error('Cannot access links on a new (unsaved) record');
271
+ if (!this._workOrders) {
272
+ this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
273
+ sourceEntity: 'AuditModule:ActivityLog',
274
+ targetEntity: 'FieldServiceModule:WorkOrder',
275
+ targetModuleName: 'FieldServiceModule',
276
+ targetEntityName: 'WorkOrder',
277
+ labels: ['WorkOrder_ActivityLog'],
278
+ }, WorkOrderRecord_1.WorkOrderRecord);
279
+ }
280
+ return this._workOrders;
281
+ }
282
+ // ============================================
106
283
  // LINK MANAGEMENT
107
284
  // ============================================
108
285
  /**
@@ -178,6 +355,19 @@ class ActivityLogRecord {
178
355
  }
179
356
  }
180
357
  exports.ActivityLogRecord = ActivityLogRecord;
358
+ // ============================================
359
+ // TYPED LINK ACCESSORS
360
+ // ============================================
361
+ /** Valid labels for Order associations */
362
+ ActivityLogRecord.ordersLabels = ['Order__ActivityLog'];
363
+ /** Valid labels for Case associations */
364
+ ActivityLogRecord.casesLabels = ['Case__ActivityLog'];
365
+ /** Valid labels for OneTouchSwitch associations */
366
+ ActivityLogRecord.oneTouchSwitchesLabels = ['OneTouchSwitch_ActivityLog'];
367
+ /** Valid labels for Call associations */
368
+ ActivityLogRecord.callsLabels = ['CallActivity'];
369
+ /** Valid labels for WorkOrder associations */
370
+ ActivityLogRecord.workOrdersLabels = ['WorkOrder_ActivityLog'];
181
371
  /** Type guard to check if an object is a ActivityLogRecord */
182
372
  function isActivityLogRecord(obj) {
183
373
  return obj instanceof ActivityLogRecord;
@@ -13,15 +13,30 @@
13
13
  * await record.createActivity({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: EVENT, NOTIFICATION, TASK
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 { ActivityProperties } from '../entities-v2/Activity';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { ActivityProperties, EventActivityProperties, NotificationActivityProperties, TaskActivityProperties } from '../entities-v2/Activity';
23
26
  import { CreateFinalNoticeActivityProperties } from '../actions-v2/CreateFinalNoticeActivityDto';
24
27
  import { UpdateActivityDateProperties } from '../actions-v2/UpdateActivityDateDto';
28
+ import { ContactRecord } from './ContactRecord';
29
+ import { NoteRecord } from './NoteRecord';
30
+ import { OneTouchSwitchRecord } from './OneTouchSwitchRecord';
31
+ import { BillingRequestRecord } from './BillingRequestRecord';
32
+ import { OrderItemRecord } from './OrderItemRecord';
33
+ import { FileRecord } from './FileRecord';
34
+ import { CustomerDeviceOntRecord } from './CustomerDeviceOntRecord';
35
+ import { PaymentMethodRefundRecord } from './PaymentMethodRefundRecord';
36
+ import { WorkOrderRecord } from './WorkOrderRecord';
37
+ import { OrderRecord } from './OrderRecord';
38
+ /** Valid entity types for Activity */
39
+ export declare type ActivityType = 'EVENT' | 'NOTIFICATION' | 'TASK';
25
40
  /**
26
41
  * Builder for action execution with dryRun support
27
42
  *
@@ -58,6 +73,16 @@ export declare class ActivityRecord<TProps = ActivityProperties> {
58
73
  private _provider;
59
74
  private _pendingLinks;
60
75
  private _preGeneratedId;
76
+ private _contacts?;
77
+ private _notes?;
78
+ private _oneTouchSwitches?;
79
+ private _billingRequests?;
80
+ private _orderItems?;
81
+ private _files?;
82
+ private _customerDeviceOnts?;
83
+ private _paymentMethodRefunds?;
84
+ private _workOrders?;
85
+ private _orders?;
61
86
  /**
62
87
  * Create a record wrapper.
63
88
  * @param record - The underlying record, or null for create operations
@@ -70,7 +95,7 @@ export declare class ActivityRecord<TProps = ActivityProperties> {
70
95
  /** Record ID - always available (pre-generated for new records) */
71
96
  get id(): string;
72
97
  get entity(): string;
73
- get type(): string | undefined;
98
+ get type(): ActivityType | undefined;
74
99
  /** Record properties - empty object for new (unsaved) records */
75
100
  get properties(): TProps;
76
101
  get title(): string | undefined;
@@ -80,6 +105,234 @@ export declare class ActivityRecord<TProps = ActivityProperties> {
80
105
  get updatedAt(): string | undefined;
81
106
  /** Access the underlying OdinRecord (null for new records) */
82
107
  get record(): OdinRecord<TProps> | null;
108
+ /**
109
+ * Type guard: check if this record is of type EVENT
110
+ *
111
+ * When this returns true, TypeScript automatically narrows the type,
112
+ * giving you access to EVENT-specific properties.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * if (record.isEvent()) {
117
+ * // TypeScript knows record.properties is EventActivityProperties
118
+ * console.log(record.properties.SomeTypeSpecificField);
119
+ * }
120
+ * ```
121
+ * @remarks General Events
122
+ */
123
+ isEvent(): this is ActivityRecord<EventActivityProperties>;
124
+ /**
125
+ * Type guard: check if this record is of type NOTIFICATION
126
+ *
127
+ * When this returns true, TypeScript automatically narrows the type,
128
+ * giving you access to NOTIFICATION-specific properties.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * if (record.isNotification()) {
133
+ * // TypeScript knows record.properties is NotificationActivityProperties
134
+ * console.log(record.properties.SomeTypeSpecificField);
135
+ * }
136
+ * ```
137
+ * @remarks track notification activities
138
+ */
139
+ isNotification(): this is ActivityRecord<NotificationActivityProperties>;
140
+ /**
141
+ * Type guard: check if this record is of type TASK
142
+ *
143
+ * When this returns true, TypeScript automatically narrows the type,
144
+ * giving you access to TASK-specific properties.
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * if (record.isTask()) {
149
+ * // TypeScript knows record.properties is TaskActivityProperties
150
+ * console.log(record.properties.SomeTypeSpecificField);
151
+ * }
152
+ * ```
153
+ * @remarks task activity tracks if an activity is resolved
154
+ */
155
+ isTask(): this is ActivityRecord<TaskActivityProperties>;
156
+ /** Valid labels for Contact associations */
157
+ static readonly contactsLabels: readonly ["Contact__Activity"];
158
+ /**
159
+ * Access linked Contact records
160
+ * @remarks Available labels: Contact__Activity
161
+ * @throws Error if called on a new (unsaved) record
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * // Get all linked Contact records
166
+ * const items = await record.contacts.list();
167
+ * const first = await record.contacts.first();
168
+ *
169
+ * // Filter by label
170
+ * const specific = await record.contacts.first({ label: 'Contact__Activity' });
171
+ * ```
172
+ */
173
+ get contacts(): RecordLinkManager<ContactRecord, typeof ActivityRecord['contactsLabels'][number]>;
174
+ /** Valid labels for Note associations */
175
+ static readonly notesLabels: readonly ["Activity__Note"];
176
+ /**
177
+ * Access linked Note records
178
+ * @remarks Available labels: Activity__Note
179
+ * @throws Error if called on a new (unsaved) record
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * // Get all linked Note records
184
+ * const items = await record.notes.list();
185
+ * const first = await record.notes.first();
186
+ *
187
+ * // Filter by label
188
+ * const specific = await record.notes.first({ label: 'Activity__Note' });
189
+ * ```
190
+ */
191
+ get notes(): RecordLinkManager<NoteRecord, typeof ActivityRecord['notesLabels'][number]>;
192
+ /** Valid labels for OneTouchSwitch associations */
193
+ static readonly oneTouchSwitchesLabels: readonly ["OneTouchSwitch__Activity"];
194
+ /**
195
+ * Access linked OneTouchSwitch records
196
+ * @remarks Available labels: OneTouchSwitch__Activity
197
+ * @throws Error if called on a new (unsaved) record
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * // Get all linked OneTouchSwitch records
202
+ * const items = await record.oneTouchSwitches.list();
203
+ * const first = await record.oneTouchSwitches.first();
204
+ *
205
+ * // Filter by label
206
+ * const specific = await record.oneTouchSwitches.first({ label: 'OneTouchSwitch__Activity' });
207
+ * ```
208
+ */
209
+ get oneTouchSwitches(): RecordLinkManager<OneTouchSwitchRecord, typeof ActivityRecord['oneTouchSwitchesLabels'][number]>;
210
+ /** Valid labels for BillingRequest associations */
211
+ static readonly billingRequestsLabels: readonly ["BillingRequest__Activity"];
212
+ /**
213
+ * Access linked BillingRequest records
214
+ * @remarks Available labels: BillingRequest__Activity
215
+ * @throws Error if called on a new (unsaved) record
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * // Get all linked BillingRequest records
220
+ * const items = await record.billingRequests.list();
221
+ * const first = await record.billingRequests.first();
222
+ *
223
+ * // Filter by label
224
+ * const specific = await record.billingRequests.first({ label: 'BillingRequest__Activity' });
225
+ * ```
226
+ */
227
+ get billingRequests(): RecordLinkManager<BillingRequestRecord, typeof ActivityRecord['billingRequestsLabels'][number]>;
228
+ /** Valid labels for OrderItem associations */
229
+ static readonly orderItemsLabels: readonly ["OrderItem__Activity"];
230
+ /**
231
+ * Access linked OrderItem records
232
+ * @remarks Available labels: OrderItem__Activity
233
+ * @throws Error if called on a new (unsaved) record
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * // Get all linked OrderItem records
238
+ * const items = await record.orderItems.list();
239
+ * const first = await record.orderItems.first();
240
+ *
241
+ * // Filter by label
242
+ * const specific = await record.orderItems.first({ label: 'OrderItem__Activity' });
243
+ * ```
244
+ */
245
+ get orderItems(): RecordLinkManager<OrderItemRecord, typeof ActivityRecord['orderItemsLabels'][number]>;
246
+ /** Valid labels for File associations */
247
+ static readonly filesLabels: readonly ["Activity__File"];
248
+ /**
249
+ * Access linked File records
250
+ * @remarks Available labels: Activity__File
251
+ * @throws Error if called on a new (unsaved) record
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * // Get all linked File records
256
+ * const items = await record.files.list();
257
+ * const first = await record.files.first();
258
+ *
259
+ * // Filter by label
260
+ * const specific = await record.files.first({ label: 'Activity__File' });
261
+ * ```
262
+ */
263
+ get files(): RecordLinkManager<FileRecord, typeof ActivityRecord['filesLabels'][number]>;
264
+ /** Valid labels for CustomerDeviceOnt associations */
265
+ static readonly customerDeviceOntsLabels: readonly ["CustomerDeviceOnt__Activity"];
266
+ /**
267
+ * Access linked CustomerDeviceOnt records
268
+ * @remarks Available labels: CustomerDeviceOnt__Activity
269
+ * @throws Error if called on a new (unsaved) record
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * // Get all linked CustomerDeviceOnt records
274
+ * const items = await record.customerDeviceOnts.list();
275
+ * const first = await record.customerDeviceOnts.first();
276
+ *
277
+ * // Filter by label
278
+ * const specific = await record.customerDeviceOnts.first({ label: 'CustomerDeviceOnt__Activity' });
279
+ * ```
280
+ */
281
+ get customerDeviceOnts(): RecordLinkManager<CustomerDeviceOntRecord, typeof ActivityRecord['customerDeviceOntsLabels'][number]>;
282
+ /** Valid labels for PaymentMethodRefund associations */
283
+ static readonly paymentMethodRefundsLabels: readonly ["PaymentMethodRefund__Activity"];
284
+ /**
285
+ * Access linked PaymentMethodRefund records
286
+ * @remarks Available labels: PaymentMethodRefund__Activity
287
+ * @throws Error if called on a new (unsaved) record
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * // Get all linked PaymentMethodRefund records
292
+ * const items = await record.paymentMethodRefunds.list();
293
+ * const first = await record.paymentMethodRefunds.first();
294
+ *
295
+ * // Filter by label
296
+ * const specific = await record.paymentMethodRefunds.first({ label: 'PaymentMethodRefund__Activity' });
297
+ * ```
298
+ */
299
+ get paymentMethodRefunds(): RecordLinkManager<PaymentMethodRefundRecord, typeof ActivityRecord['paymentMethodRefundsLabels'][number]>;
300
+ /** Valid labels for WorkOrder associations */
301
+ static readonly workOrdersLabels: readonly ["WorkOrder__Activity"];
302
+ /**
303
+ * Access linked WorkOrder records
304
+ * @remarks Available labels: WorkOrder__Activity
305
+ * @throws Error if called on a new (unsaved) record
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * // Get all linked WorkOrder records
310
+ * const items = await record.workOrders.list();
311
+ * const first = await record.workOrders.first();
312
+ *
313
+ * // Filter by label
314
+ * const specific = await record.workOrders.first({ label: 'WorkOrder__Activity' });
315
+ * ```
316
+ */
317
+ get workOrders(): RecordLinkManager<WorkOrderRecord, typeof ActivityRecord['workOrdersLabels'][number]>;
318
+ /** Valid labels for Order associations */
319
+ static readonly ordersLabels: readonly ["Order__Activity"];
320
+ /**
321
+ * Access linked Order records
322
+ * @remarks Available labels: Order__Activity
323
+ * @throws Error if called on a new (unsaved) record
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * // Get all linked Order records
328
+ * const items = await record.orders.list();
329
+ * const first = await record.orders.first();
330
+ *
331
+ * // Filter by label
332
+ * const specific = await record.orders.first({ label: 'Order__Activity' });
333
+ * ```
334
+ */
335
+ get orders(): RecordLinkManager<OrderRecord, typeof ActivityRecord['ordersLabels'][number]>;
83
336
  /**
84
337
  * Queue a link to be created with the next action.
85
338
  * Works for both create and update actions.