@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
@@ -19,9 +19,16 @@ import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
19
19
  import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
20
20
  import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
21
21
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
22
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
22
23
  import { VisitProperties } from '../entities-v2/Visit';
23
24
  import { VisitCreateProperties } from '../actions-v2/VisitCreateDto';
24
25
  import { VisitUpdateProperties } from '../actions-v2/VisitUpdateDto';
26
+ import { AddressRecord } from './AddressRecord';
27
+ import { NoteRecord } from './NoteRecord';
28
+ import { LeadRecord } from './LeadRecord';
29
+ import { FileRecord } from './FileRecord';
30
+ import { OrderRecord } from './OrderRecord';
31
+ import { AppointmentRecord } from './AppointmentRecord';
25
32
  /**
26
33
  * Builder for action execution with dryRun support
27
34
  *
@@ -85,6 +92,12 @@ export declare class VisitRecord<TProps = VisitProperties> {
85
92
  private _provider;
86
93
  private _pendingLinks;
87
94
  private _preGeneratedId;
95
+ private _addresses?;
96
+ private _notes?;
97
+ private _leads?;
98
+ private _files?;
99
+ private _orders?;
100
+ private _appointments?;
88
101
  /**
89
102
  * Create a record wrapper.
90
103
  * @param record - The underlying record, or null for create operations
@@ -110,6 +123,114 @@ export declare class VisitRecord<TProps = VisitProperties> {
110
123
  get groups(): string[];
111
124
  /** Access the underlying OdinRecord (null for new records) */
112
125
  get record(): OdinRecord<TProps> | null;
