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