@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
@@ -13,16 +13,24 @@
13
13
  * await record.createTestEntityForVisualBuilder({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: DEFAULT, TYPE1, TYPE2
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 { TestEntityForVisualBuilderProperties } from '../entities-v2/TestEntityForVisualBuilder';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
25
+ import { TestEntityForVisualBuilderProperties, Type1TestEntityForVisualBuilderProperties, Type2TestEntityForVisualBuilderProperties } from '../entities-v2/TestEntityForVisualBuilder';
23
26
  import { CreateTestEntityForVisualBuilderProperties } from '../actions-v2/CreateTestEntityForVisualBuilderDto';
24
27
  import { UpdateYfStockAuditProperties } from '../actions-v2/StageChangeTestEntityForVisualBuilderDto';
25
28
  import { UpdateTestEntityForVisualBuilderProperties } from '../actions-v2/UpdateTestEntityForVisualBuilderDto';
29
+ import { FileRecord } from './FileRecord';
30
+ import { YfStockAuditRecord } from './YfStockAuditRecord';
31
+ import { TeamRecord } from './TeamRecord';
32
+ /** Valid entity types for TestEntityForVisualBuilder */
33
+ export declare type TestEntityForVisualBuilderType = 'DEFAULT' | 'TYPE1' | 'TYPE2';
26
34
  /**
27
35
  * Builder for action execution with dryRun support
28
36
  *
@@ -148,6 +156,9 @@ export declare class TestEntityForVisualBuilderRecord<TProps = TestEntityForVisu
148
156
  private _provider;
149
157
  private _pendingLinks;
150
158
  private _preGeneratedId;
159
+ private _files?;
160
+ private _yfStockAudits?;
161
+ private _teams?;
151
162
  /**
152
163
  * Create a record wrapper.
153
164
  * @param record - The underlying record, or null for create operations
@@ -160,7 +171,7 @@ export declare class TestEntityForVisualBuilderRecord<TProps = TestEntityForVisu
160
171
  /** Record ID - always available (pre-generated for new records) */
161
172
  get id(): string;
162
173
  get entity(): string;
163
- get type(): string | undefined;
174
+ get type(): TestEntityForVisualBuilderType | undefined;
164
175
  /** Record properties - empty object for new (unsaved) records */
165
176
  get properties(): TProps;
166
177
  get title(): string | undefined;
@@ -173,6 +184,108 @@ export declare class TestEntityForVisualBuilderRecord<TProps = TestEntityForVisu
173
184
  get groups(): string[];
174
185
  /** Access the underlying OdinRecord (null for new records) */
175
186
  get record(): OdinRecord<TProps> | null;
187
+ /**
188
+ * Type guard: check if this record is of type DEFAULT
189
+ *
190
+ * When this returns true, TypeScript automatically narrows the type,
191
+ * giving you access to DEFAULT-specific properties.
192
+ *
193
+ * @example
194
+ * ```typescript
195
+ * if (record.isDefault()) {
196
+ * // TypeScript knows record.properties is TestEntityForVisualBuilderProperties
197
+ * console.log(record.properties.SomeTypeSpecificField);
198
+ * }
199
+ * ```
200
+ * @remarks This is the default record type
201
+ */
202
+ isDefault(): this is TestEntityForVisualBuilderRecord<TestEntityForVisualBuilderProperties>;
203
+ /**
204
+ * Type guard: check if this record is of type TYPE1
205
+ *
206
+ * When this returns true, TypeScript automatically narrows the type,
207
+ * giving you access to TYPE1-specific properties.
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * if (record.isType1()) {
212
+ * // TypeScript knows record.properties is Type1TestEntityForVisualBuilderProperties
213
+ * console.log(record.properties.SomeTypeSpecificField);
214
+ * }
215
+ * ```
216
+ * @remarks test 1 entity type
217
+ */
218
+ isType1(): this is TestEntityForVisualBuilderRecord<Type1TestEntityForVisualBuilderProperties>;
219
+ /**
220
+ * Type guard: check if this record is of type TYPE2
221
+ *
222
+ * When this returns true, TypeScript automatically narrows the type,
223
+ * giving you access to TYPE2-specific properties.
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * if (record.isType2()) {
228
+ * // TypeScript knows record.properties is Type2TestEntityForVisualBuilderProperties
229
+ * console.log(record.properties.SomeTypeSpecificField);
230
+ * }
231
+ * ```
232
+ * @remarks Test entity type 2
233
+ */
234
+ isType2(): this is TestEntityForVisualBuilderRecord<Type2TestEntityForVisualBuilderProperties>;
235
+ /** Valid labels for File associations */
236
+ static readonly filesLabels: readonly ["TestEntityForVisualBuilder__File"];
237
+ /**
238
+ * Access linked File records
239
+ * @remarks Available labels: TestEntityForVisualBuilder__File
240
+ * @throws Error if called on a new (unsaved) record
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * // Get all linked File records
245
+ * const items = await record.files.list();
246
+ * const first = await record.files.first();
247
+ *
248
+ * // Filter by label
249
+ * const specific = await record.files.first({ label: 'TestEntityForVisualBuilder__File' });
250
+ * ```
251
+ */
252
+ get files(): RecordLinkManager<FileRecord, typeof TestEntityForVisualBuilderRecord['filesLabels'][number]>;
253
+ /** Valid labels for YfStockAudit associations */
254
+ static readonly yfStockAuditsLabels: readonly ["TestEntityForVisualBuilder__YfStockAudit"];
255
+ /**
256
+ * Access linked YfStockAudit records
257
+ * @remarks Available labels: TestEntityForVisualBuilder__YfStockAudit
258
+ * @throws Error if called on a new (unsaved) record
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * // Get all linked YfStockAudit records
263
+ * const items = await record.yfStockAudits.list();
264
+ * const first = await record.yfStockAudits.first();
265
+ *
266
+ * // Filter by label
267
+ * const specific = await record.yfStockAudits.first({ label: 'TestEntityForVisualBuilder__YfStockAudit' });
268
+ * ```
269
+ */
270
+ get yfStockAudits(): RecordLinkManager<YfStockAuditRecord, typeof TestEntityForVisualBuilderRecord['yfStockAuditsLabels'][number]>;
271
+ /** Valid labels for Team associations */
272
+ static readonly teamsLabels: readonly ["TestEntityForVisualBuilder__Team"];
273
+ /**
274
+ * Access linked Team records
275
+ * @remarks Available labels: TestEntityForVisualBuilder__Team
276
+ * @throws Error if called on a new (unsaved) record
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * // Get all linked Team records
281
+ * const items = await record.teams.list();
282
+ * const first = await record.teams.first();
283
+ *
284
+ * // Filter by label
285
+ * const specific = await record.teams.first({ label: 'TestEntityForVisualBuilder__Team' });
286
+ * ```
287
+ */
288
+ get teams(): RecordLinkManager<TeamRecord, typeof TestEntityForVisualBuilderRecord['teamsLabels'][number]>;
176
289
  /**
177
290
  * Queue a link to be created with the next action.
178
291
  * Works for both create and update actions.
@@ -14,6 +14,8 @@
14
14
  * await record.createTestEntityForVisualBuilder({ ... }).execute();
15
15
  * ```
16
16
  *
17
+ * Entity Types: DEFAULT, TYPE1, TYPE2
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.isTestEntityForVisualBuilderRecord = exports.TestEntityForVisualBuilderRecord = exports.StageChangeTestEntityForVisualBuilderFlowBuilder = 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 FileRecord_1 = require("./FileRecord");
36
+ const YfStockAuditRecord_1 = require("./YfStockAuditRecord");
37
+ const TeamRecord_1 = require("./TeamRecord");
32
38
  /**
33
39
  * Builder for action execution with dryRun support
34
40
  *
@@ -252,6 +258,147 @@ class TestEntityForVisualBuilderRecord {
252
258
  /** Access the underlying OdinRecord (null for new records) */
253
259
  get record() { return this._record; }
254
260
  // ============================================
261
+ // TYPE GUARDS (with TypeScript type predicates)
262
+ // ============================================
263
+ /**
264
+ * Type guard: check if this record is of type DEFAULT
265
+ *
266
+ * When this returns true, TypeScript automatically narrows the type,
267
+ * giving you access to DEFAULT-specific properties.
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * if (record.isDefault()) {
272
+ * // TypeScript knows record.properties is TestEntityForVisualBuilderProperties
273
+ * console.log(record.properties.SomeTypeSpecificField);
274
+ * }
275
+ * ```
276
+ * @remarks This is the default record type
277
+ */
278
+ isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
279
+ /**
280
+ * Type guard: check if this record is of type TYPE1
281
+ *
282
+ * When this returns true, TypeScript automatically narrows the type,
283
+ * giving you access to TYPE1-specific properties.
284
+ *
285
+ * @example
286
+ * ```typescript
287
+ * if (record.isType1()) {
288
+ * // TypeScript knows record.properties is Type1TestEntityForVisualBuilderProperties
289
+ * console.log(record.properties.SomeTypeSpecificField);
290
+ * }
291
+ * ```
292
+ * @remarks test 1 entity type
293
+ */
294
+ isType1() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'TYPE1'; }
295
+ /**
296
+ * Type guard: check if this record is of type TYPE2
297
+ *
298
+ * When this returns true, TypeScript automatically narrows the type,
299
+ * giving you access to TYPE2-specific properties.
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * if (record.isType2()) {
304
+ * // TypeScript knows record.properties is Type2TestEntityForVisualBuilderProperties
305
+ * console.log(record.properties.SomeTypeSpecificField);
306
+ * }
307
+ * ```
308
+ * @remarks Test entity type 2
309
+ */
310
+ isType2() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'TYPE2'; }
311
+ /**
312
+ * Access linked File records
313
+ * @remarks Available labels: TestEntityForVisualBuilder__File
314
+ * @throws Error if called on a new (unsaved) record
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * // Get all linked File records
319
+ * const items = await record.files.list();
320
+ * const first = await record.files.first();
321
+ *
322
+ * // Filter by label
323
+ * const specific = await record.files.first({ label: 'TestEntityForVisualBuilder__File' });
324
+ * ```
325
+ */
326
+ get files() {
327
+ var _a;
328
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
329
+ throw new Error('Cannot access links on a new (unsaved) record');
330
+ if (!this._files) {
331
+ this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
332
+ sourceEntity: 'FieldServiceModule:TestEntityForVisualBuilder',
333
+ targetEntity: 'SchemaModule:File',
334
+ targetModuleName: 'SchemaModule',
335
+ targetEntityName: 'File',
336
+ labels: ['TestEntityForVisualBuilder__File'],
337
+ }, FileRecord_1.FileRecord);
338
+ }
339
+ return this._files;
340
+ }
341
+ /**
342
+ * Access linked YfStockAudit records
343
+ * @remarks Available labels: TestEntityForVisualBuilder__YfStockAudit
344
+ * @throws Error if called on a new (unsaved) record
345
+ *
346
+ * @example
347
+ * ```typescript
348
+ * // Get all linked YfStockAudit records
349
+ * const items = await record.yfStockAudits.list();
350
+ * const first = await record.yfStockAudits.first();
351
+ *
352
+ * // Filter by label
353
+ * const specific = await record.yfStockAudits.first({ label: 'TestEntityForVisualBuilder__YfStockAudit' });
354
+ * ```
355
+ */
356
+ get yfStockAudits() {
357
+ var _a;
358
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
359
+ throw new Error('Cannot access links on a new (unsaved) record');
360
+ if (!this._yfStockAudits) {
361
+ this._yfStockAudits = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
362
+ sourceEntity: 'FieldServiceModule:TestEntityForVisualBuilder',
363
+ targetEntity: 'FieldServiceModule:YfStockAudit',
364
+ targetModuleName: 'FieldServiceModule',
365
+ targetEntityName: 'YfStockAudit',
366
+ labels: ['TestEntityForVisualBuilder__YfStockAudit'],
367
+ }, YfStockAuditRecord_1.YfStockAuditRecord);
368
+ }
369
+ return this._yfStockAudits;
370
+ }
371
+ /**
372
+ * Access linked Team records
373
+ * @remarks Available labels: TestEntityForVisualBuilder__Team
374
+ * @throws Error if called on a new (unsaved) record
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * // Get all linked Team records
379
+ * const items = await record.teams.list();
380
+ * const first = await record.teams.first();
381
+ *
382
+ * // Filter by label
383
+ * const specific = await record.teams.first({ label: 'TestEntityForVisualBuilder__Team' });
384
+ * ```
385
+ */
386
+ get teams() {
387
+ var _a;
388
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
389
+ throw new Error('Cannot access links on a new (unsaved) record');
390
+ if (!this._teams) {
391
+ this._teams = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
392
+ sourceEntity: 'FieldServiceModule:TestEntityForVisualBuilder',
393
+ targetEntity: 'IdentityModule:Team',
394
+ targetModuleName: 'IdentityModule',
395
+ targetEntityName: 'Team',
396
+ labels: ['TestEntityForVisualBuilder__Team'],
397
+ }, TeamRecord_1.TeamRecord);
398
+ }
399
+ return this._teams;
400
+ }
401
+ // ============================================
255
402
  // LINK MANAGEMENT