126
+ /** Valid labels for Address associations */
127
+ static readonly addressesLabels: readonly ["Address__Visit"];
128
+ /**
129
+ * Access linked Address records
130
+ * @remarks Available labels: Address__Visit
131
+ * @throws Error if called on a new (unsaved) record
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * // Get all linked Address records
136
+ * const items = await record.addresses.list();
137
+ * const first = await record.addresses.first();
138
+ *
139
+ * // Filter by label
140
+ * const specific = await record.addresses.first({ label: 'Address__Visit' });
141
+ * ```
142
+ */
143
+ get addresses(): RecordLinkManager<AddressRecord, typeof VisitRecord['addressesLabels'][number]>;
144
+ /** Valid labels for Note associations */
145
+ static readonly notesLabels: readonly ["Visit__Note"];
146
+ /**
147
+ * Access linked Note records
148
+ * @remarks Available labels: Visit__Note
149
+ * @throws Error if called on a new (unsaved) record
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * // Get all linked Note records
154
+ * const items = await record.notes.list();
155
+ * const first = await record.notes.first();
156
+ *
157
+ * // Filter by label
158
+ * const specific = await record.notes.first({ label: 'Visit__Note' });
159
+ * ```
160
+ */
161
+ get notes(): RecordLinkManager<NoteRecord, typeof VisitRecord['notesLabels'][number]>;
162
+ /** Valid labels for Lead associations */
163
+ static readonly leadsLabels: readonly ["Lead__Visit"];
164
+ /**
165
+ * Access linked Lead records
166
+ * @remarks Available labels: Lead__Visit
167
+ * @throws Error if called on a new (unsaved) record
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * // Get all linked Lead records
172
+ * const items = await record.leads.list();
173
+ * const first = await record.leads.first();
174
+ *
175
+ * // Filter by label
176
+ * const specific = await record.leads.first({ label: 'Lead__Visit' });
177
+ * ```
178
+ */
179
+ get leads(): RecordLinkManager<LeadRecord, typeof VisitRecord['leadsLabels'][number]>;
180
+ /** Valid labels for File associations */
181
+ static readonly filesLabels: readonly ["Visit__File"];
182
+ /**
183
+ * Access linked File records
184
+ * @remarks Available labels: Visit__File
185
+ * @throws Error if called on a new (unsaved) record
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * // Get all linked File records
190
+ * const items = await record.files.list();
191
+ * const first = await record.files.first();
192
+ *
193
+ * // Filter by label
194
+ * const specific = await record.files.first({ label: 'Visit__File' });
195
+ * ```
196
+ */
197
+ get files(): RecordLinkManager<FileRecord, typeof VisitRecord['filesLabels'][number]>;
198
+ /** Valid labels for Order associations */
199
+ static readonly ordersLabels: readonly ["Order__Visit"];
200
+ /**
201
+ * Access linked Order records
202
+ * @remarks Available labels: Order__Visit
203
+ * @throws Error if called on a new (unsaved) record
204
+ *
205
+ * @example
206
+ * ```typescript
207
+ * // Get all linked Order records
208
+ * const items = await record.orders.list();
209
+ * const first = await record.orders.first();
210
+ *
211
+ * // Filter by label
212
+ * const specific = await record.orders.first({ label: 'Order__Visit' });
213
+ * ```
214
+ */
215
+ get orders(): RecordLinkManager<OrderRecord, typeof VisitRecord['ordersLabels'][number]>;
216
+ /** Valid labels for Appointment associations */
217
+ static readonly appointmentsLabels: readonly ["Visit__Appointment"];
218
+ /**
219
+ * Access linked Appointment records
220
+ * @remarks Available labels: Visit__Appointment
221
+ * @throws Error if called on a new (unsaved) record
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * // Get all linked Appointment records
226
+ * const items = await record.appointments.list();
227
+ * const first = await record.appointments.first();
228
+ *
229
+ * // Filter by label
230
+ * const specific = await record.appointments.first({ label: 'Visit__Appointment' });
231
+ * ```
232
+ */
233
+ get appointments(): RecordLinkManager<AppointmentRecord, typeof VisitRecord['appointmentsLabels'][number]>;
113
234
  /**
114
235
  * Queue a link to be created with the next action.
115
236
  * Works for both create and update actions.
@@ -29,6 +29,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.isVisitRecord = exports.VisitRecord = void 0;
30
30
  const uuid_1 = require("uuid");
31
31
  const core_1 = require("@d19n/odin-types/dist/core");
32
+ const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
33
+ const AddressRecord_1 = require("./AddressRecord");
34
+ const NoteRecord_1 = require("./NoteRecord");
35
+ const LeadRecord_1 = require("./LeadRecord");
36
+ const FileRecord_1 = require("./FileRecord");
37
+ const OrderRecord_1 = require("./OrderRecord");
38
+ const AppointmentRecord_1 = require("./AppointmentRecord");
32
39
  /**
33
40
  * Builder for action execution with dryRun support
34
41
  *
@@ -139,6 +146,186 @@ class VisitRecord {
139
146
  get groups() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.groups) || []; }
140
147
  /** Access the underlying OdinRecord (null for new records) */
141
148
  get record() { return this._record; }
