@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.
- package/README.md +11 -10
- package/dist/actions-v2/CreateOrderFromBrskDto.d.ts +75 -0
- package/dist/actions-v2/CreateOrderItemFromBrskDto.d.ts +191 -0
- package/dist/actions-v2/CreateOrderItemFromBrskDto.js +52 -0
- package/dist/entities-v2/Order.d.ts +7 -0
- package/dist/entities-v2/Order.js +2 -0
- package/dist/entities-v2/OrderItem.d.ts +7 -0
- package/dist/entities-v2/OrderItem.js +2 -0
- package/dist/entities-v2/Product.d.ts +0 -42
- package/dist/entities-v2/Product.js +0 -2
- package/dist/records-v2/AccountCreditRecord.d.ts +62 -1
- package/dist/records-v2/AccountCreditRecord.js +91 -0
- package/dist/records-v2/AccountRecord.d.ts +306 -2
- package/dist/records-v2/AccountRecord.js +451 -0
- package/dist/records-v2/ActivityLogRecord.d.ts +122 -1
- package/dist/records-v2/ActivityLogRecord.js +190 -0
- package/dist/records-v2/ActivityRecord.d.ts +255 -2
- package/dist/records-v2/ActivityRecord.js +387 -0
- package/dist/records-v2/AddressRecord.d.ts +321 -0
- package/dist/records-v2/AddressRecord.js +532 -0
- package/dist/records-v2/AffiliateCodeRecord.d.ts +102 -1
- package/dist/records-v2/AffiliateCodeRecord.js +157 -0
- package/dist/records-v2/AppointmentRecord.d.ts +141 -0
- package/dist/records-v2/AppointmentRecord.js +235 -0
- package/dist/records-v2/BillingAdjustmentRecord.d.ts +81 -0
- package/dist/records-v2/BillingAdjustmentRecord.js +136 -0
- package/dist/records-v2/BillingRequestRecord.d.ts +178 -2
- package/dist/records-v2/BillingRequestRecord.js +271 -0
- package/dist/records-v2/BlockageA55Record.d.ts +103 -2
- package/dist/records-v2/BlockageA55Record.js +157 -0
- package/dist/records-v2/BrskEntityMigrationErrorRecord.d.ts +21 -1
- package/dist/records-v2/BrskEntityMigrationErrorRecord.js +21 -0
- package/dist/records-v2/CallEventRecord.d.ts +82 -1
- package/dist/records-v2/CallEventRecord.js +124 -0
- package/dist/records-v2/CallLegRecord.d.ts +82 -1
- package/dist/records-v2/CallLegRecord.js +124 -0
- package/dist/records-v2/CallRecord.d.ts +202 -1
- package/dist/records-v2/CallRecord.js +322 -0
- package/dist/records-v2/CallTransferRecord.d.ts +102 -1
- package/dist/records-v2/CallTransferRecord.js +157 -0
- package/dist/records-v2/CampaignRecord.d.ts +83 -2
- package/dist/records-v2/CampaignRecord.js +124 -0
- package/dist/records-v2/CaseRecord.d.ts +418 -2
- package/dist/records-v2/CaseRecord.js +667 -0
- package/dist/records-v2/ChangeReasonRecord.d.ts +171 -2
- package/dist/records-v2/ChangeReasonRecord.js +238 -0
- package/dist/records-v2/ChurnRequestRecord.d.ts +62 -1
- package/dist/records-v2/ChurnRequestRecord.js +91 -0
- package/dist/records-v2/ContactRecord.d.ts +560 -0
- package/dist/records-v2/ContactRecord.js +927 -0
- package/dist/records-v2/ContractBuyOutRecord.d.ts +162 -1
- package/dist/records-v2/ContractBuyOutRecord.js +256 -0
- package/dist/records-v2/ConversationFeedbackRecord.d.ts +102 -1
- package/dist/records-v2/ConversationFeedbackRecord.js +157 -0
- package/dist/records-v2/ConversationRecord.d.ts +102 -1
- package/dist/records-v2/ConversationRecord.js +157 -0
- package/dist/records-v2/CreditNoteRecord.d.ts +81 -0
- package/dist/records-v2/CreditNoteRecord.js +136 -0
- package/dist/records-v2/CrmDatasetRecord.d.ts +191 -2
- package/dist/records-v2/CrmDatasetRecord.js +271 -0
- package/dist/records-v2/CustomerDeviceAtaRecord.d.ts +21 -0
- package/dist/records-v2/CustomerDeviceAtaRecord.js +37 -0
- package/dist/records-v2/CustomerDeviceConfigurationRecord.d.ts +62 -1
- package/dist/records-v2/CustomerDeviceConfigurationRecord.js +91 -0
- package/dist/records-v2/CustomerDeviceOntRecord.d.ts +181 -0
- package/dist/records-v2/CustomerDeviceOntRecord.js +301 -0
- package/dist/records-v2/CustomerDeviceRouterRecord.d.ts +141 -0
- package/dist/records-v2/CustomerDeviceRouterRecord.js +235 -0
- package/dist/records-v2/CustomerPhonePortingRecord.d.ts +21 -0
- package/dist/records-v2/CustomerPhonePortingRecord.js +37 -0
- package/dist/records-v2/DiscountRecord.d.ts +121 -0
- package/dist/records-v2/DiscountRecord.js +202 -0
- package/dist/records-v2/EmailRecord.d.ts +230 -2
- package/dist/records-v2/EmailRecord.js +336 -0
- package/dist/records-v2/EmailSenderRecord.d.ts +42 -1
- package/dist/records-v2/EmailSenderRecord.js +58 -0
- package/dist/records-v2/EmailTemplateRecord.d.ts +21 -1
- package/dist/records-v2/EmailTemplateRecord.js +21 -0
- package/dist/records-v2/FieldServiceDispatchedProductRecord.d.ts +135 -2
- package/dist/records-v2/FieldServiceDispatchedProductRecord.js +189 -0
- package/dist/records-v2/FieldServiceProductRecord.d.ts +115 -2
- package/dist/records-v2/FieldServiceProductRecord.js +156 -0
- package/dist/records-v2/FileRecord.d.ts +1211 -2
- package/dist/records-v2/FileRecord.js +1902 -0
- package/dist/records-v2/ImpersonationTrackerRecord.d.ts +62 -1
- package/dist/records-v2/ImpersonationTrackerRecord.js +91 -0
- package/dist/records-v2/InternalInstallAuditRecord.d.ts +83 -2
- package/dist/records-v2/InternalInstallAuditRecord.js +124 -0
- package/dist/records-v2/InvoiceItemRecord.d.ts +40 -0
- package/dist/records-v2/InvoiceItemRecord.js +69 -0
- package/dist/records-v2/InvoiceRecord.d.ts +399 -2
- package/dist/records-v2/InvoiceRecord.js +635 -0
- package/dist/records-v2/KnowledgeArticleRecord.d.ts +98 -2
- package/dist/records-v2/KnowledgeArticleRecord.js +139 -0
- package/dist/records-v2/LeadRecord.d.ts +261 -0
- package/dist/records-v2/LeadRecord.js +433 -0
- package/dist/records-v2/MessageRecord.d.ts +99 -2
- package/dist/records-v2/MessageRecord.js +140 -0
- package/dist/records-v2/NetworkDeviceRecord.d.ts +43 -2
- package/dist/records-v2/NetworkDeviceRecord.js +58 -0
- package/dist/records-v2/NoteRecord.d.ts +1121 -1
- package/dist/records-v2/NoteRecord.js +1839 -0
- package/dist/records-v2/OfferRecord.d.ts +154 -2
- package/dist/records-v2/OfferRecord.js +221 -0
- package/dist/records-v2/OhAuditOfInstallationRecord.d.ts +83 -2
- package/dist/records-v2/OhAuditOfInstallationRecord.js +124 -0
- package/dist/records-v2/OhExternalAuditRecord.d.ts +83 -2
- package/dist/records-v2/OhExternalAuditRecord.js +124 -0
- package/dist/records-v2/OhInProgressAuditRecord.d.ts +83 -2
- package/dist/records-v2/OhInProgressAuditRecord.js +124 -0
- package/dist/records-v2/OhInstallationAuditRecord.d.ts +83 -2
- package/dist/records-v2/OhInstallationAuditRecord.js +124 -0
- package/dist/records-v2/OhRetroAuditRecord.d.ts +83 -2
- package/dist/records-v2/OhRetroAuditRecord.js +124 -0
- package/dist/records-v2/OneTouchSwitchRecord.d.ts +255 -2
- package/dist/records-v2/OneTouchSwitchRecord.js +387 -0
- package/dist/records-v2/OntReplacementApprovalRecord.d.ts +62 -1
- package/dist/records-v2/OntReplacementApprovalRecord.js +91 -0
- package/dist/records-v2/OrderCheckRecord.d.ts +21 -0
- package/dist/records-v2/OrderCheckRecord.js +37 -0
- package/dist/records-v2/OrderItemRecord.d.ts +309 -0
- package/dist/records-v2/OrderItemRecord.js +501 -0
- package/dist/records-v2/OrderKciRecord.d.ts +42 -1
- package/dist/records-v2/OrderKciRecord.js +58 -0
- package/dist/records-v2/OrderRecord.d.ts +620 -0
- package/dist/records-v2/OrderRecord.js +1026 -0
- package/dist/records-v2/OutageRecord.d.ts +42 -1
- package/dist/records-v2/OutageRecord.js +58 -0
- package/dist/records-v2/OverlayRealA55Record.d.ts +83 -2
- package/dist/records-v2/OverlayRealA55Record.js +124 -0
- package/dist/records-v2/PICRequestRecord.d.ts +62 -1
- package/dist/records-v2/PICRequestRecord.js +91 -0
- package/dist/records-v2/PaymentMethodRecord.d.ts +121 -0
- package/dist/records-v2/PaymentMethodRecord.js +202 -0
- package/dist/records-v2/PaymentMethodRefundRecord.d.ts +181 -0
- package/dist/records-v2/PaymentMethodRefundRecord.js +301 -0
- package/dist/records-v2/PaymentRecord.d.ts +82 -1
- package/dist/records-v2/PaymentRecord.js +124 -0
- package/dist/records-v2/PermissionToFailRecord.d.ts +61 -0
- package/dist/records-v2/PermissionToFailRecord.js +103 -0
- package/dist/records-v2/PgAccountValidationRecord.d.ts +21 -1
- package/dist/records-v2/PgAccountValidationRecord.js +21 -0
- package/dist/records-v2/PgContactRecord.d.ts +62 -1
- package/dist/records-v2/PgContactRecord.js +91 -0
- package/dist/records-v2/PgDirectDebitFileRecord.d.ts +95 -2
- package/dist/records-v2/PgDirectDebitFileRecord.js +123 -0
- package/dist/records-v2/PgDisputeRecord.d.ts +62 -1
- package/dist/records-v2/PgDisputeRecord.js +91 -0
- package/dist/records-v2/PgFileAllocationRecord.d.ts +115 -2
- package/dist/records-v2/PgFileAllocationRecord.js +156 -0
- package/dist/records-v2/PgLogRecord.d.ts +21 -1
- package/dist/records-v2/PgLogRecord.js +21 -0
- package/dist/records-v2/PgPaymentMethodRecord.d.ts +102 -1
- package/dist/records-v2/PgPaymentMethodRecord.js +157 -0
- package/dist/records-v2/PgSortCodeSubstitutionRecord.d.ts +21 -1
- package/dist/records-v2/PgSortCodeSubstitutionRecord.js +21 -0
- package/dist/records-v2/PgTransactionRecord.d.ts +135 -2
- package/dist/records-v2/PgTransactionRecord.js +189 -0
- package/dist/records-v2/PgVocalinkRecord.d.ts +21 -1
- package/dist/records-v2/PgVocalinkRecord.js +21 -0
- package/dist/records-v2/PgWebhookAttemptRecord.d.ts +42 -1
- package/dist/records-v2/PgWebhookAttemptRecord.js +58 -0
- package/dist/records-v2/PgWebhookRecord.d.ts +122 -1
- package/dist/records-v2/PgWebhookRecord.js +190 -0
- package/dist/records-v2/PhoneNumberRecord.d.ts +41 -0
- package/dist/records-v2/PhoneNumberRecord.js +70 -0
- package/dist/records-v2/PriceBookRecord.d.ts +21 -0
- package/dist/records-v2/PriceBookRecord.js +37 -0
- package/dist/records-v2/ProductRecord.d.ts +258 -2
- package/dist/records-v2/ProductRecord.js +351 -0
- package/dist/records-v2/PushNotificationRecord.d.ts +162 -1
- package/dist/records-v2/PushNotificationRecord.js +256 -0
- package/dist/records-v2/ReferralRecord.d.ts +143 -2
- package/dist/records-v2/ReferralRecord.js +223 -0
- package/dist/records-v2/RemediationOutcomeFormRecord.d.ts +83 -2
- package/dist/records-v2/RemediationOutcomeFormRecord.js +124 -0
- package/dist/records-v2/RemediationRequiredReasonRecord.d.ts +103 -2
- package/dist/records-v2/RemediationRequiredReasonRecord.js +157 -0
- package/dist/records-v2/ReturnsRecord.d.ts +62 -1
- package/dist/records-v2/ReturnsRecord.js +91 -0
- package/dist/records-v2/RewardRecord.d.ts +123 -2
- package/dist/records-v2/RewardRecord.js +190 -0
- package/dist/records-v2/SalesTerritoryRecord.d.ts +79 -2
- package/dist/records-v2/SalesTerritoryRecord.js +107 -0
- package/dist/records-v2/ScheduleSlotRecord.d.ts +42 -1
- package/dist/records-v2/ScheduleSlotRecord.js +58 -0
- package/dist/records-v2/ServiceAppointmentConfigRecord.d.ts +287 -2
- package/dist/records-v2/ServiceAppointmentConfigRecord.js +367 -0
- package/dist/records-v2/ServiceAppointmentRecord.d.ts +81 -0
- package/dist/records-v2/ServiceAppointmentRecord.js +136 -0
- package/dist/records-v2/ServiceRecord.d.ts +40 -0
- package/dist/records-v2/ServiceRecord.js +69 -0
- package/dist/records-v2/ServiceVisitAuditRecord.d.ts +83 -2
- package/dist/records-v2/ServiceVisitAuditRecord.js +124 -0
- package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.d.ts +83 -2
- package/dist/records-v2/SiteSpecificRiskAssessmentOutcomeFormRecord.js +124 -0
- package/dist/records-v2/SmsMessageRecord.d.ts +175 -2
- package/dist/records-v2/SmsMessageRecord.js +255 -0
- package/dist/records-v2/SweeperMaintenanceAuditRecord.d.ts +83 -2
- package/dist/records-v2/SweeperMaintenanceAuditRecord.js +124 -0
- package/dist/records-v2/TeamRecord.d.ts +101 -0
- package/dist/records-v2/TeamRecord.js +169 -0
- package/dist/records-v2/TestEntityForVisualBuilderRecord.d.ts +115 -2
- package/dist/records-v2/TestEntityForVisualBuilderRecord.js +156 -0
- package/dist/records-v2/TimeSlotRecord.d.ts +21 -0
- package/dist/records-v2/TimeSlotRecord.js +37 -0
- package/dist/records-v2/TransactionRecord.d.ts +181 -1
- package/dist/records-v2/TransactionRecord.js +288 -0
- package/dist/records-v2/TwilioUserUpdateRecord.d.ts +42 -1
- package/dist/records-v2/TwilioUserUpdateRecord.js +58 -0
- package/dist/records-v2/UgAuditOfInstallationRecord.d.ts +83 -2
- package/dist/records-v2/UgAuditOfInstallationRecord.js +124 -0
- package/dist/records-v2/UgExternalAuditRecord.d.ts +83 -2
- package/dist/records-v2/UgExternalAuditRecord.js +124 -0
- package/dist/records-v2/UgInProgressAuditRecord.d.ts +83 -2
- package/dist/records-v2/UgInProgressAuditRecord.js +124 -0
- package/dist/records-v2/UgInstallationAuditRecord.d.ts +83 -2
- package/dist/records-v2/UgInstallationAuditRecord.js +124 -0
- package/dist/records-v2/UgRetroAuditRecord.d.ts +83 -2
- package/dist/records-v2/UgRetroAuditRecord.js +124 -0
- package/dist/records-v2/UserRecord.d.ts +400 -0
- package/dist/records-v2/UserRecord.js +663 -0
- package/dist/records-v2/VisitRecord.d.ts +121 -0
- package/dist/records-v2/VisitRecord.js +202 -0
- package/dist/records-v2/VoiceConfigurationRecord.d.ts +21 -0
- package/dist/records-v2/VoiceConfigurationRecord.js +37 -0
- package/dist/records-v2/WayleaveAuditRecord.d.ts +83 -2
- package/dist/records-v2/WayleaveAuditRecord.js +124 -0
- package/dist/records-v2/WorkOrderRecord.d.ts +1226 -2
- package/dist/records-v2/WorkOrderRecord.js +1865 -0
- package/dist/records-v2/WorkOrderStatusUpdateRecord.d.ts +75 -2
- package/dist/records-v2/WorkOrderStatusUpdateRecord.js +90 -0
- package/dist/records-v2/YfFieldServiceVisitRecord.d.ts +83 -2
- package/dist/records-v2/YfFieldServiceVisitRecord.js +124 -0
- package/dist/records-v2/YfStockAuditRecord.d.ts +103 -2
- package/dist/records-v2/YfStockAuditRecord.js +157 -0
- package/dist/records-v2/index.d.ts +1 -1
- package/dist/records-v2/index.js +5 -5
- 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 {
|
|
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():
|
|
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():
|
|
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.
|