@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,14 +13,21 @@
|
|
|
13
13
|
* await record.createImpersonationTracker({ ... }).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 { ImpersonationTrackerProperties } from '../entities-v2/ImpersonationTracker';
|
|
23
26
|
import { CreateImpersonationTrackerProperties } from '../actions-v2/CreateImpersonationTrackerDto';
|
|
27
|
+
import { UserRecord } from './UserRecord';
|
|
28
|
+
import { ContactRecord } from './ContactRecord';
|
|
29
|
+
/** Valid entity types for ImpersonationTracker */
|
|
30
|
+
export declare type ImpersonationTrackerType = 'DEFAULT';
|
|
24
31
|
/**
|
|
25
32
|
* Builder for action execution with dryRun support
|
|
26
33
|
*
|
|
@@ -84,6 +91,8 @@ export declare class ImpersonationTrackerRecord<TProps = ImpersonationTrackerPro
|
|
|
84
91
|
private _provider;
|
|
85
92
|
private _pendingLinks;
|
|
86
93
|
private _preGeneratedId;
|
|
94
|
+
private _users?;
|
|
95
|
+
private _contacts?;
|
|
87
96
|
/**
|
|
88
97
|
* Create a record wrapper.
|
|
89
98
|
* @param record - The underlying record, or null for create operations
|
|
@@ -96,7 +105,7 @@ export declare class ImpersonationTrackerRecord<TProps = ImpersonationTrackerPro
|
|
|
96
105
|
/** Record ID - always available (pre-generated for new records) */
|
|
97
106
|
get id(): string;
|
|
98
107
|
get entity(): string;
|
|
99
|
-
get type():
|
|
108
|
+
get type(): ImpersonationTrackerType | undefined;
|
|
100
109
|
/** Record properties - empty object for new (unsaved) records */
|
|
101
110
|
get properties(): TProps;
|
|
102
111
|
get title(): string | undefined;
|
|
@@ -109,6 +118,58 @@ export declare class ImpersonationTrackerRecord<TProps = ImpersonationTrackerPro
|
|
|
109
118
|
get groups(): string[];
|
|
110
119
|
/** Access the underlying OdinRecord (null for new records) */
|
|
111
120
|
get record(): OdinRecord<TProps> | null;
|
|
121
|
+
/**
|
|
122
|
+
* Type guard: check if this record is of type DEFAULT
|
|
123
|
+
*
|
|
124
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
125
|
+
* giving you access to DEFAULT-specific properties.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* if (record.isDefault()) {
|
|
130
|
+
* // TypeScript knows record.properties is ImpersonationTrackerProperties
|
|
131
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
* @remarks This is the default record type
|
|
135
|
+
*/
|
|
136
|
+
isDefault(): this is ImpersonationTrackerRecord<ImpersonationTrackerProperties>;
|
|
137
|
+
/** Valid labels for User associations */
|
|
138
|
+
static readonly usersLabels: readonly ["User__ImpersonationTracker"];
|
|
139
|
+
/**
|
|
140
|
+
* Access linked User records
|
|
141
|
+
* @remarks Available labels: User__ImpersonationTracker
|
|
142
|
+
* @throws Error if called on a new (unsaved) record
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* // Get all linked User records
|
|
147
|
+
* const items = await record.users.list();
|
|
148
|
+
* const first = await record.users.first();
|
|
149
|
+
*
|
|
150
|
+
* // Filter by label
|
|
151
|
+
* const specific = await record.users.first({ label: 'User__ImpersonationTracker' });
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
get users(): RecordLinkManager<UserRecord, typeof ImpersonationTrackerRecord['usersLabels'][number]>;
|
|
155
|
+
/** Valid labels for Contact associations */
|
|
156
|
+
static readonly contactsLabels: readonly ["ImpersonationTracker__Contact"];
|
|
157
|
+
/**
|
|
158
|
+
* Access linked Contact records
|
|
159
|
+
* @remarks Available labels: ImpersonationTracker__Contact
|
|
160
|
+
* @throws Error if called on a new (unsaved) record
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* // Get all linked Contact records
|
|
165
|
+
* const items = await record.contacts.list();
|
|
166
|
+
* const first = await record.contacts.first();
|
|
167
|
+
*
|
|
168
|
+
* // Filter by label
|
|
169
|
+
* const specific = await record.contacts.first({ label: 'ImpersonationTracker__Contact' });
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
get contacts(): RecordLinkManager<ContactRecord, typeof ImpersonationTrackerRecord['contactsLabels'][number]>;
|
|
112
173
|
/**
|
|
113
174
|
* Queue a link to be created with the next action.
|
|
114
175
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createImpersonationTracker({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: DEFAULT
|
|
18
|
+
*
|
|
17
19
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
18
20
|
*/
|
|
19
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
@@ -29,6 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isImpersonationTrackerRecord = exports.ImpersonationTrackerRecord = 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 UserRecord_1 = require("./UserRecord");
|
|
36
|
+
const ContactRecord_1 = require("./ContactRecord");
|
|
32
37
|
/**
|
|
33
38
|
* Builder for action execution with dryRun support
|
|
34
39
|
*
|
|
@@ -140,6 +145,85 @@ class ImpersonationTrackerRecord {
|
|
|
140
145
|
/** Access the underlying OdinRecord (null for new records) */
|
|
141
146
|
get record() { return this._record; }
|
|
142
147
|
// ============================================
|
|
148
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
149
|
+
// ============================================
|
|
150
|
+
/**
|
|
151
|
+
* Type guard: check if this record is of type DEFAULT
|
|
152
|
+
*
|
|
153
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
154
|
+
* giving you access to DEFAULT-specific properties.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* if (record.isDefault()) {
|
|
159
|
+
* // TypeScript knows record.properties is ImpersonationTrackerProperties
|
|
160
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
161
|
+
* }
|
|
162
|
+
* ```
|
|
163
|
+
* @remarks This is the default record type
|
|
164
|
+
*/
|
|
165
|
+
isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
|
|
166
|
+
/**
|
|
167
|
+
* Access linked User records
|
|
168
|
+
* @remarks Available labels: User__ImpersonationTracker
|
|
169
|
+
* @throws Error if called on a new (unsaved) record
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* // Get all linked User records
|
|
174
|
+
* const items = await record.users.list();
|
|
175
|
+
* const first = await record.users.first();
|
|
176
|
+
*
|
|
177
|
+
* // Filter by label
|
|
178
|
+
* const specific = await record.users.first({ label: 'User__ImpersonationTracker' });
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
get users() {
|
|
182
|
+
var _a;
|
|
183
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
184
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
185
|
+
if (!this._users) {
|
|
186
|
+
this._users = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
187
|
+
sourceEntity: 'IdentityModule:ImpersonationTracker',
|
|
188
|
+
targetEntity: 'IdentityModule:User',
|
|
189
|
+
targetModuleName: 'IdentityModule',
|
|
190
|
+
targetEntityName: 'User',
|
|
191
|
+
labels: ['User__ImpersonationTracker'],
|
|
192
|
+
}, UserRecord_1.UserRecord);
|
|
193
|
+
}
|
|
194
|
+
return this._users;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Access linked Contact records
|
|
198
|
+
* @remarks Available labels: ImpersonationTracker__Contact
|
|
199
|
+
* @throws Error if called on a new (unsaved) record
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```typescript
|
|
203
|
+
* // Get all linked Contact records
|
|
204
|
+
* const items = await record.contacts.list();
|
|
205
|
+
* const first = await record.contacts.first();
|
|
206
|
+
*
|
|
207
|
+
* // Filter by label
|
|
208
|
+
* const specific = await record.contacts.first({ label: 'ImpersonationTracker__Contact' });
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
get contacts() {
|
|
212
|
+
var _a;
|
|
213
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
214
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
215
|
+
if (!this._contacts) {
|
|
216
|
+
this._contacts = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
217
|
+
sourceEntity: 'IdentityModule:ImpersonationTracker',
|
|
218
|
+
targetEntity: 'CrmModule:Contact',
|
|
219
|
+
targetModuleName: 'CrmModule',
|
|
220
|
+
targetEntityName: 'Contact',
|
|
221
|
+
labels: ['ImpersonationTracker__Contact'],
|
|
222
|
+
}, ContactRecord_1.ContactRecord);
|
|
223
|
+
}
|
|
224
|
+
return this._contacts;
|
|
225
|
+
}
|
|
226
|
+
// ============================================
|
|
143
227
|
// LINK MANAGEMENT
|
|
144
228
|
// ============================================
|
|
145
229
|
/**
|
|
@@ -215,6 +299,13 @@ class ImpersonationTrackerRecord {
|
|
|
215
299
|
}
|
|
216
300
|
}
|
|
217
301
|
exports.ImpersonationTrackerRecord = ImpersonationTrackerRecord;
|
|
302
|
+
// ============================================
|
|
303
|
+
// TYPED LINK ACCESSORS
|
|
304
|
+
// ============================================
|
|
305
|
+
/** Valid labels for User associations */
|
|
306
|
+
ImpersonationTrackerRecord.usersLabels = ['User__ImpersonationTracker'];
|
|
307
|
+
/** Valid labels for Contact associations */
|
|
308
|
+
ImpersonationTrackerRecord.contactsLabels = ['ImpersonationTracker__Contact'];
|
|
218
309
|
/** Type guard to check if an object is a ImpersonationTrackerRecord */
|
|
219
310
|
function isImpersonationTrackerRecord(obj) {
|
|
220
311
|
return obj instanceof ImpersonationTrackerRecord;
|
|
@@ -13,13 +13,21 @@
|
|
|
13
13
|
* await record.createInternalInstallAudit({ ... }).execute();
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
+
* Entity Types: OUTCOME_FORM
|
|
17
|
+
*
|
|
16
18
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
17
19
|
*/
|
|
18
20
|
import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
|
|
19
21
|
import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
|
|
20
22
|
import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
|
|
21
23
|
import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
|
|
22
|
-
import {
|
|
24
|
+
import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
|
|
25
|
+
import { InternalInstallAuditProperties, OutcomeFormInternalInstallAuditProperties } from '../entities-v2/InternalInstallAudit';
|
|
26
|
+
import { NoteRecord } from './NoteRecord';
|
|
27
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
28
|
+
import { FileRecord } from './FileRecord';
|
|
29
|
+
/** Valid entity types for InternalInstallAudit */
|
|
30
|
+
export declare type InternalInstallAuditType = 'OUTCOME_FORM';
|
|
23
31
|
/**
|
|
24
32
|
* Builder for action execution with dryRun support
|
|
25
33
|
*
|
|
@@ -83,6 +91,9 @@ export declare class InternalInstallAuditRecord<TProps = InternalInstallAuditPro
|
|
|
83
91
|
private _provider;
|
|
84
92
|
private _pendingLinks;
|
|
85
93
|
private _preGeneratedId;
|
|
94
|
+
private _notes?;
|
|
95
|
+
private _workOrders?;
|
|
96
|
+
private _files?;
|
|
86
97
|
/**
|
|
87
98
|
* Create a record wrapper.
|
|
88
99
|
* @param record - The underlying record, or null for create operations
|
|
@@ -95,7 +106,7 @@ export declare class InternalInstallAuditRecord<TProps = InternalInstallAuditPro
|
|
|
95
106
|
/** Record ID - always available (pre-generated for new records) */
|
|
96
107
|
get id(): string;
|
|
97
108
|
get entity(): string;
|
|
98
|
-
get type():
|
|
109
|
+
get type(): InternalInstallAuditType | undefined;
|
|
99
110
|
/** Record properties - empty object for new (unsaved) records */
|
|
100
111
|
get properties(): TProps;
|
|
101
112
|
get title(): string | undefined;
|
|
@@ -108,6 +119,76 @@ export declare class InternalInstallAuditRecord<TProps = InternalInstallAuditPro
|
|
|
108
119
|
get groups(): string[];
|
|
109
120
|
/** Access the underlying OdinRecord (null for new records) */
|
|
110
121
|
get record(): OdinRecord<TProps> | null;
|
|
122
|
+
/**
|
|
123
|
+
* Type guard: check if this record is of type OUTCOME_FORM
|
|
124
|
+
*
|
|
125
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
126
|
+
* giving you access to OUTCOME_FORM-specific properties.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* if (record.isOutcomeForm()) {
|
|
131
|
+
* // TypeScript knows record.properties is OutcomeFormInternalInstallAuditProperties
|
|
132
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
* @remarks outcome form
|
|
136
|
+
*/
|
|
137
|
+
isOutcomeForm(): this is InternalInstallAuditRecord<OutcomeFormInternalInstallAuditProperties>;
|
|
138
|
+
/** Valid labels for Note associations */
|
|
139
|
+
static readonly notesLabels: readonly ["InternalInstallAudit_Note"];
|
|
140
|
+
/**
|
|
141
|
+
* Access linked Note records
|
|
142
|
+
* @remarks Available labels: InternalInstallAudit_Note
|
|
143
|
+
* @throws Error if called on a new (unsaved) record
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* // Get all linked Note records
|
|
148
|
+
* const items = await record.notes.list();
|
|
149
|
+
* const first = await record.notes.first();
|
|
150
|
+
*
|
|
151
|
+
* // Filter by label
|
|
152
|
+
* const specific = await record.notes.first({ label: 'InternalInstallAudit_Note' });
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
get notes(): RecordLinkManager<NoteRecord, typeof InternalInstallAuditRecord['notesLabels'][number]>;
|
|
156
|
+
/** Valid labels for WorkOrder associations */
|
|
157
|
+
static readonly workOrdersLabels: readonly ["WorkOrder_InternalInstallAudit"];
|
|
158
|
+
/**
|
|
159
|
+
* Access linked WorkOrder records
|
|
160
|
+
* @remarks Available labels: WorkOrder_InternalInstallAudit
|
|
161
|
+
* @throws Error if called on a new (unsaved) record
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```typescript
|
|
165
|
+
* // Get all linked WorkOrder records
|
|
166
|
+
* const items = await record.workOrders.list();
|
|
167
|
+
* const first = await record.workOrders.first();
|
|
168
|
+
*
|
|
169
|
+
* // Filter by label
|
|
170
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder_InternalInstallAudit' });
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof InternalInstallAuditRecord['workOrdersLabels'][number]>;
|
|
174
|
+
/** Valid labels for File associations */
|
|
175
|
+
static readonly filesLabels: readonly ["InternalInstallAudit_File"];
|
|
176
|
+
/**
|
|
177
|
+
* Access linked File records
|
|
178
|
+
* @remarks Available labels: InternalInstallAudit_File
|
|
179
|
+
* @throws Error if called on a new (unsaved) record
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* // Get all linked File records
|
|
184
|
+
* const items = await record.files.list();
|
|
185
|
+
* const first = await record.files.first();
|
|
186
|
+
*
|
|
187
|
+
* // Filter by label
|
|
188
|
+
* const specific = await record.files.first({ label: 'InternalInstallAudit_File' });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
get files(): RecordLinkManager<FileRecord, typeof InternalInstallAuditRecord['filesLabels'][number]>;
|
|
111
192
|
/**
|
|
112
193
|
* Queue a link to be created with the next action.
|
|
113
194
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createInternalInstallAudit({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: OUTCOME_FORM
|
|
18
|
+
*
|
|
17
19
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
18
20
|
*/
|
|
19
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
@@ -29,6 +31,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isInternalInstallAuditRecord = exports.InternalInstallAuditRecord = void 0;
|
|
30
32
|
const uuid_1 = require("uuid");
|
|
31
33
|
const core_1 = require("@d19n/odin-types/dist/core");
|
|
34
|
+
const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
|
|
35
|
+
const NoteRecord_1 = require("./NoteRecord");
|
|
36
|
+
const WorkOrderRecord_1 = require("./WorkOrderRecord");
|
|
37
|
+
const FileRecord_1 = require("./FileRecord");
|
|
32
38
|
/**
|
|
33
39
|
* Builder for action execution with dryRun support
|
|
34
40
|
*
|
|
@@ -140,6 +146,115 @@ class InternalInstallAuditRecord {
|
|
|
140
146
|
/** Access the underlying OdinRecord (null for new records) */
|
|
141
147
|
get record() { return this._record; }
|
|
142
148
|
// ============================================
|
|
149
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
150
|
+
// ============================================
|
|
151
|
+
/**
|
|
152
|
+
* Type guard: check if this record is of type OUTCOME_FORM
|
|
153
|
+
*
|
|
154
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
155
|
+
* giving you access to OUTCOME_FORM-specific properties.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* if (record.isOutcomeForm()) {
|
|
160
|
+
* // TypeScript knows record.properties is OutcomeFormInternalInstallAuditProperties
|
|
161
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
* @remarks outcome form
|
|
165
|
+
*/
|
|
166
|
+
isOutcomeForm() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTCOME_FORM'; }
|
|
167
|
+
/**
|
|
168
|
+
* Access linked Note records
|
|
169
|
+
* @remarks Available labels: InternalInstallAudit_Note
|
|
170
|
+
* @throws Error if called on a new (unsaved) record
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* // Get all linked Note records
|
|
175
|
+
* const items = await record.notes.list();
|
|
176
|
+
* const first = await record.notes.first();
|
|
177
|
+
*
|
|
178
|
+
* // Filter by label
|
|
179
|
+
* const specific = await record.notes.first({ label: 'InternalInstallAudit_Note' });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
get notes() {
|
|
183
|
+
var _a;
|
|
184
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
185
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
186
|
+
if (!this._notes) {
|
|
187
|
+
this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
188
|
+
sourceEntity: 'FieldServiceModule:InternalInstallAudit',
|
|
189
|
+
targetEntity: 'SupportModule:Note',
|
|
190
|
+
targetModuleName: 'SupportModule',
|
|
191
|
+
targetEntityName: 'Note',
|
|
192
|
+
labels: ['InternalInstallAudit_Note'],
|
|
193
|
+
}, NoteRecord_1.NoteRecord);
|
|
194
|
+
}
|
|
195
|
+
return this._notes;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Access linked WorkOrder records
|
|
199
|
+
* @remarks Available labels: WorkOrder_InternalInstallAudit
|
|
200
|
+
* @throws Error if called on a new (unsaved) record
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Get all linked WorkOrder records
|
|
205
|
+
* const items = await record.workOrders.list();
|
|
206
|
+
* const first = await record.workOrders.first();
|
|
207
|
+
*
|
|
208
|
+
* // Filter by label
|
|
209
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder_InternalInstallAudit' });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
get workOrders() {
|
|
213
|
+
var _a;
|
|
214
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
215
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
216
|
+
if (!this._workOrders) {
|
|
217
|
+
this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
218
|
+
sourceEntity: 'FieldServiceModule:InternalInstallAudit',
|
|
219
|
+
targetEntity: 'FieldServiceModule:WorkOrder',
|
|
220
|
+
targetModuleName: 'FieldServiceModule',
|
|
221
|
+
targetEntityName: 'WorkOrder',
|
|
222
|
+
labels: ['WorkOrder_InternalInstallAudit'],
|
|
223
|
+
}, WorkOrderRecord_1.WorkOrderRecord);
|
|
224
|
+
}
|
|
225
|
+
return this._workOrders;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Access linked File records
|
|
229
|
+
* @remarks Available labels: InternalInstallAudit_File
|
|
230
|
+
* @throws Error if called on a new (unsaved) record
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* // Get all linked File records
|
|
235
|
+
* const items = await record.files.list();
|
|
236
|
+
* const first = await record.files.first();
|
|
237
|
+
*
|
|
238
|
+
* // Filter by label
|
|
239
|
+
* const specific = await record.files.first({ label: 'InternalInstallAudit_File' });
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
get files() {
|
|
243
|
+
var _a;
|
|
244
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
245
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
246
|
+
if (!this._files) {
|
|
247
|
+
this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
248
|
+
sourceEntity: 'FieldServiceModule:InternalInstallAudit',
|
|
249
|
+
targetEntity: 'SchemaModule:File',
|
|
250
|
+
targetModuleName: 'SchemaModule',
|
|
251
|
+
targetEntityName: 'File',
|
|
252
|
+
labels: ['InternalInstallAudit_File'],
|
|
253
|
+
}, FileRecord_1.FileRecord);
|
|
254
|
+
}
|
|
255
|
+
return this._files;
|
|
256
|
+
}
|
|
257
|
+
// ============================================
|
|
143
258
|
// LINK MANAGEMENT
|
|
144
259
|
// ============================================
|
|
145
260
|
/**
|
|
@@ -215,6 +330,15 @@ class InternalInstallAuditRecord {
|
|
|
215
330
|
}
|
|
216
331
|
}
|
|
217
332
|
exports.InternalInstallAuditRecord = InternalInstallAuditRecord;
|
|
333
|
+
// ============================================
|
|
334
|
+
// TYPED LINK ACCESSORS
|
|
335
|
+
// ============================================
|
|
336
|
+
/** Valid labels for Note associations */
|
|
337
|
+
InternalInstallAuditRecord.notesLabels = ['InternalInstallAudit_Note'];
|
|
338
|
+
/** Valid labels for WorkOrder associations */
|
|
339
|
+
InternalInstallAuditRecord.workOrdersLabels = ['WorkOrder_InternalInstallAudit'];
|
|
340
|
+
/** Valid labels for File associations */
|
|
341
|
+
InternalInstallAuditRecord.filesLabels = ['InternalInstallAudit_File'];
|
|
218
342
|
/** Type guard to check if an object is a InternalInstallAuditRecord */
|
|
219
343
|
function isInternalInstallAuditRecord(obj) {
|
|
220
344
|
return obj instanceof InternalInstallAuditRecord;
|
|
@@ -19,8 +19,10 @@ 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 { InvoiceItemProperties } from '../entities-v2/InvoiceItem';
|
|
23
24
|
import { CreateInvoiceItemProperties } from '../actions-v2/CreateInvoiceItemDto';
|
|
25
|
+
import { InvoiceRecord } from './InvoiceRecord';
|
|
24
26
|
/**
|
|
25
27
|
* Builder for action execution with dryRun support
|
|
26
28
|
*
|
|
@@ -84,6 +86,8 @@ export declare class InvoiceItemRecord<TProps = InvoiceItemProperties> {
|
|
|
84
86
|
private _provider;
|
|
85
87
|
private _pendingLinks;
|
|
86
88
|
private _preGeneratedId;
|
|
89
|
+
private _invoices?;
|
|
90
|
+
private _invoiceItems?;
|
|
87
91
|
/**
|
|
88
92
|
* Create a record wrapper.
|
|
89
93
|
* @param record - The underlying record, or null for create operations
|
|
@@ -109,6 +113,42 @@ export declare class InvoiceItemRecord<TProps = InvoiceItemProperties> {
|
|
|
109
113
|
get groups(): string[];
|
|
110
114
|
/** Access the underlying OdinRecord (null for new records) */
|
|
111
115
|
get record(): OdinRecord<TProps> | null;
|
|
116
|
+
/** Valid labels for Invoice associations */
|
|
117
|
+
static readonly invoicesLabels: readonly ["Invoice__InvoiceItem"];
|
|
118
|
+
/**
|
|
119
|
+
* Access linked Invoice records
|
|
120
|
+
* @remarks Available labels: Invoice__InvoiceItem
|
|
121
|
+
* @throws Error if called on a new (unsaved) record
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* // Get all linked Invoice records
|
|
126
|
+
* const items = await record.invoices.list();
|
|
127
|
+
* const first = await record.invoices.first();
|
|
128
|
+
*
|
|
129
|
+
* // Filter by label
|
|
130
|
+
* const specific = await record.invoices.first({ label: 'Invoice__InvoiceItem' });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
get invoices(): RecordLinkManager<InvoiceRecord, typeof InvoiceItemRecord['invoicesLabels'][number]>;
|
|
134
|
+
/** Valid labels for InvoiceItem associations */
|
|
135
|
+
static readonly invoiceItemsLabels: readonly ["InvoiceItem__InvoiceItem"];
|
|
136
|
+
/**
|
|
137
|
+
* Access linked InvoiceItem records
|
|
138
|
+
* @remarks Available labels: InvoiceItem__InvoiceItem
|
|
139
|
+
* @throws Error if called on a new (unsaved) record
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* // Get all linked InvoiceItem records
|
|
144
|
+
* const items = await record.invoiceItems.list();
|
|
145
|
+
* const first = await record.invoiceItems.first();
|
|
146
|
+
*
|
|
147
|
+
* // Filter by label
|
|
148
|
+
* const specific = await record.invoiceItems.first({ label: 'InvoiceItem__InvoiceItem' });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
get invoiceItems(): RecordLinkManager<InvoiceItemRecord, typeof InvoiceItemRecord['invoiceItemsLabels'][number]>;
|
|
112
152
|
/**
|
|
113
153
|
* Queue a link to be created with the next action.
|
|
114
154
|
* Works for both create and update actions.
|
|
@@ -29,6 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.isInvoiceItemRecord = exports.InvoiceItemRecord = 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 InvoiceRecord_1 = require("./InvoiceRecord");
|
|
32
34
|
/**
|
|
33
35
|
* Builder for action execution with dryRun support
|
|
34
36
|
*
|
|
@@ -139,6 +141,66 @@ class InvoiceItemRecord {
|
|
|
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 Invoice records
|
|
146
|
+
* @remarks Available labels: Invoice__InvoiceItem
|
|
147
|
+
* @throws Error if called on a new (unsaved) record
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // Get all linked Invoice records
|
|
152
|
+
* const items = await record.invoices.list();
|
|
153
|
+
* const first = await record.invoices.first();
|
|
154
|
+
*
|
|
155
|
+
* // Filter by label
|
|
156
|
+
* const specific = await record.invoices.first({ label: 'Invoice__InvoiceItem' });
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
get invoices() {
|
|
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._invoices) {
|
|
164
|
+
this._invoices = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
165
|
+
sourceEntity: 'BillingModule:InvoiceItem',
|
|
166
|
+
targetEntity: 'BillingModule:Invoice',
|
|
167
|
+
targetModuleName: 'BillingModule',
|
|
168
|
+
targetEntityName: 'Invoice',
|
|
169
|
+
labels: ['Invoice__InvoiceItem'],
|
|
170
|
+
}, InvoiceRecord_1.InvoiceRecord);
|
|
171
|
+
}
|
|
172
|
+
return this._invoices;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Access linked InvoiceItem records
|
|
176
|
+
* @remarks Available labels: InvoiceItem__InvoiceItem
|
|
177
|
+
* @throws Error if called on a new (unsaved) record
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // Get all linked InvoiceItem records
|
|
182
|
+
* const items = await record.invoiceItems.list();
|
|
183
|
+
* const first = await record.invoiceItems.first();
|
|
184
|
+
*
|
|
185
|
+
* // Filter by label
|
|
186
|
+
* const specific = await record.invoiceItems.first({ label: 'InvoiceItem__InvoiceItem' });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
get invoiceItems() {
|
|
190
|
+
var _a;
|
|
191
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
192
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
193
|
+
if (!this._invoiceItems) {
|
|
194
|
+
this._invoiceItems = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
195
|
+
sourceEntity: 'BillingModule:InvoiceItem',
|
|
196
|
+
targetEntity: 'BillingModule:InvoiceItem',
|
|
197
|
+
targetModuleName: 'BillingModule',
|
|
198
|
+
targetEntityName: 'InvoiceItem',
|
|
199
|
+
labels: ['InvoiceItem__InvoiceItem'],
|
|
200
|
+
}, InvoiceItemRecord);
|
|
201
|
+
}
|
|
202
|
+
return this._invoiceItems;
|
|
203
|
+
}
|
|
142
204
|
// ============================================
|
|
143
205
|
// LINK MANAGEMENT
|
|
144
206
|
// ============================================
|
|
@@ -215,6 +277,13 @@ class InvoiceItemRecord {
|
|
|
215
277
|
}
|
|
216
278
|
}
|
|
217
279
|
exports.InvoiceItemRecord = InvoiceItemRecord;
|
|
280
|
+
// ============================================
|
|
281
|
+
// TYPED LINK ACCESSORS
|
|
282
|
+
// ============================================
|
|
283
|
+
/** Valid labels for Invoice associations */
|
|
284
|
+
InvoiceItemRecord.invoicesLabels = ['Invoice__InvoiceItem'];
|
|
285
|
+
/** Valid labels for InvoiceItem associations */
|
|
286
|
+
InvoiceItemRecord.invoiceItemsLabels = ['InvoiceItem__InvoiceItem'];
|
|
218
287
|
/** Type guard to check if an object is a InvoiceItemRecord */
|
|
219
288
|
function isInvoiceItemRecord(obj) {
|
|
220
289
|
return obj instanceof InvoiceItemRecord;
|