149
+ /**
150
+ * Access linked Address records
151
+ * @remarks Available labels: Address__Visit
152
+ * @throws Error if called on a new (unsaved) record
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * // Get all linked Address records
157
+ * const items = await record.addresses.list();
158
+ * const first = await record.addresses.first();
159
+ *
160
+ * // Filter by label
161
+ * const specific = await record.addresses.first({ label: 'Address__Visit' });
162
+ * ```
163
+ */
164
+ get addresses() {
165
+ var _a;
166
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
167
+ throw new Error('Cannot access links on a new (unsaved) record');
168
+ if (!this._addresses) {
169
+ this._addresses = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
170
+ sourceEntity: 'CrmModule:Visit',
171
+ targetEntity: 'CrmModule:Address',
172
+ targetModuleName: 'CrmModule',
173
+ targetEntityName: 'Address',
174
+ labels: ['Address__Visit'],
175
+ }, AddressRecord_1.AddressRecord);
176
+ }
177
+ return this._addresses;
178
+ }
179
+ /**
180
+ * Access linked Note records
181
+ * @remarks Available labels: Visit__Note
182
+ * @throws Error if called on a new (unsaved) record
183
+ *
184
+ * @example
185
+ * ```typescript
186
+ * // Get all linked Note records
187
+ * const items = await record.notes.list();
188
+ * const first = await record.notes.first();
189
+ *
190
+ * // Filter by label
191
+ * const specific = await record.notes.first({ label: 'Visit__Note' });
192
+ * ```
193
+ */
194
+ get notes() {
195
+ var _a;
196
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
197
+ throw new Error('Cannot access links on a new (unsaved) record');
198
+ if (!this._notes) {
199
+ this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
200
+ sourceEntity: 'CrmModule:Visit',
201
+ targetEntity: 'SupportModule:Note',
202
+ targetModuleName: 'SupportModule',
203
+ targetEntityName: 'Note',
204
+ labels: ['Visit__Note'],
205
+ }, NoteRecord_1.NoteRecord);
206
+ }
207
+ return this._notes;
208
+ }
209
+ /**
210
+ * Access linked Lead records
211
+ * @remarks Available labels: Lead__Visit
212
+ * @throws Error if called on a new (unsaved) record
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * // Get all linked Lead records
217
+ * const items = await record.leads.list();
218
+ * const first = await record.leads.first();
219
+ *
220
+ * // Filter by label
221
+ * const specific = await record.leads.first({ label: 'Lead__Visit' });
222
+ * ```
223
+ */
224
+ get leads() {
225
+ var _a;
226
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
227
+ throw new Error('Cannot access links on a new (unsaved) record');
228
+ if (!this._leads) {
229
+ this._leads = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
230
+ sourceEntity: 'CrmModule:Visit',
231
+ targetEntity: 'CrmModule:Lead',
232
+ targetModuleName: 'CrmModule',
233
+ targetEntityName: 'Lead',
234
+ labels: ['Lead__Visit'],
235
+ }, LeadRecord_1.LeadRecord);
236
+ }
237
+ return this._leads;
238
+ }
239
+ /**
240
+ * Access linked File records
241
+ * @remarks Available labels: Visit__File
242
+ * @throws Error if called on a new (unsaved) record
243
+ *
244
+ * @example
245
+ * ```typescript
246
+ * // Get all linked File records
247
+ * const items = await record.files.list();
248
+ * const first = await record.files.first();
249
+ *
250
+ * // Filter by label
251
+ * const specific = await record.files.first({ label: 'Visit__File' });
252
+ * ```
253
+ */
254
+ get files() {
255
+ var _a;
256
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
257
+ throw new Error('Cannot access links on a new (unsaved) record');
258
+ if (!this._files) {
259
+ this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
260
+ sourceEntity: 'CrmModule:Visit',
261
+ targetEntity: 'SchemaModule:File',
262
+ targetModuleName: 'SchemaModule',
263
+ targetEntityName: 'File',
264
+ labels: ['Visit__File'],
265
+ }, FileRecord_1.FileRecord);
266
+ }
267
+ return this._files;
268
+ }
269
+ /**
270
+ * Access linked Order records
271
+ * @remarks Available labels: Order__Visit
272
+ * @throws Error if called on a new (unsaved) record
273
+ *
274
+ * @example
275
+ * ```typescript
276
+ * // Get all linked Order records
277
+ * const items = await record.orders.list();
278
+ * const first = await record.orders.first();
279
+ *
280
+ * // Filter by label
281
+ * const specific = await record.orders.first({ label: 'Order__Visit' });
282
+ * ```
283
+ */
284
+ get orders() {
285
+ var _a;
286
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
287
+ throw new Error('Cannot access links on a new (unsaved) record');
288
+ if (!this._orders) {
289
+ this._orders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
290
+ sourceEntity: 'CrmModule:Visit',
291
+ targetEntity: 'OrderModule:Order',
292
+ targetModuleName: 'OrderModule',
293
+ targetEntityName: 'Order',
294
+ labels: ['Order__Visit'],
295
+ }, OrderRecord_1.OrderRecord);
296
+ }
297
+ return this._orders;
298
+ }
299
+ /**
300
+ * Access linked Appointment records
301
+ * @remarks Available labels: Visit__Appointment
302
+ * @throws Error if called on a new (unsaved) record
303
+ *
304
+ * @example
305
+ * ```typescript
306
+ * // Get all linked Appointment records
307
+ * const items = await record.appointments.list();
308
+ * const first = await record.appointments.first();
309
+ *
310
+ * // Filter by label
311
+ * const specific = await record.appointments.first({ label: 'Visit__Appointment' });
312
+ * ```
313
+ */
314
+ get appointments() {
315
+ var _a;
316
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
317
+ throw new Error('Cannot access links on a new (unsaved) record');
318
+ if (!this._appointments) {
319
+ this._appointments = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
320
+ sourceEntity: 'CrmModule:Visit',
321
+ targetEntity: 'CrmModule:Appointment',
322
+ targetModuleName: 'CrmModule',
323
+ targetEntityName: 'Appointment',
324
+ labels: ['Visit__Appointment'],
325
+ }, AppointmentRecord_1.AppointmentRecord);
326
+ }
327
+ return this._appointments;
328
+ }
142
329
  // ============================================