256
403
  // ============================================
257
404
  /**
@@ -394,6 +541,15 @@ class TestEntityForVisualBuilderRecord {
394
541
  }
395
542
  }
396
543
  exports.TestEntityForVisualBuilderRecord = TestEntityForVisualBuilderRecord;
544
+ // ============================================
545
+ // TYPED LINK ACCESSORS
546
+ // ============================================
547
+ /** Valid labels for File associations */
548
+ TestEntityForVisualBuilderRecord.filesLabels = ['TestEntityForVisualBuilder__File'];
549
+ /** Valid labels for YfStockAudit associations */
550
+ TestEntityForVisualBuilderRecord.yfStockAuditsLabels = ['TestEntityForVisualBuilder__YfStockAudit'];
551
+ /** Valid labels for Team associations */
552
+ TestEntityForVisualBuilderRecord.teamsLabels = ['TestEntityForVisualBuilder__Team'];
397
553
  /** Type guard to check if an object is a TestEntityForVisualBuilderRecord */
398
554
  function isTestEntityForVisualBuilderRecord(obj) {
399
555
  return obj instanceof TestEntityForVisualBuilderRecord;
@@ -19,9 +19,11 @@ 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 { TimeSlotProperties } from '../entities-v2/TimeSlot';
23
24
  import { CreateTimeSlotProperties } from '../actions-v2/CreateTimeSlotDto';
24
25
  import { UpdateTimeSlotProperties } from '../actions-v2/UpdateTimeSlotDto';
26
+ import { UserRecord } from './UserRecord';
25
27
  /**
26
28
  * Builder for action execution with dryRun support
27
29
  *
@@ -85,6 +87,7 @@ export declare class TimeSlotRecord<TProps = TimeSlotProperties> {
85
87
  private _provider;
86
88
  private _pendingLinks;
87
89
  private _preGeneratedId;
90
+ private _users?;
88
91
  /**
89
92
  * Create a record wrapper.
90
93
  * @param record - The underlying record, or null for create operations
@@ -110,6 +113,24 @@ export declare class TimeSlotRecord<TProps = TimeSlotProperties> {
110
113
  get groups(): string[];
111
114
  /** Access the underlying OdinRecord (null for new records) */
112
115
  get record(): OdinRecord<TProps> | null;
116
+ /** Valid labels for User associations */
117
+ static readonly usersLabels: readonly ["User__TimeSlot"];
118
+ /**
119
+ * Access linked User records
120
+ * @remarks Available labels: User__TimeSlot
121
+ * @throws Error if called on a new (unsaved) record
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * // Get all linked User records
126
+ * const items = await record.users.list();
127
+ * const first = await record.users.first();
128
+ *
129
+ * // Filter by label
130
+ * const specific = await record.users.first({ label: 'User__TimeSlot' });
131
+ * ```
132
+ */
133
+ get users(): RecordLinkManager<UserRecord, typeof TimeSlotRecord['usersLabels'][number]>;
113
134
  /**
114
135
  * Queue a link to be created with the next action.
115
136
  * Works for both create and update actions.
@@ -29,6 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.isTimeSlotRecord = exports.TimeSlotRecord = 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 UserRecord_1 = require("./UserRecord");
32
34
  /**
33
35
  * Builder for action execution with dryRun support
34
36
  *
@@ -139,6 +141,36 @@ class TimeSlotRecord {
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 User records
146
+ * @remarks Available labels: User__TimeSlot
147
+ * @throws Error if called on a new (unsaved) record
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * // Get all linked User records
152
+ * const items = await record.users.list();
153
+ * const first = await record.users.first();
154
+ *
155
+ * // Filter by label
156
+ * const specific = await record.users.first({ label: 'User__TimeSlot' });
157
+ * ```
158
+ */
159
+ get users() {
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._users) {
164
+ this._users = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
165
+ sourceEntity: 'IdentityModule:TimeSlot',
166
+ targetEntity: 'IdentityModule:User',
167
+ targetModuleName: 'IdentityModule',
168
+ targetEntityName: 'User',
169
+ labels: ['User__TimeSlot'],
170
+ }, UserRecord_1.UserRecord);
171
+ }
172
+ return this._users;
173
+ }
142
174
  // ============================================
