@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,24 @@
|
|
|
13
13
|
* await record.createOffer({ ... }).execute();
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
+
* Entity Types: DEFAULT, RECONTRACT, STANDARD
|
|
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 { OfferProperties, RecontractOfferProperties, StandardOfferProperties } from '../entities-v2/Offer';
|
|
23
26
|
import { OfferCreateProperties } from '../actions-v2/OfferCreateDto';
|
|
24
27
|
import { OfferUpdateProperties } from '../actions-v2/OfferUpdateDto';
|
|
28
|
+
import { LeadRecord } from './LeadRecord';
|
|
29
|
+
import { DiscountRecord } from './DiscountRecord';
|
|
30
|
+
import { ProductRecord } from './ProductRecord';
|
|
31
|
+
import { OrderItemRecord } from './OrderItemRecord';
|
|
32
|
+
/** Valid entity types for Offer */
|
|
33
|
+
export declare type OfferType = 'DEFAULT' | 'RECONTRACT' | 'STANDARD';
|
|
25
34
|
/**
|
|
26
35
|
* Builder for action execution with dryRun support
|
|
27
36
|
*
|
|
@@ -85,6 +94,11 @@ export declare class OfferRecord<TProps = OfferProperties> {
|
|
|
85
94
|
private _provider;
|
|
86
95
|
private _pendingLinks;
|
|
87
96
|
private _preGeneratedId;
|
|
97
|
+
private _leads?;
|
|
98
|
+
private _discounts?;
|
|
99
|
+
private _products?;
|
|
100
|
+
private _offers?;
|
|
101
|
+
private _orderItems?;
|
|
88
102
|
/**
|
|
89
103
|
* Create a record wrapper.
|
|
90
104
|
* @param record - The underlying record, or null for create operations
|
|
@@ -97,7 +111,7 @@ export declare class OfferRecord<TProps = OfferProperties> {
|
|
|
97
111
|
/** Record ID - always available (pre-generated for new records) */
|
|
98
112
|
get id(): string;
|
|
99
113
|
get entity(): string;
|
|
100
|
-
get type():
|
|
114
|
+
get type(): OfferType | undefined;
|
|
101
115
|
/** Record properties - empty object for new (unsaved) records */
|
|
102
116
|
get properties(): TProps;
|
|
103
117
|
get title(): string | undefined;
|
|
@@ -110,6 +124,144 @@ export declare class OfferRecord<TProps = OfferProperties> {
|
|
|
110
124
|
get groups(): string[];
|
|
111
125
|
/** Access the underlying OdinRecord (null for new records) */
|
|
112
126
|
get record(): OdinRecord<TProps> | null;
|
|
127
|
+
/**
|
|
128
|
+
* Type guard: check if this record is of type DEFAULT
|
|
129
|
+
*
|
|
130
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
131
|
+
* giving you access to DEFAULT-specific properties.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* if (record.isDefault()) {
|
|
136
|
+
* // TypeScript knows record.properties is OfferProperties
|
|
137
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
138
|
+
* }
|
|
139
|
+
* ```
|
|
140
|
+
* @remarks This is the default record type
|
|
141
|
+
*/
|
|
142
|
+
isDefault(): this is OfferRecord<OfferProperties>;
|
|
143
|
+
/**
|
|
144
|
+
* Type guard: check if this record is of type RECONTRACT
|
|
145
|
+
*
|
|
146
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
147
|
+
* giving you access to RECONTRACT-specific properties.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* if (record.isRecontract()) {
|
|
152
|
+
* // TypeScript knows record.properties is RecontractOfferProperties
|
|
153
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
* @remarks RECONTRACT
|
|
157
|
+
*/
|
|
158
|
+
isRecontract(): this is OfferRecord<RecontractOfferProperties>;
|
|
159
|
+
/**
|
|
160
|
+
* Type guard: check if this record is of type STANDARD
|
|
161
|
+
*
|
|
162
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
163
|
+
* giving you access to STANDARD-specific properties.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* if (record.isStandard()) {
|
|
168
|
+
* // TypeScript knows record.properties is StandardOfferProperties
|
|
169
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
* @remarks STANDARD
|
|
173
|
+
*/
|
|
174
|
+
isStandard(): this is OfferRecord<StandardOfferProperties>;
|
|
175
|
+
/** Valid labels for Lead associations */
|
|
176
|
+
static readonly leadsLabels: readonly ["Lead__Offer"];
|
|
177
|
+
/**
|
|
178
|
+
* Access linked Lead records
|
|
179
|
+
* @remarks Available labels: Lead__Offer
|
|
180
|
+
* @throws Error if called on a new (unsaved) record
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* // Get all linked Lead records
|
|
185
|
+
* const items = await record.leads.list();
|
|
186
|
+
* const first = await record.leads.first();
|
|
187
|
+
*
|
|
188
|
+
* // Filter by label
|
|
189
|
+
* const specific = await record.leads.first({ label: 'Lead__Offer' });
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
get leads(): RecordLinkManager<LeadRecord, typeof OfferRecord['leadsLabels'][number]>;
|
|
193
|
+
/** Valid labels for Discount associations */
|
|
194
|
+
static readonly discountsLabels: readonly ["Offer__Discount"];
|
|
195
|
+
/**
|
|
196
|
+
* Access linked Discount records
|
|
197
|
+
* @remarks Available labels: Offer__Discount
|
|
198
|
+
* @throws Error if called on a new (unsaved) record
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* // Get all linked Discount records
|
|
203
|
+
* const items = await record.discounts.list();
|
|
204
|
+
* const first = await record.discounts.first();
|
|
205
|
+
*
|
|
206
|
+
* // Filter by label
|
|
207
|
+
* const specific = await record.discounts.first({ label: 'Offer__Discount' });
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
get discounts(): RecordLinkManager<DiscountRecord, typeof OfferRecord['discountsLabels'][number]>;
|
|
211
|
+
/** Valid labels for Product associations */
|
|
212
|
+
static readonly productsLabels: readonly ["Offer__Product"];
|
|
213
|
+
/**
|
|
214
|
+
* Access linked Product records
|
|
215
|
+
* @remarks Available labels: Offer__Product
|
|
216
|
+
* @throws Error if called on a new (unsaved) record
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* // Get all linked Product records
|
|
221
|
+
* const items = await record.products.list();
|
|
222
|
+
* const first = await record.products.first();
|
|
223
|
+
*
|
|
224
|
+
* // Filter by label
|
|
225
|
+
* const specific = await record.products.first({ label: 'Offer__Product' });
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
228
|
+
get products(): RecordLinkManager<ProductRecord, typeof OfferRecord['productsLabels'][number]>;
|
|
229
|
+
/** Valid labels for Offer associations */
|
|
230
|
+
static readonly offersLabels: readonly ["Offer__Offer"];
|
|
231
|
+
/**
|
|
232
|
+
* Access linked Offer records
|
|
233
|
+
* @remarks Available labels: Offer__Offer
|
|
234
|
+
* @throws Error if called on a new (unsaved) record
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```typescript
|
|
238
|
+
* // Get all linked Offer records
|
|
239
|
+
* const items = await record.offers.list();
|
|
240
|
+
* const first = await record.offers.first();
|
|
241
|
+
*
|
|
242
|
+
* // Filter by label
|
|
243
|
+
* const specific = await record.offers.first({ label: 'Offer__Offer' });
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
get offers(): RecordLinkManager<OfferRecord, typeof OfferRecord['offersLabels'][number]>;
|
|
247
|
+
/** Valid labels for OrderItem associations */
|
|
248
|
+
static readonly orderItemsLabels: readonly ["OrderItem__Offer"];
|
|
249
|
+
/**
|
|
250
|
+
* Access linked OrderItem records
|
|
251
|
+
* @remarks Available labels: OrderItem__Offer
|
|
252
|
+
* @throws Error if called on a new (unsaved) record
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* // Get all linked OrderItem records
|
|
257
|
+
* const items = await record.orderItems.list();
|
|
258
|
+
* const first = await record.orderItems.first();
|
|
259
|
+
*
|
|
260
|
+
* // Filter by label
|
|
261
|
+
* const specific = await record.orderItems.first({ label: 'OrderItem__Offer' });
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
get orderItems(): RecordLinkManager<OrderItemRecord, typeof OfferRecord['orderItemsLabels'][number]>;
|
|
113
265
|
/**
|
|
114
266
|
* Queue a link to be created with the next action.
|
|
115
267
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createOffer({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: DEFAULT, RECONTRACT, STANDARD
|
|
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,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isOfferRecord = exports.OfferRecord = 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 LeadRecord_1 = require("./LeadRecord");
|
|
36
|
+
const DiscountRecord_1 = require("./DiscountRecord");
|
|
37
|
+
const ProductRecord_1 = require("./ProductRecord");
|
|
38
|
+
const OrderItemRecord_1 = require("./OrderItemRecord");
|
|
32
39
|
/**
|
|
33
40
|
* Builder for action execution with dryRun support
|
|
34
41
|
*
|
|
@@ -140,6 +147,207 @@ class OfferRecord {
|
|
|
140
147
|
/** Access the underlying OdinRecord (null for new records) */
|
|
141
148
|
get record() { return this._record; }
|
|
142
149
|
// ============================================
|
|
150
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
151
|
+
// ============================================
|
|
152
|
+
/**
|
|
153
|
+
* Type guard: check if this record is of type DEFAULT
|
|
154
|
+
*
|
|
155
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
156
|
+
* giving you access to DEFAULT-specific properties.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* if (record.isDefault()) {
|
|
161
|
+
* // TypeScript knows record.properties is OfferProperties
|
|
162
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
163
|
+
* }
|
|
164
|
+
* ```
|
|
165
|
+
* @remarks This is the default record type
|
|
166
|
+
*/
|
|
167
|
+
isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
|
|
168
|
+
/**
|
|
169
|
+
* Type guard: check if this record is of type RECONTRACT
|
|
170
|
+
*
|
|
171
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
172
|
+
* giving you access to RECONTRACT-specific properties.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```typescript
|
|
176
|
+
* if (record.isRecontract()) {
|
|
177
|
+
* // TypeScript knows record.properties is RecontractOfferProperties
|
|
178
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
* @remarks RECONTRACT
|
|
182
|
+
*/
|
|
183
|
+
isRecontract() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'RECONTRACT'; }
|
|
184
|
+
/**
|
|
185
|
+
* Type guard: check if this record is of type STANDARD
|
|
186
|
+
*
|
|
187
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
188
|
+
* giving you access to STANDARD-specific properties.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* if (record.isStandard()) {
|
|
193
|
+
* // TypeScript knows record.properties is StandardOfferProperties
|
|
194
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
195
|
+
* }
|
|
196
|
+
* ```
|
|
197
|
+
* @remarks STANDARD
|
|
198
|
+
*/
|
|
199
|
+
isStandard() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'STANDARD'; }
|
|
200
|
+
/**
|
|
201
|
+
* Access linked Lead records
|
|
202
|
+
* @remarks Available labels: Lead__Offer
|
|
203
|
+
* @throws Error if called on a new (unsaved) record
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* // Get all linked Lead records
|
|
208
|
+
* const items = await record.leads.list();
|
|
209
|
+
* const first = await record.leads.first();
|
|
210
|
+
*
|
|
211
|
+
* // Filter by label
|
|
212
|
+
* const specific = await record.leads.first({ label: 'Lead__Offer' });
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
get leads() {
|
|
216
|
+
var _a;
|
|
217
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
218
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
219
|
+
if (!this._leads) {
|
|
220
|
+
this._leads = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
221
|
+
sourceEntity: 'ProductModule:Offer',
|
|
222
|
+
targetEntity: 'CrmModule:Lead',
|
|
223
|
+
targetModuleName: 'CrmModule',
|
|
224
|
+
targetEntityName: 'Lead',
|
|
225
|
+
labels: ['Lead__Offer'],
|
|
226
|
+
}, LeadRecord_1.LeadRecord);
|
|
227
|
+
}
|
|
228
|
+
return this._leads;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Access linked Discount records
|
|
232
|
+
* @remarks Available labels: Offer__Discount
|
|
233
|
+
* @throws Error if called on a new (unsaved) record
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* // Get all linked Discount records
|
|
238
|
+
* const items = await record.discounts.list();
|
|
239
|
+
* const first = await record.discounts.first();
|
|
240
|
+
*
|
|
241
|
+
* // Filter by label
|
|
242
|
+
* const specific = await record.discounts.first({ label: 'Offer__Discount' });
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
get discounts() {
|
|
246
|
+
var _a;
|
|
247
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
248
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
249
|
+
if (!this._discounts) {
|
|
250
|
+
this._discounts = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
251
|
+
sourceEntity: 'ProductModule:Offer',
|
|
252
|
+
targetEntity: 'ProductModule:Discount',
|
|
253
|
+
targetModuleName: 'ProductModule',
|
|
254
|
+
targetEntityName: 'Discount',
|
|
255
|
+
labels: ['Offer__Discount'],
|
|
256
|
+
}, DiscountRecord_1.DiscountRecord);
|
|
257
|
+
}
|
|
258
|
+
return this._discounts;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Access linked Product records
|
|
262
|
+
* @remarks Available labels: Offer__Product
|
|
263
|
+
* @throws Error if called on a new (unsaved) record
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```typescript
|
|
267
|
+
* // Get all linked Product records
|
|
268
|
+
* const items = await record.products.list();
|
|
269
|
+
* const first = await record.products.first();
|
|
270
|
+
*
|
|
271
|
+
* // Filter by label
|
|
272
|
+
* const specific = await record.products.first({ label: 'Offer__Product' });
|
|
273
|
+
* ```
|
|
274
|
+
*/
|
|
275
|
+
get products() {
|
|
276
|
+
var _a;
|
|
277
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
278
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
279
|
+
if (!this._products) {
|
|
280
|
+
this._products = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
281
|
+
sourceEntity: 'ProductModule:Offer',
|
|
282
|
+
targetEntity: 'ProductModule:Product',
|
|
283
|
+
targetModuleName: 'ProductModule',
|
|
284
|
+
targetEntityName: 'Product',
|
|
285
|
+
labels: ['Offer__Product'],
|
|
286
|
+
}, ProductRecord_1.ProductRecord);
|
|
287
|
+
}
|
|
288
|
+
return this._products;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Access linked Offer records
|
|
292
|
+
* @remarks Available labels: Offer__Offer
|
|
293
|
+
* @throws Error if called on a new (unsaved) record
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* ```typescript
|
|
297
|
+
* // Get all linked Offer records
|
|
298
|
+
* const items = await record.offers.list();
|
|
299
|
+
* const first = await record.offers.first();
|
|
300
|
+
*
|
|
301
|
+
* // Filter by label
|
|
302
|
+
* const specific = await record.offers.first({ label: 'Offer__Offer' });
|
|
303
|
+
* ```
|
|
304
|
+
*/
|
|
305
|
+
get offers() {
|
|
306
|
+
var _a;
|
|
307
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
308
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
309
|
+
if (!this._offers) {
|
|
310
|
+
this._offers = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
311
|
+
sourceEntity: 'ProductModule:Offer',
|
|
312
|
+
targetEntity: 'ProductModule:Offer',
|
|
313
|
+
targetModuleName: 'ProductModule',
|
|
314
|
+
targetEntityName: 'Offer',
|
|
315
|
+
labels: ['Offer__Offer'],
|
|
316
|
+
}, OfferRecord);
|
|
317
|
+
}
|
|
318
|
+
return this._offers;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Access linked OrderItem records
|
|
322
|
+
* @remarks Available labels: OrderItem__Offer
|
|
323
|
+
* @throws Error if called on a new (unsaved) record
|
|
324
|
+
*
|
|
325
|
+
* @example
|
|
326
|
+
* ```typescript
|
|
327
|
+
* // Get all linked OrderItem records
|
|
328
|
+
* const items = await record.orderItems.list();
|
|
329
|
+
* const first = await record.orderItems.first();
|
|
330
|
+
*
|
|
331
|
+
* // Filter by label
|
|
332
|
+
* const specific = await record.orderItems.first({ label: 'OrderItem__Offer' });
|
|
333
|
+
* ```
|
|
334
|
+
*/
|
|
335
|
+
get orderItems() {
|
|
336
|
+
var _a;
|
|
337
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
338
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
339
|
+
if (!this._orderItems) {
|
|
340
|
+
this._orderItems = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
341
|
+
sourceEntity: 'ProductModule:Offer',
|
|
342
|
+
targetEntity: 'OrderModule:OrderItem',
|
|
343
|
+
targetModuleName: 'OrderModule',
|
|
344
|
+
targetEntityName: 'OrderItem',
|
|
345
|
+
labels: ['OrderItem__Offer'],
|
|
346
|
+
}, OrderItemRecord_1.OrderItemRecord);
|
|
347
|
+
}
|
|
348
|
+
return this._orderItems;
|
|
349
|
+
}
|
|
350
|
+
// ============================================
|
|
143
351
|
// LINK MANAGEMENT
|
|
144
352
|
// ============================================
|
|
145
353
|
/**
|
|
@@ -247,6 +455,19 @@ class OfferRecord {
|
|
|
247
455
|
}
|
|
248
456
|
}
|
|
249
457
|
exports.OfferRecord = OfferRecord;
|
|
458
|
+
// ============================================
|
|
459
|
+
// TYPED LINK ACCESSORS
|
|
460
|
+
// ============================================
|
|
461
|
+
/** Valid labels for Lead associations */
|
|
462
|
+
OfferRecord.leadsLabels = ['Lead__Offer'];
|
|
463
|
+
/** Valid labels for Discount associations */
|
|
464
|
+
OfferRecord.discountsLabels = ['Offer__Discount'];
|
|
465
|
+
/** Valid labels for Product associations */
|
|
466
|
+
OfferRecord.productsLabels = ['Offer__Product'];
|
|
467
|
+
/** Valid labels for Offer associations */
|
|
468
|
+
OfferRecord.offersLabels = ['Offer__Offer'];
|
|
469
|
+
/** Valid labels for OrderItem associations */
|
|
470
|
+
OfferRecord.orderItemsLabels = ['OrderItem__Offer'];
|
|
250
471
|
/** Type guard to check if an object is a OfferRecord */
|
|
251
472
|
function isOfferRecord(obj) {
|
|
252
473
|
return obj instanceof OfferRecord;
|
|
@@ -13,14 +13,22 @@
|
|
|
13
13
|
* await record.createOhAuditOfInstallation({ ... }).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 { OhAuditOfInstallationProperties, OutcomeFormOhAuditOfInstallationProperties } from '../entities-v2/OhAuditOfInstallation';
|
|
23
26
|
import { OhAuditOfInstallationCreateProperties } from '../actions-v2/CompleteInstallWorkOrderFlowDto';
|
|
27
|
+
import { NoteRecord } from './NoteRecord';
|
|
28
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
29
|
+
import { FileRecord } from './FileRecord';
|
|
30
|
+
/** Valid entity types for OhAuditOfInstallation */
|
|
31
|
+
export declare type OhAuditOfInstallationType = 'OUTCOME_FORM';
|
|
24
32
|
/**
|
|
25
33
|
* Builder for action execution with dryRun support
|
|
26
34
|
*
|
|
@@ -84,6 +92,9 @@ export declare class OhAuditOfInstallationRecord<TProps = OhAuditOfInstallationP
|
|
|
84
92
|
private _provider;
|
|
85
93
|
private _pendingLinks;
|
|
86
94
|
private _preGeneratedId;
|
|
95
|
+
private _notes?;
|
|
96
|
+
private _workOrders?;
|
|
97
|
+
private _files?;
|
|
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 OhAuditOfInstallationRecord<TProps = OhAuditOfInstallationP
|
|
|
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(): OhAuditOfInstallationType | 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 OhAuditOfInstallationRecord<TProps = OhAuditOfInstallationP
|
|
|
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 OutcomeFormOhAuditOfInstallationProperties
|
|
133
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
* @remarks outcome form
|
|
137
|
+
*/
|
|
138
|
+
isOutcomeForm(): this is OhAuditOfInstallationRecord<OutcomeFormOhAuditOfInstallationProperties>;
|
|
139
|
+
/** Valid labels for Note associations */
|
|
140
|
+
static readonly notesLabels: readonly ["OhAuditOfInstallation__Note"];
|
|
141
|
+
/**
|
|
142
|
+
* Access linked Note records
|
|
143
|
+
* @remarks Available labels: OhAuditOfInstallation__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: 'OhAuditOfInstallation__Note' });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
get notes(): RecordLinkManager<NoteRecord, typeof OhAuditOfInstallationRecord['notesLabels'][number]>;
|
|
157
|
+
/** Valid labels for WorkOrder associations */
|
|
158
|
+
static readonly workOrdersLabels: readonly ["WorkOrder_OhAuditOfInstallation"];
|
|
159
|
+
/**
|
|
160
|
+
* Access linked WorkOrder records
|
|
161
|
+
* @remarks Available labels: WorkOrder_OhAuditOfInstallation
|
|
162
|
+
* @throws Error if called on a new (unsaved) record
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* // Get all linked WorkOrder records
|
|
167
|
+
* const items = await record.workOrders.list();
|
|
168
|
+
* const first = await record.workOrders.first();
|
|
169
|
+
*
|
|
170
|
+
* // Filter by label
|
|
171
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder_OhAuditOfInstallation' });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof OhAuditOfInstallationRecord['workOrdersLabels'][number]>;
|
|
175
|
+
/** Valid labels for File associations */
|
|
176
|
+
static readonly filesLabels: readonly ["OhAuditOfInstallation__File"];
|
|
177
|
+
/**
|
|
178
|
+
* Access linked File records
|
|
179
|
+
* @remarks Available labels: OhAuditOfInstallation__File
|
|
180
|
+
* @throws Error if called on a new (unsaved) record
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* // Get all linked File records
|
|
185
|
+
* const items = await record.files.list();
|
|
186
|
+
* const first = await record.files.first();
|
|
187
|
+
*
|
|
188
|
+
* // Filter by label
|
|
189
|
+
* const specific = await record.files.first({ label: 'OhAuditOfInstallation__File' });
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
get files(): RecordLinkManager<FileRecord, typeof OhAuditOfInstallationRecord['filesLabels'][number]>;
|
|
112
193
|
/**
|
|
113
194
|
* Queue a link to be created with the next action.
|
|
114
195
|
* Works for both create and update actions.
|