143
330
  // LINK MANAGEMENT
144
331
  // ============================================
@@ -247,6 +434,21 @@ class VisitRecord {
247
434
  }
248
435
  }
249
436
  exports.VisitRecord = VisitRecord;
437
+ // ============================================
438
+ // TYPED LINK ACCESSORS
439
+ // ============================================
440
+ /** Valid labels for Address associations */
441
+ VisitRecord.addressesLabels = ['Address__Visit'];
442
+ /** Valid labels for Note associations */
443
+ VisitRecord.notesLabels = ['Visit__Note'];
444
+ /** Valid labels for Lead associations */
445
+ VisitRecord.leadsLabels = ['Lead__Visit'];
446
+ /** Valid labels for File associations */
447
+ VisitRecord.filesLabels = ['Visit__File'];
448
+ /** Valid labels for Order associations */
449
+ VisitRecord.ordersLabels = ['Order__Visit'];
450
+ /** Valid labels for Appointment associations */
451
+ VisitRecord.appointmentsLabels = ['Visit__Appointment'];
250
452
  /** Type guard to check if an object is a VisitRecord */
251
453
  function isVisitRecord(obj) {
252
454
  return obj instanceof VisitRecord;
@@ -19,10 +19,12 @@ import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
19
19
  import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
20
20
  import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
21
21
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
22
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
22
23
  import { VoiceConfigurationProperties } from '../entities-v2/VoiceConfiguration';
23
24
  import { CreateRecontractVoiceConfigurationProperties } from '../actions-v2/CreateRecontractVoiceConfigurationDto';
24
25
  import { CreateVoiceConfigurationProperties } from '../actions-v2/CreateVoiceConfigurationDto';
25
26
  import { UpdateVoiceConfigurationProperties } from '../actions-v2/UpdateVoiceConfigurationDto';
27
+ import { OrderItemRecord } from './OrderItemRecord';
26
28
  /**
27
29
  * Builder for action execution with dryRun support
28
30
  *
@@ -86,6 +88,7 @@ export declare class VoiceConfigurationRecord<TProps = VoiceConfigurationPropert
86
88
  private _provider;
87
89
  private _pendingLinks;
88
90
  private _preGeneratedId;
91
+ private _orderItems?;
89
92
  /**
90
93
  * Create a record wrapper.
91
94
  * @param record - The underlying record, or null for create operations
@@ -111,6 +114,24 @@ export declare class VoiceConfigurationRecord<TProps = VoiceConfigurationPropert
111
114
  get groups(): string[];
112
115
  /** Access the underlying OdinRecord (null for new records) */
113
116
  get record(): OdinRecord<TProps> | null;
117
+ /** Valid labels for OrderItem associations */
118
+ static readonly orderItemsLabels: readonly ["OrderItem__VoiceConfiguration"];
119
+ /**
120
+ * Access linked OrderItem records
121
+ * @remarks Available labels: OrderItem__VoiceConfiguration
122
+ * @throws Error if called on a new (unsaved) record
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Get all linked OrderItem records
127
+ * const items = await record.orderItems.list();
128
+ * const first = await record.orderItems.first();
129
+ *
130
+ * // Filter by label
131
+ * const specific = await record.orderItems.first({ label: 'OrderItem__VoiceConfiguration' });
132
+ * ```
133
+ */
134
+ get orderItems(): RecordLinkManager<OrderItemRecord, typeof VoiceConfigurationRecord['orderItemsLabels'][number]>;
114
135
  /**
115
136
  * Queue a link to be created with the next action.
116
137
  * Works for both create and update actions.
@@ -29,6 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.isVoiceConfigurationRecord = exports.VoiceConfigurationRecord = void 0;
30
30
  const uuid_1 = require("uuid");
31
31
  const core_1 = require("@d19n/odin-types/dist/core");
32
+ const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
33
+ const OrderItemRecord_1 = require("./OrderItemRecord");
32
34
  /**
33
35
  * Builder for action execution with dryRun support
34
36
  *
@@ -139,6 +141,36 @@ class VoiceConfigurationRecord {
139
141
  get groups() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.groups) || []; }
140
142
  /** Access the underlying OdinRecord (null for new records) */
141
143
  get record() { return this._record; }
144
+ /**
145
+ * Access linked OrderItem records
146
+ * @remarks Available labels: OrderItem__VoiceConfiguration
147
+ * @throws Error if called on a new (unsaved) record
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Get all linked OrderItem records
152
+ * const items = await record.orderItems.list();
153
+ * const first = await record.orderItems.first();
154
+ *
155
+ * // Filter by label
156
+ * const specific = await record.orderItems.first({ label: 'OrderItem__VoiceConfiguration' });
157
+ * ```
158
+ */
159
+ get orderItems() {
160
+ var _a;
161
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
162
+ throw new Error('Cannot access links on a new (unsaved) record');
163
+ if (!this._orderItems) {
164
+ this._orderItems = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
165
+ sourceEntity: 'ServiceModule:VoiceConfiguration',
166
+ targetEntity: 'OrderModule:OrderItem',
167
+ targetModuleName: 'OrderModule',
168
+ targetEntityName: 'OrderItem',
169
+ labels: ['OrderItem__VoiceConfiguration'],
170
+ }, OrderItemRecord_1.OrderItemRecord);
171
+ }
172
+ return this._orderItems;
173
+ }
142
174
  // ============================================