143
175
  // LINK MANAGEMENT
144
176
  // ============================================
@@ -255,6 +287,11 @@ class TimeSlotRecord {
255
287
  }
256
288
  }
257
289
  exports.TimeSlotRecord = TimeSlotRecord;
290
+ // ============================================
291
+ // TYPED LINK ACCESSORS
292
+ // ============================================
293
+ /** Valid labels for User associations */
294
+ TimeSlotRecord.usersLabels = ['User__TimeSlot'];
258
295
  /** Type guard to check if an object is a TimeSlotRecord */
259
296
  function isTimeSlotRecord(obj) {
260
297
  return obj instanceof TimeSlotRecord;
@@ -13,12 +13,15 @@
13
13
  * await record.createTransaction({ ... }).execute();
14
14
  * ```
15
15
  *
16
+ * Entity Types: DEFAULT
17
+ *
16
18
  * AUTO-GENERATED - DO NOT EDIT DIRECTLY
17
19
  */
18
20
  import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
19
21
  import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
20
22
  import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
21
23
  import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
24
+ import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
22
25
  import { TransactionProperties } from '../entities-v2/Transaction';
23
26
  import { CancelTransactionProperties } from '../actions-v2/CancelTransactionDto';
24
27
  import { ConfirmTransactionProperties } from '../actions-v2/ConfirmTransactionDto';
@@ -29,6 +32,15 @@ import { TransactionCreateProperties } from '../actions-v2/TransactionCreateDto'
29
32
  import { TransactionUpdateProperties } from '../actions-v2/TransactionUpdateDto';
30
33
  import { UpdateBillingRequestTransactionStatusProperties } from '../actions-v2/UpdateBillingRequestTransactionStatusDto';
31
34
  import { UpdateTransactionExternalRefProperties } from '../actions-v2/UpdateTransactionExternalRefDto';
35
+ import { PaymentMethodRecord } from './PaymentMethodRecord';
36
+ import { NoteRecord } from './NoteRecord';
37
+ import { CreditNoteRecord } from './CreditNoteRecord';
38
+ import { FileRecord } from './FileRecord';
39
+ import { BillingRequestRecord } from './BillingRequestRecord';
40
+ import { PaymentRecord } from './PaymentRecord';
41
+ import { InvoiceRecord } from './InvoiceRecord';
42
+ /** Valid entity types for Transaction */
43
+ export declare type TransactionType = 'DEFAULT';
32
44
  /**
33
45
  * Builder for action execution with dryRun support
34
46
  *
@@ -92,6 +104,14 @@ export declare class TransactionRecord<TProps = TransactionProperties> {
92
104
  private _provider;
93
105
  private _pendingLinks;
94
106
  private _preGeneratedId;
107
+ private _paymentMethods?;
108
+ private _transactions?;
109
+ private _notes?;
110
+ private _creditNotes?;
111
+ private _files?;
112
+ private _billingRequests?;
113
+ private _payments?;
114
+ private _invoices?;
95
115
  /**
96
116
  * Create a record wrapper.
97
117
  * @param record - The underlying record, or null for create operations
@@ -104,7 +124,7 @@ export declare class TransactionRecord<TProps = TransactionProperties> {
104
124
  /** Record ID - always available (pre-generated for new records) */
105
125
  get id(): string;
106
126
  get entity(): string;
107
- get type(): string | undefined;
127
+ get type(): TransactionType | undefined;
108
128
  /** Record properties - empty object for new (unsaved) records */
109
129
  get properties(): TProps;
110
130
  get title(): string | undefined;
@@ -117,6 +137,166 @@ export declare class TransactionRecord<TProps = TransactionProperties> {
117
137
  get groups(): string[];
118
138
  /** Access the underlying OdinRecord (null for new records) */
119
139
  get record(): OdinRecord<TProps> | null;
140
+ /**
141
+ * Type guard: check if this record is of type DEFAULT
142
+ *
143
+ * When this returns true, TypeScript automatically narrows the type,
144
+ * giving you access to DEFAULT-specific properties.
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * if (record.isDefault()) {
149
+ * // TypeScript knows record.properties is TransactionProperties
150
+ * console.log(record.properties.SomeTypeSpecificField);
151
+ * }
152
+ * ```
153
+ * @remarks This is the default record type
154
+ */
155
+ isDefault(): this is TransactionRecord<TransactionProperties>;
156
+ /** Valid labels for PaymentMethod associations */
157
+ static readonly paymentMethodsLabels: readonly ["Transaction__PaymentMethod"];
158
+ /**
159
+ * Access linked PaymentMethod records
160
+ * @remarks Available labels: Transaction__PaymentMethod
161
+ * @throws Error if called on a new (unsaved) record
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * // Get all linked PaymentMethod records
166
+ * const items = await record.paymentMethods.list();
167
+ * const first = await record.paymentMethods.first();
168
+ *
169
+ * // Filter by label
170
+ * const specific = await record.paymentMethods.first({ label: 'Transaction__PaymentMethod' });
171
+ * ```
172
+ */
173
+ get paymentMethods(): RecordLinkManager<PaymentMethodRecord, typeof TransactionRecord['paymentMethodsLabels'][number]>;
174
+ /** Valid labels for Transaction associations */
175
+ static readonly transactionsLabels: readonly ["Transaction__Transaction"];
176
+ /**
177
+ * Access linked Transaction records
178
+ * @remarks Available labels: Transaction__Transaction
179
+ * @throws Error if called on a new (unsaved) record
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * // Get all linked Transaction records
184
+ * const items = await record.transactions.list();
185
+ * const first = await record.transactions.first();
186
+ *
187
+ * // Filter by label
188
+ * const specific = await record.transactions.first({ label: 'Transaction__Transaction' });
189
+ * ```
190
+ */
191
+ get transactions(): RecordLinkManager<TransactionRecord, typeof TransactionRecord['transactionsLabels'][number]>;
192
+ /** Valid labels for Note associations */
193
+ static readonly notesLabels: readonly ["Transaction__Note"];
194
+ /**
195
+ * Access linked Note records
196
+ * @remarks Available labels: Transaction__Note
197
+ * @throws Error if called on a new (unsaved) record
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * // Get all linked Note records
202
+ * const items = await record.notes.list();
203
+ * const first = await record.notes.first();
204
+ *
205
+ * // Filter by label
206
+ * const specific = await record.notes.first({ label: 'Transaction__Note' });
207
+ * ```
208
+ */
209
+ get notes(): RecordLinkManager<NoteRecord, typeof TransactionRecord['notesLabels'][number]>;
210
+ /** Valid labels for CreditNote associations */
211
+ static readonly creditNotesLabels: readonly ["CreditNote__Transaction"];
212
+ /**
213
+ * Access linked CreditNote records
214
+ * @remarks Available labels: CreditNote__Transaction
215
+ * @throws Error if called on a new (unsaved) record
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * // Get all linked CreditNote records
220
+ * const items = await record.creditNotes.list();
221
+ * const first = await record.creditNotes.first();
222
+ *
223
+ * // Filter by label
224
+ * const specific = await record.creditNotes.first({ label: 'CreditNote__Transaction' });
225
+ * ```
226
+ */
227
+ get creditNotes(): RecordLinkManager<CreditNoteRecord, typeof TransactionRecord['creditNotesLabels'][number]>;
228
+ /** Valid labels for File associations */
229
+ static readonly filesLabels: readonly ["Transaction__File"];
230
+ /**
231
+ * Access linked File records
232
+ * @remarks Available labels: Transaction__File
233
+ * @throws Error if called on a new (unsaved) record
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * // Get all linked File records
238
+ * const items = await record.files.list();
239
+ * const first = await record.files.first();
240
+ *
241
+ * // Filter by label
242
+ * const specific = await record.files.first({ label: 'Transaction__File' });
243
+ * ```
244
+ */
245
+ get files(): RecordLinkManager<FileRecord, typeof TransactionRecord['filesLabels'][number]>;
246
+ /** Valid labels for BillingRequest associations */
247
+ static readonly billingRequestsLabels: readonly ["BillingRequest__Transaction"];
248
+ /**
249
+ * Access linked BillingRequest records
250
+ * @remarks Available labels: BillingRequest__Transaction
251
+ * @throws Error if called on a new (unsaved) record
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * // Get all linked BillingRequest records
256
+ * const items = await record.billingRequests.list();
257
+ * const first = await record.billingRequests.first();
258
+ *
259
+ * // Filter by label
260
+ * const specific = await record.billingRequests.first({ label: 'BillingRequest__Transaction' });
261
+ * ```
262
+ */
263
+ get billingRequests(): RecordLinkManager<BillingRequestRecord, typeof TransactionRecord['billingRequestsLabels'][number]>;
264
+ /** Valid labels for Payment associations */
265
+ static readonly paymentsLabels: readonly ["Payment_Transaction"];
266
+ /**
267
+ * Access linked Payment records
268
+ * @remarks Available labels: Payment_Transaction
269
+ * @throws Error if called on a new (unsaved) record
270
+ *
271
+ * @example
272
+ * ```typescript
273
+ * // Get all linked Payment records
274
+ * const items = await record.payments.list();
275
+ * const first = await record.payments.first();
276
+ *
277
+ * // Filter by label
278
+ * const specific = await record.payments.first({ label: 'Payment_Transaction' });
279
+ * ```
280
+ */
281
+ get payments(): RecordLinkManager<PaymentRecord, typeof TransactionRecord['paymentsLabels'][number]>;
282
+ /** Valid labels for Invoice associations */
283
+ static readonly invoicesLabels: readonly ["Invoice__Transaction"];
284
+ /**
285
+ * Access linked Invoice records
286
+ * @remarks Available labels: Invoice__Transaction
287
+ * @throws Error if called on a new (unsaved) record
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * // Get all linked Invoice records
292
+ * const items = await record.invoices.list();
293
+ * const first = await record.invoices.first();
294
+ *
295
+ * // Filter by label
296
+ * const specific = await record.invoices.first({ label: 'Invoice__Transaction' });
297
+ * ```
298
+ */
299
+ get invoices(): RecordLinkManager<InvoiceRecord, typeof TransactionRecord['invoicesLabels'][number]>;
120
300
  /**
121
301
  * Queue a link to be created with the next action.
122
302
  * Works for both create and update actions.