@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,15 +13,22 @@
|
|
|
13
13
|
* await record.createKnowledgeArticle({ ... }).execute();
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
+
* Entity Types: RELEASE_NOTE, USER_GUIDE
|
|
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 { KnowledgeArticleProperties, ReleaseNoteKnowledgeArticleProperties, UserGuideKnowledgeArticleProperties } from '../entities-v2/KnowledgeArticle';
|
|
23
26
|
import { KnowledgeArticleReleaseNoteCreateProperties } from '../actions-v2/KnowledgeArticleReleaseNoteCreateDto';
|
|
24
27
|
import { KnowledgeArticleUserGuideCreateProperties } from '../actions-v2/KnowledgeArticleUserGuideCreateDto';
|
|
28
|
+
import { NoteRecord } from './NoteRecord';
|
|
29
|
+
import { FileRecord } from './FileRecord';
|
|
30
|
+
/** Valid entity types for KnowledgeArticle */
|
|
31
|
+
export declare type KnowledgeArticleType = 'RELEASE_NOTE' | 'USER_GUIDE';
|
|
25
32
|
/**
|
|
26
33
|
* Builder for action execution with dryRun support
|
|
27
34
|
*
|
|
@@ -85,6 +92,9 @@ export declare class KnowledgeArticleRecord<TProps = KnowledgeArticleProperties>
|
|
|
85
92
|
private _provider;
|
|
86
93
|
private _pendingLinks;
|
|
87
94
|
private _preGeneratedId;
|
|
95
|
+
private _notes?;
|
|
96
|
+
private _files?;
|
|
97
|
+
private _knowledgeArticles?;
|
|
88
98
|
/**
|
|
89
99
|
* Create a record wrapper.
|
|
90
100
|
* @param record - The underlying record, or null for create operations
|
|
@@ -97,7 +107,7 @@ export declare class KnowledgeArticleRecord<TProps = KnowledgeArticleProperties>
|
|
|
97
107
|
/** Record ID - always available (pre-generated for new records) */
|
|
98
108
|
get id(): string;
|
|
99
109
|
get entity(): string;
|
|
100
|
-
get type():
|
|
110
|
+
get type(): KnowledgeArticleType | undefined;
|
|
101
111
|
/** Record properties - empty object for new (unsaved) records */
|
|
102
112
|
get properties(): TProps;
|
|
103
113
|
get title(): string | undefined;
|
|
@@ -110,6 +120,92 @@ export declare class KnowledgeArticleRecord<TProps = KnowledgeArticleProperties>
|
|
|
110
120
|
get groups(): string[];
|
|
111
121
|
/** Access the underlying OdinRecord (null for new records) */
|
|
112
122
|
get record(): OdinRecord<TProps> | null;
|
|
123
|
+
/**
|
|
124
|
+
* Type guard: check if this record is of type RELEASE_NOTE
|
|
125
|
+
*
|
|
126
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
127
|
+
* giving you access to RELEASE_NOTE-specific properties.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* if (record.isReleaseNote()) {
|
|
132
|
+
* // TypeScript knows record.properties is ReleaseNoteKnowledgeArticleProperties
|
|
133
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
* @remarks Odin Release Note
|
|
137
|
+
*/
|
|
138
|
+
isReleaseNote(): this is KnowledgeArticleRecord<ReleaseNoteKnowledgeArticleProperties>;
|
|
139
|
+
/**
|
|
140
|
+
* Type guard: check if this record is of type USER_GUIDE
|
|
141
|
+
*
|
|
142
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
143
|
+
* giving you access to USER_GUIDE-specific properties.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* if (record.isUserGuide()) {
|
|
148
|
+
* // TypeScript knows record.properties is UserGuideKnowledgeArticleProperties
|
|
149
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
150
|
+
* }
|
|
151
|
+
* ```
|
|
152
|
+
* @remarks Odin User Guide
|
|
153
|
+
*/
|
|
154
|
+
isUserGuide(): this is KnowledgeArticleRecord<UserGuideKnowledgeArticleProperties>;
|
|
155
|
+
/** Valid labels for Note associations */
|
|
156
|
+
static readonly notesLabels: readonly ["KnowledgeArticle__Note"];
|
|
157
|
+
/**
|
|
158
|
+
* Access linked Note records
|
|
159
|
+
* @remarks Available labels: KnowledgeArticle__Note
|
|
160
|
+
* @throws Error if called on a new (unsaved) record
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* // Get all linked Note records
|
|
165
|
+
* const items = await record.notes.list();
|
|
166
|
+
* const first = await record.notes.first();
|
|
167
|
+
*
|
|
168
|
+
* // Filter by label
|
|
169
|
+
* const specific = await record.notes.first({ label: 'KnowledgeArticle__Note' });
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
get notes(): RecordLinkManager<NoteRecord, typeof KnowledgeArticleRecord['notesLabels'][number]>;
|
|
173
|
+
/** Valid labels for File associations */
|
|
174
|
+
static readonly filesLabels: readonly ["KnowledgeArticle__File"];
|
|
175
|
+
/**
|
|
176
|
+
* Access linked File records
|
|
177
|
+
* @remarks Available labels: KnowledgeArticle__File
|
|
178
|
+
* @throws Error if called on a new (unsaved) record
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* // Get all linked File records
|
|
183
|
+
* const items = await record.files.list();
|
|
184
|
+
* const first = await record.files.first();
|
|
185
|
+
*
|
|
186
|
+
* // Filter by label
|
|
187
|
+
* const specific = await record.files.first({ label: 'KnowledgeArticle__File' });
|
|
188
|
+
* ```
|
|
189
|
+
*/
|
|
190
|
+
get files(): RecordLinkManager<FileRecord, typeof KnowledgeArticleRecord['filesLabels'][number]>;
|
|
191
|
+
/** Valid labels for KnowledgeArticle associations */
|
|
192
|
+
static readonly knowledgeArticlesLabels: readonly ["KnowledgeArticle__KnowledgeArticle"];
|
|
193
|
+
/**
|
|
194
|
+
* Access linked KnowledgeArticle records
|
|
195
|
+
* @remarks Available labels: KnowledgeArticle__KnowledgeArticle
|
|
196
|
+
* @throws Error if called on a new (unsaved) record
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* // Get all linked KnowledgeArticle records
|
|
201
|
+
* const items = await record.knowledgeArticles.list();
|
|
202
|
+
* const first = await record.knowledgeArticles.first();
|
|
203
|
+
*
|
|
204
|
+
* // Filter by label
|
|
205
|
+
* const specific = await record.knowledgeArticles.first({ label: 'KnowledgeArticle__KnowledgeArticle' });
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
get knowledgeArticles(): RecordLinkManager<KnowledgeArticleRecord, typeof KnowledgeArticleRecord['knowledgeArticlesLabels'][number]>;
|
|
113
209
|
/**
|
|
114
210
|
* Queue a link to be created with the next action.
|
|
115
211
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createKnowledgeArticle({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: RELEASE_NOTE, USER_GUIDE
|
|
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.isKnowledgeArticleRecord = exports.KnowledgeArticleRecord = 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 FileRecord_1 = require("./FileRecord");
|
|
32
37
|
/**
|
|
33
38
|
* Builder for action execution with dryRun support
|
|
34
39
|
*
|
|
@@ -140,6 +145,131 @@ class KnowledgeArticleRecord {
|
|
|
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 RELEASE_NOTE
|
|
152
|
+
*
|
|
153
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
154
|
+
* giving you access to RELEASE_NOTE-specific properties.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* if (record.isReleaseNote()) {
|
|
159
|
+
* // TypeScript knows record.properties is ReleaseNoteKnowledgeArticleProperties
|
|
160
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
161
|
+
* }
|
|
162
|
+
* ```
|
|
163
|
+
* @remarks Odin Release Note
|
|
164
|
+
*/
|
|
165
|
+
isReleaseNote() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'RELEASE_NOTE'; }
|
|
166
|
+
/**
|
|
167
|
+
* Type guard: check if this record is of type USER_GUIDE
|
|
168
|
+
*
|
|
169
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
170
|
+
* giving you access to USER_GUIDE-specific properties.
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* if (record.isUserGuide()) {
|
|
175
|
+
* // TypeScript knows record.properties is UserGuideKnowledgeArticleProperties
|
|
176
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
177
|
+
* }
|
|
178
|
+
* ```
|
|
179
|
+
* @remarks Odin User Guide
|
|
180
|
+
*/
|
|
181
|
+
isUserGuide() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'USER_GUIDE'; }
|
|
182
|
+
/**
|
|
183
|
+
* Access linked Note records
|
|
184
|
+
* @remarks Available labels: KnowledgeArticle__Note
|
|
185
|
+
* @throws Error if called on a new (unsaved) record
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* // Get all linked Note records
|
|
190
|
+
* const items = await record.notes.list();
|
|
191
|
+
* const first = await record.notes.first();
|
|
192
|
+
*
|
|
193
|
+
* // Filter by label
|
|
194
|
+
* const specific = await record.notes.first({ label: 'KnowledgeArticle__Note' });
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
get notes() {
|
|
198
|
+
var _a;
|
|
199
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
200
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
201
|
+
if (!this._notes) {
|
|
202
|
+
this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
203
|
+
sourceEntity: 'SupportModule:KnowledgeArticle',
|
|
204
|
+
targetEntity: 'SupportModule:Note',
|
|
205
|
+
targetModuleName: 'SupportModule',
|
|
206
|
+
targetEntityName: 'Note',
|
|
207
|
+
labels: ['KnowledgeArticle__Note'],
|
|
208
|
+
}, NoteRecord_1.NoteRecord);
|
|
209
|
+
}
|
|
210
|
+
return this._notes;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Access linked File records
|
|
214
|
+
* @remarks Available labels: KnowledgeArticle__File
|
|
215
|
+
* @throws Error if called on a new (unsaved) record
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* // Get all linked File records
|
|
220
|
+
* const items = await record.files.list();
|
|
221
|
+
* const first = await record.files.first();
|
|
222
|
+
*
|
|
223
|
+
* // Filter by label
|
|
224
|
+
* const specific = await record.files.first({ label: 'KnowledgeArticle__File' });
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
get files() {
|
|
228
|
+
var _a;
|
|
229
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
230
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
231
|
+
if (!this._files) {
|
|
232
|
+
this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
233
|
+
sourceEntity: 'SupportModule:KnowledgeArticle',
|
|
234
|
+
targetEntity: 'SchemaModule:File',
|
|
235
|
+
targetModuleName: 'SchemaModule',
|
|
236
|
+
targetEntityName: 'File',
|
|
237
|
+
labels: ['KnowledgeArticle__File'],
|
|
238
|
+
}, FileRecord_1.FileRecord);
|
|
239
|
+
}
|
|
240
|
+
return this._files;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Access linked KnowledgeArticle records
|
|
244
|
+
* @remarks Available labels: KnowledgeArticle__KnowledgeArticle
|
|
245
|
+
* @throws Error if called on a new (unsaved) record
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```typescript
|
|
249
|
+
* // Get all linked KnowledgeArticle records
|
|
250
|
+
* const items = await record.knowledgeArticles.list();
|
|
251
|
+
* const first = await record.knowledgeArticles.first();
|
|
252
|
+
*
|
|
253
|
+
* // Filter by label
|
|
254
|
+
* const specific = await record.knowledgeArticles.first({ label: 'KnowledgeArticle__KnowledgeArticle' });
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
get knowledgeArticles() {
|
|
258
|
+
var _a;
|
|
259
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
260
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
261
|
+
if (!this._knowledgeArticles) {
|
|
262
|
+
this._knowledgeArticles = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
263
|
+
sourceEntity: 'SupportModule:KnowledgeArticle',
|
|
264
|
+
targetEntity: 'SupportModule:KnowledgeArticle',
|
|
265
|
+
targetModuleName: 'SupportModule',
|
|
266
|
+
targetEntityName: 'KnowledgeArticle',
|
|
267
|
+
labels: ['KnowledgeArticle__KnowledgeArticle'],
|
|
268
|
+
}, KnowledgeArticleRecord);
|
|
269
|
+
}
|
|
270
|
+
return this._knowledgeArticles;
|
|
271
|
+
}
|
|
272
|
+
// ============================================
|
|
143
273
|
// LINK MANAGEMENT
|
|
144
274
|
// ============================================
|
|
145
275
|
/**
|
|
@@ -251,6 +381,15 @@ class KnowledgeArticleRecord {
|
|
|
251
381
|
}
|
|
252
382
|
}
|
|
253
383
|
exports.KnowledgeArticleRecord = KnowledgeArticleRecord;
|
|
384
|
+
// ============================================
|
|
385
|
+
// TYPED LINK ACCESSORS
|
|
386
|
+
// ============================================
|
|
387
|
+
/** Valid labels for Note associations */
|
|
388
|
+
KnowledgeArticleRecord.notesLabels = ['KnowledgeArticle__Note'];
|
|
389
|
+
/** Valid labels for File associations */
|
|
390
|
+
KnowledgeArticleRecord.filesLabels = ['KnowledgeArticle__File'];
|
|
391
|
+
/** Valid labels for KnowledgeArticle associations */
|
|
392
|
+
KnowledgeArticleRecord.knowledgeArticlesLabels = ['KnowledgeArticle__KnowledgeArticle'];
|
|
254
393
|
/** Type guard to check if an object is a KnowledgeArticleRecord */
|
|
255
394
|
function isKnowledgeArticleRecord(obj) {
|
|
256
395
|
return obj instanceof KnowledgeArticleRecord;
|
|
@@ -19,10 +19,24 @@ 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 { LeadProperties } from '../entities-v2/Lead';
|
|
23
24
|
import { CreateLeadProperties } from '../actions-v2/CreateLeadDto';
|
|
24
25
|
import { CreateLeadFromBrskProperties } from '../actions-v2/CreateLeadFromBrskDto';
|
|
25
26
|
import { UpdateLeadProperties } from '../actions-v2/UpdateLeadDto';
|
|
27
|
+
import { NoteRecord } from './NoteRecord';
|
|
28
|
+
import { CallRecord } from './CallRecord';
|
|
29
|
+
import { OfferRecord } from './OfferRecord';
|
|
30
|
+
import { DiscountRecord } from './DiscountRecord';
|
|
31
|
+
import { ProductRecord } from './ProductRecord';
|
|
32
|
+
import { ContactRecord } from './ContactRecord';
|
|
33
|
+
import { OrderRecord } from './OrderRecord';
|
|
34
|
+
import { FileRecord } from './FileRecord';
|
|
35
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
36
|
+
import { CrmDatasetRecord } from './CrmDatasetRecord';
|
|
37
|
+
import { VisitRecord } from './VisitRecord';
|
|
38
|
+
import { AddressRecord } from './AddressRecord';
|
|
39
|
+
import { AppointmentRecord } from './AppointmentRecord';
|
|
26
40
|
/**
|
|
27
41
|
* Builder for action execution with dryRun support
|
|
28
42
|
*
|
|
@@ -86,6 +100,19 @@ export declare class LeadRecord<TProps = LeadProperties> {
|
|
|
86
100
|
private _provider;
|
|
87
101
|
private _pendingLinks;
|
|
88
102
|
private _preGeneratedId;
|
|
103
|
+
private _notes?;
|
|
104
|
+
private _calls?;
|
|
105
|
+
private _offers?;
|
|
106
|
+
private _discounts?;
|
|
107
|
+
private _products?;
|
|
108
|
+
private _contacts?;
|
|
109
|
+
private _orders?;
|
|
110
|
+
private _files?;
|
|
111
|
+
private _workOrders?;
|
|
112
|
+
private _crmDatasets?;
|
|
113
|
+
private _visits?;
|
|
114
|
+
private _addresses?;
|
|
115
|
+
private _appointments?;
|
|
89
116
|
/**
|
|
90
117
|
* Create a record wrapper.
|
|
91
118
|
* @param record - The underlying record, or null for create operations
|
|
@@ -111,6 +138,240 @@ export declare class LeadRecord<TProps = LeadProperties> {
|
|
|
111
138
|
get groups(): string[];
|
|
112
139
|
/** Access the underlying OdinRecord (null for new records) */
|
|
113
140
|
get record(): OdinRecord<TProps> | null;
|
|
141
|
+
/** Valid labels for Note associations */
|
|
142
|
+
static readonly notesLabels: readonly ["Lead__Note"];
|
|
143
|
+
/**
|
|
144
|
+
* Access linked Note records
|
|
145
|
+
* @remarks Available labels: Lead__Note
|
|
146
|
+
* @throws Error if called on a new (unsaved) record
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* // Get all linked Note records
|
|
151
|
+
* const items = await record.notes.list();
|
|
152
|
+
* const first = await record.notes.first();
|
|
153
|
+
*
|
|
154
|
+
* // Filter by label
|
|
155
|
+
* const specific = await record.notes.first({ label: 'Lead__Note' });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
get notes(): RecordLinkManager<NoteRecord, typeof LeadRecord['notesLabels'][number]>;
|
|
159
|
+
/** Valid labels for Call associations */
|
|
160
|
+
static readonly callsLabels: readonly ["Call__Lead"];
|
|
161
|
+
/**
|
|
162
|
+
* Access linked Call records
|
|
163
|
+
* @remarks Available labels: Call__Lead
|
|
164
|
+
* @throws Error if called on a new (unsaved) record
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* // Get all linked Call records
|
|
169
|
+
* const items = await record.calls.list();
|
|
170
|
+
* const first = await record.calls.first();
|
|
171
|
+
*
|
|
172
|
+
* // Filter by label
|
|
173
|
+
* const specific = await record.calls.first({ label: 'Call__Lead' });
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
get calls(): RecordLinkManager<CallRecord, typeof LeadRecord['callsLabels'][number]>;
|
|
177
|
+
/** Valid labels for Offer associations */
|
|
178
|
+
static readonly offersLabels: readonly ["Lead__Offer"];
|
|
179
|
+
/**
|
|
180
|
+
* Access linked Offer records
|
|
181
|
+
* @remarks Available labels: Lead__Offer
|
|
182
|
+
* @throws Error if called on a new (unsaved) record
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* // Get all linked Offer records
|
|
187
|
+
* const items = await record.offers.list();
|
|
188
|
+
* const first = await record.offers.first();
|
|
189
|
+
*
|
|
190
|
+
* // Filter by label
|
|
191
|
+
* const specific = await record.offers.first({ label: 'Lead__Offer' });
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
get offers(): RecordLinkManager<OfferRecord, typeof LeadRecord['offersLabels'][number]>;
|
|
195
|
+
/** Valid labels for Discount associations */
|
|
196
|
+
static readonly discountsLabels: readonly ["Lead__Discount"];
|
|
197
|
+
/**
|
|
198
|
+
* Access linked Discount records
|
|
199
|
+
* @remarks Available labels: Lead__Discount
|
|
200
|
+
* @throws Error if called on a new (unsaved) record
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Get all linked Discount records
|
|
205
|
+
* const items = await record.discounts.list();
|
|
206
|
+
* const first = await record.discounts.first();
|
|
207
|
+
*
|
|
208
|
+
* // Filter by label
|
|
209
|
+
* const specific = await record.discounts.first({ label: 'Lead__Discount' });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
get discounts(): RecordLinkManager<DiscountRecord, typeof LeadRecord['discountsLabels'][number]>;
|
|
213
|
+
/** Valid labels for Product associations */
|
|
214
|
+
static readonly productsLabels: readonly ["Lead__Product"];
|
|
215
|
+
/**
|
|
216
|
+
* Access linked Product records
|
|
217
|
+
* @remarks Available labels: Lead__Product
|
|
218
|
+
* @throws Error if called on a new (unsaved) record
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* // Get all linked Product records
|
|
223
|
+
* const items = await record.products.list();
|
|
224
|
+
* const first = await record.products.first();
|
|
225
|
+
*
|
|
226
|
+
* // Filter by label
|
|
227
|
+
* const specific = await record.products.first({ label: 'Lead__Product' });
|
|
228
|
+
* ```
|
|
229
|
+
*/
|
|
230
|
+
get products(): RecordLinkManager<ProductRecord, typeof LeadRecord['productsLabels'][number]>;
|
|
231
|
+
/** Valid labels for Contact associations */
|
|
232
|
+
static readonly contactsLabels: readonly ["Lead__Contact"];
|
|
233
|
+
/**
|
|
234
|
+
* Access linked Contact records
|
|
235
|
+
* @remarks Available labels: Lead__Contact
|
|
236
|
+
* @throws Error if called on a new (unsaved) record
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* // Get all linked Contact records
|
|
241
|
+
* const items = await record.contacts.list();
|
|
242
|
+
* const first = await record.contacts.first();
|
|
243
|
+
*
|
|
244
|
+
* // Filter by label
|
|
245
|
+
* const specific = await record.contacts.first({ label: 'Lead__Contact' });
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
get contacts(): RecordLinkManager<ContactRecord, typeof LeadRecord['contactsLabels'][number]>;
|
|
249
|
+
/** Valid labels for Order associations */
|
|
250
|
+
static readonly ordersLabels: readonly ["Lead_Order"];
|
|
251
|
+
/**
|
|
252
|
+
* Access linked Order records
|
|
253
|
+
* @remarks Available labels: Lead_Order
|
|
254
|
+
* @throws Error if called on a new (unsaved) record
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```typescript
|
|
258
|
+
* // Get all linked Order records
|
|
259
|
+
* const items = await record.orders.list();
|
|
260
|
+
* const first = await record.orders.first();
|
|
261
|
+
*
|
|
262
|
+
* // Filter by label
|
|
263
|
+
* const specific = await record.orders.first({ label: 'Lead_Order' });
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
get orders(): RecordLinkManager<OrderRecord, typeof LeadRecord['ordersLabels'][number]>;
|
|
267
|
+
/** Valid labels for File associations */
|
|
268
|
+
static readonly filesLabels: readonly ["Lead__File"];
|
|
269
|
+
/**
|
|
270
|
+
* Access linked File records
|
|
271
|
+
* @remarks Available labels: Lead__File
|
|
272
|
+
* @throws Error if called on a new (unsaved) record
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* // Get all linked File records
|
|
277
|
+
* const items = await record.files.list();
|
|
278
|
+
* const first = await record.files.first();
|
|
279
|
+
*
|
|
280
|
+
* // Filter by label
|
|
281
|
+
* const specific = await record.files.first({ label: 'Lead__File' });
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
get files(): RecordLinkManager<FileRecord, typeof LeadRecord['filesLabels'][number]>;
|
|
285
|
+
/** Valid labels for WorkOrder associations */
|
|
286
|
+
static readonly workOrdersLabels: readonly ["WorkOrder__Lead"];
|
|
287
|
+
/**
|
|
288
|
+
* Access linked WorkOrder records
|
|
289
|
+
* @remarks Available labels: WorkOrder__Lead
|
|
290
|
+
* @throws Error if called on a new (unsaved) record
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```typescript
|
|
294
|
+
* // Get all linked WorkOrder records
|
|
295
|
+
* const items = await record.workOrders.list();
|
|
296
|
+
* const first = await record.workOrders.first();
|
|
297
|
+
*
|
|
298
|
+
* // Filter by label
|
|
299
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder__Lead' });
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof LeadRecord['workOrdersLabels'][number]>;
|
|
303
|
+
/** Valid labels for CrmDataset associations */
|
|
304
|
+
static readonly crmDatasetsLabels: readonly ["CrmDataset__Lead"];
|
|
305
|
+
/**
|
|
306
|
+
* Access linked CrmDataset records
|
|
307
|
+
* @remarks Available labels: CrmDataset__Lead
|
|
308
|
+
* @throws Error if called on a new (unsaved) record
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* ```typescript
|
|
312
|
+
* // Get all linked CrmDataset records
|
|
313
|
+
* const items = await record.crmDatasets.list();
|
|
314
|
+
* const first = await record.crmDatasets.first();
|
|
315
|
+
*
|
|
316
|
+
* // Filter by label
|
|
317
|
+
* const specific = await record.crmDatasets.first({ label: 'CrmDataset__Lead' });
|
|
318
|
+
* ```
|
|
319
|
+
*/
|
|
320
|
+
get crmDatasets(): RecordLinkManager<CrmDatasetRecord, typeof LeadRecord['crmDatasetsLabels'][number]>;
|
|
321
|
+
/** Valid labels for Visit associations */
|
|
322
|
+
static readonly visitsLabels: readonly ["Lead__Visit"];
|
|
323
|
+
/**
|
|
324
|
+
* Access linked Visit records
|
|
325
|
+
* @remarks Available labels: Lead__Visit
|
|
326
|
+
* @throws Error if called on a new (unsaved) record
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* // Get all linked Visit records
|
|
331
|
+
* const items = await record.visits.list();
|
|
332
|
+
* const first = await record.visits.first();
|
|
333
|
+
*
|
|
334
|
+
* // Filter by label
|
|
335
|
+
* const specific = await record.visits.first({ label: 'Lead__Visit' });
|
|
336
|
+
* ```
|
|
337
|
+
*/
|
|
338
|
+
get visits(): RecordLinkManager<VisitRecord, typeof LeadRecord['visitsLabels'][number]>;
|
|
339
|
+
/** Valid labels for Address associations */
|
|
340
|
+
static readonly addressesLabels: readonly ["Lead_Address"];
|
|
341
|
+
/**
|
|
342
|
+
* Access linked Address records
|
|
343
|
+
* @remarks Available labels: Lead_Address
|
|
344
|
+
* @throws Error if called on a new (unsaved) record
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* ```typescript
|
|
348
|
+
* // Get all linked Address records
|
|
349
|
+
* const items = await record.addresses.list();
|
|
350
|
+
* const first = await record.addresses.first();
|
|
351
|
+
*
|
|
352
|
+
* // Filter by label
|
|
353
|
+
* const specific = await record.addresses.first({ label: 'Lead_Address' });
|
|
354
|
+
* ```
|
|
355
|
+
*/
|
|
356
|
+
get addresses(): RecordLinkManager<AddressRecord, typeof LeadRecord['addressesLabels'][number]>;
|
|
357
|
+
/** Valid labels for Appointment associations */
|
|
358
|
+
static readonly appointmentsLabels: readonly ["Lead_Appointment"];
|
|
359
|
+
/**
|
|
360
|
+
* Access linked Appointment records
|
|
361
|
+
* @remarks Available labels: Lead_Appointment
|
|
362
|
+
* @throws Error if called on a new (unsaved) record
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* // Get all linked Appointment records
|
|
367
|
+
* const items = await record.appointments.list();
|
|
368
|
+
* const first = await record.appointments.first();
|
|
369
|
+
*
|
|
370
|
+
* // Filter by label
|
|
371
|
+
* const specific = await record.appointments.first({ label: 'Lead_Appointment' });
|
|
372
|
+
* ```
|
|
373
|
+
*/
|
|
374
|
+
get appointments(): RecordLinkManager<AppointmentRecord, typeof LeadRecord['appointmentsLabels'][number]>;
|
|
114
375
|
/**
|
|
115
376
|
* Queue a link to be created with the next action.
|
|
116
377
|
* Works for both create and update actions.
|