143
175
  // LINK MANAGEMENT
144
176
  // ============================================
@@ -291,6 +323,11 @@ class VoiceConfigurationRecord {
291
323
  }
292
324
  }
293
325
  exports.VoiceConfigurationRecord = VoiceConfigurationRecord;
326
+ // ============================================
327
+ // TYPED LINK ACCESSORS
328
+ // ============================================
329
+ /** Valid labels for OrderItem associations */
330
+ VoiceConfigurationRecord.orderItemsLabels = ['OrderItem__VoiceConfiguration'];
294
331
  /** Type guard to check if an object is a VoiceConfigurationRecord */
295
332
  function isVoiceConfigurationRecord(obj) {
296
333
  return obj instanceof VoiceConfigurationRecord;
@@ -13,14 +13,22 @@
13
13
  * await record.createWayleaveAudit({ ... }).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 { WayleaveAuditProperties } from '../entities-v2/WayleaveAudit';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { WayleaveAuditProperties, OutcomeFormWayleaveAuditProperties } from '../entities-v2/WayleaveAudit';
23
26
  import { WayleaveAuditCreateProperties } from '../actions-v2/CreateWayleaveWorkOrderFlowDto';
27
+ import { NoteRecord } from './NoteRecord';
28
+ import { FileRecord } from './FileRecord';
29
+ import { WorkOrderRecord } from './WorkOrderRecord';
30
+ /** Valid entity types for WayleaveAudit */
31
+ export declare type WayleaveAuditType = 'OUTCOME_FORM';
24
32
  /**
25
33
  * Builder for action execution with dryRun support
26
34
  *
@@ -84,6 +92,9 @@ export declare class WayleaveAuditRecord<TProps = WayleaveAuditProperties> {
84
92
  private _provider;
85
93
  private _pendingLinks;
86
94
  private _preGeneratedId;
95
+ private _notes?;
96
+ private _files?;
97
+ private _workOrders?;
87
98
  /**
88
99
  * Create a record wrapper.
89
100
  * @param record - The underlying record, or null for create operations
@@ -96,7 +107,7 @@ export declare class WayleaveAuditRecord<TProps = WayleaveAuditProperties> {
96
107
  /** Record ID - always available (pre-generated for new records) */
97
108
  get id(): string;
98
109
  get entity(): string;
99
- get type(): string | undefined;
110
+ get type(): WayleaveAuditType | undefined;
100
111
  /** Record properties - empty object for new (unsaved) records */
101
112
  get properties(): TProps;
102
113
  get title(): string | undefined;
@@ -109,6 +120,76 @@ export declare class WayleaveAuditRecord<TProps = WayleaveAuditProperties> {
109
120
  get groups(): string[];
110
121
  /** Access the underlying OdinRecord (null for new records) */
111
122
  get record(): OdinRecord<TProps> | null;
123
+ /**
124
+ * Type guard: check if this record is of type OUTCOME_FORM
125
+ *
126
+ * When this returns true, TypeScript automatically narrows the type,
127
+ * giving you access to OUTCOME_FORM-specific properties.
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * if (record.isOutcomeForm()) {
132
+ * // TypeScript knows record.properties is OutcomeFormWayleaveAuditProperties
133
+ * console.log(record.properties.SomeTypeSpecificField);
134
+ * }
135
+ * ```
136
+ * @remarks outcome form
137
+ */
138
+ isOutcomeForm(): this is WayleaveAuditRecord<OutcomeFormWayleaveAuditProperties>;
139
+ /** Valid labels for Note associations */
140
+ static readonly notesLabels: readonly ["WayleaveAudit_Note"];
141
+ /**
142
+ * Access linked Note records
143
+ * @remarks Available labels: WayleaveAudit_Note
144
+ * @throws Error if called on a new (unsaved) record
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * // Get all linked Note records
149
+ * const items = await record.notes.list();
150
+ * const first = await record.notes.first();
151
+ *
152
+ * // Filter by label
153
+ * const specific = await record.notes.first({ label: 'WayleaveAudit_Note' });
154
+ * ```
155
+ */
156
+ get notes(): RecordLinkManager<NoteRecord, typeof WayleaveAuditRecord['notesLabels'][number]>;
157
+ /** Valid labels for File associations */
158
+ static readonly filesLabels: readonly ["WayleaveAudit_File"];
159
+ /**
160
+ * Access linked File records
161
+ * @remarks Available labels: WayleaveAudit_File
162
+ * @throws Error if called on a new (unsaved) record
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // Get all linked File records
167
+ * const items = await record.files.list();
168
+ * const first = await record.files.first();
169
+ *
170
+ * // Filter by label
171
+ * const specific = await record.files.first({ label: 'WayleaveAudit_File' });
172
+ * ```
173
+ */
174
+ get files(): RecordLinkManager<FileRecord, typeof WayleaveAuditRecord['filesLabels'][number]>;
175
+ /** Valid labels for WorkOrder associations */
176
+ static readonly workOrdersLabels: readonly ["WorkOrder_WayleaveAudit"];
177
+ /**
178
+ * Access linked WorkOrder records
179
+ * @remarks Available labels: WorkOrder_WayleaveAudit
180
+ * @throws Error if called on a new (unsaved) record
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * // Get all linked WorkOrder records
185
+ * const items = await record.workOrders.list();
186
+ * const first = await record.workOrders.first();
187
+ *
188
+ * // Filter by label
189
+ * const specific = await record.workOrders.first({ label: 'WorkOrder_WayleaveAudit' });
190
+ * ```
191
+ */
192
+ get workOrders(): RecordLinkManager<WorkOrderRecord, typeof WayleaveAuditRecord['workOrdersLabels'][number]>;
112
193
  /**
113
194
  * Queue a link to be created with the next action.
114
195
  * Works for both create and update actions.