@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,8 +19,10 @@ import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
|
|
|
19
19
|
import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
|
|
20
20
|
import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
|
|
21
21
|
import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
|
|
22
|
+
import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
|
|
22
23
|
import { ServiceProperties } from '../entities-v2/Service';
|
|
23
24
|
import { UpdateServiceProperties } from '../actions-v2/UpdateServiceDto';
|
|
25
|
+
import { ProductRecord } from './ProductRecord';
|
|
24
26
|
/**
|
|
25
27
|
* Builder for action execution with dryRun support
|
|
26
28
|
*
|
|
@@ -84,6 +86,8 @@ export declare class ServiceRecord<TProps = ServiceProperties> {
|
|
|
84
86
|
private _provider;
|
|
85
87
|
private _pendingLinks;
|
|
86
88
|
private _preGeneratedId;
|
|
89
|
+
private _products?;
|
|
90
|
+
private _services?;
|
|
87
91
|
/**
|
|
88
92
|
* Create a record wrapper.
|
|
89
93
|
* @param record - The underlying record, or null for create operations
|
|
@@ -109,6 +113,42 @@ export declare class ServiceRecord<TProps = ServiceProperties> {
|
|
|
109
113
|
get groups(): string[];
|
|
110
114
|
/** Access the underlying OdinRecord (null for new records) */
|
|
111
115
|
get record(): OdinRecord<TProps> | null;
|
|
116
|
+
/** Valid labels for Product associations */
|
|
117
|
+
static readonly productsLabels: readonly ["Product__Service"];
|
|
118
|
+
/**
|
|
119
|
+
* Access linked Product records
|
|
120
|
+
* @remarks Available labels: Product__Service
|
|
121
|
+
* @throws Error if called on a new (unsaved) record
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* // Get all linked Product records
|
|
126
|
+
* const items = await record.products.list();
|
|
127
|
+
* const first = await record.products.first();
|
|
128
|
+
*
|
|
129
|
+
* // Filter by label
|
|
130
|
+
* const specific = await record.products.first({ label: 'Product__Service' });
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
get products(): RecordLinkManager<ProductRecord, typeof ServiceRecord['productsLabels'][number]>;
|
|
134
|
+
/** Valid labels for Service associations */
|
|
135
|
+
static readonly servicesLabels: readonly ["Service__Service"];
|
|
136
|
+
/**
|
|
137
|
+
* Access linked Service records
|
|
138
|
+
* @remarks Available labels: Service__Service
|
|
139
|
+
* @throws Error if called on a new (unsaved) record
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* // Get all linked Service records
|
|
144
|
+
* const items = await record.services.list();
|
|
145
|
+
* const first = await record.services.first();
|
|
146
|
+
*
|
|
147
|
+
* // Filter by label
|
|
148
|
+
* const specific = await record.services.first({ label: 'Service__Service' });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
get services(): RecordLinkManager<ServiceRecord, typeof ServiceRecord['servicesLabels'][number]>;
|
|
112
152
|
/**
|
|
113
153
|
* Queue a link to be created with the next action.
|
|
114
154
|
* Works for both create and update actions.
|
|
@@ -29,6 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.isServiceRecord = exports.ServiceRecord = 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 ProductRecord_1 = require("./ProductRecord");
|
|
32
34
|
/**
|
|
33
35
|
* Builder for action execution with dryRun support
|
|
34
36
|
*
|
|
@@ -139,6 +141,66 @@ class ServiceRecord {
|
|
|
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 Product records
|
|
146
|
+
* @remarks Available labels: Product__Service
|
|
147
|
+
* @throws Error if called on a new (unsaved) record
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```typescript
|
|
151
|
+
* // Get all linked Product records
|
|
152
|
+
* const items = await record.products.list();
|
|
153
|
+
* const first = await record.products.first();
|
|
154
|
+
*
|
|
155
|
+
* // Filter by label
|
|
156
|
+
* const specific = await record.products.first({ label: 'Product__Service' });
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
get products() {
|
|
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._products) {
|
|
164
|
+
this._products = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
165
|
+
sourceEntity: 'ServiceModule:Service',
|
|
166
|
+
targetEntity: 'ProductModule:Product',
|
|
167
|
+
targetModuleName: 'ProductModule',
|
|
168
|
+
targetEntityName: 'Product',
|
|
169
|
+
labels: ['Product__Service'],
|
|
170
|
+
}, ProductRecord_1.ProductRecord);
|
|
171
|
+
}
|
|
172
|
+
return this._products;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Access linked Service records
|
|
176
|
+
* @remarks Available labels: Service__Service
|
|
177
|
+
* @throws Error if called on a new (unsaved) record
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // Get all linked Service records
|
|
182
|
+
* const items = await record.services.list();
|
|
183
|
+
* const first = await record.services.first();
|
|
184
|
+
*
|
|
185
|
+
* // Filter by label
|
|
186
|
+
* const specific = await record.services.first({ label: 'Service__Service' });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
get services() {
|
|
190
|
+
var _a;
|
|
191
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
192
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
193
|
+
if (!this._services) {
|
|
194
|
+
this._services = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
195
|
+
sourceEntity: 'ServiceModule:Service',
|
|
196
|
+
targetEntity: 'ServiceModule:Service',
|
|
197
|
+
targetModuleName: 'ServiceModule',
|
|
198
|
+
targetEntityName: 'Service',
|
|
199
|
+
labels: ['Service__Service'],
|
|
200
|
+
}, ServiceRecord);
|
|
201
|
+
}
|
|
202
|
+
return this._services;
|
|
203
|
+
}
|
|
142
204
|
// ============================================
|
|
143
205
|
// LINK MANAGEMENT
|
|
144
206
|
// ============================================
|
|
@@ -208,6 +270,13 @@ class ServiceRecord {
|
|
|
208
270
|
}
|
|
209
271
|
}
|
|
210
272
|
exports.ServiceRecord = ServiceRecord;
|
|
273
|
+
// ============================================
|
|
274
|
+
// TYPED LINK ACCESSORS
|
|
275
|
+
// ============================================
|
|
276
|
+
/** Valid labels for Product associations */
|
|
277
|
+
ServiceRecord.productsLabels = ['Product__Service'];
|
|
278
|
+
/** Valid labels for Service associations */
|
|
279
|
+
ServiceRecord.servicesLabels = ['Service__Service'];
|
|
211
280
|
/** Type guard to check if an object is a ServiceRecord */
|
|
212
281
|
function isServiceRecord(obj) {
|
|
213
282
|
return obj instanceof ServiceRecord;
|
|
@@ -13,14 +13,22 @@
|
|
|
13
13
|
* await record.createServiceVisitAudit({ ... }).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 { ServiceVisitAuditProperties, OutcomeFormServiceVisitAuditProperties } from '../entities-v2/ServiceVisitAudit';
|
|
23
26
|
import { ServiceVisitAuditCreateProperties } from '../actions-v2/CompleteServiceWorkOrderFlowDto';
|
|
27
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
28
|
+
import { NoteRecord } from './NoteRecord';
|
|
29
|
+
import { FileRecord } from './FileRecord';
|
|
30
|
+
/** Valid entity types for ServiceVisitAudit */
|
|
31
|
+
export declare type ServiceVisitAuditType = 'OUTCOME_FORM';
|
|
24
32
|
/**
|
|
25
33
|
* Builder for action execution with dryRun support
|
|
26
34
|
*
|
|
@@ -84,6 +92,9 @@ export declare class ServiceVisitAuditRecord<TProps = ServiceVisitAuditPropertie
|
|
|
84
92
|
private _provider;
|
|
85
93
|
private _pendingLinks;
|
|
86
94
|
private _preGeneratedId;
|
|
95
|
+
private _workOrders?;
|
|
96
|
+
private _notes?;
|
|
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 ServiceVisitAuditRecord<TProps = ServiceVisitAuditPropertie
|
|
|
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(): ServiceVisitAuditType | 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 ServiceVisitAuditRecord<TProps = ServiceVisitAuditPropertie
|
|
|
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 OutcomeFormServiceVisitAuditProperties
|
|
133
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
* @remarks outcome form
|
|
137
|
+
*/
|
|
138
|
+
isOutcomeForm(): this is ServiceVisitAuditRecord<OutcomeFormServiceVisitAuditProperties>;
|
|
139
|
+
/** Valid labels for WorkOrder associations */
|
|
140
|
+
static readonly workOrdersLabels: readonly ["ServiceVisitAudit_WorkOrder", "WorkOrder_ServiceVisitAudit"];
|
|
141
|
+
/**
|
|
142
|
+
* Access linked WorkOrder records
|
|
143
|
+
* @remarks Available labels: ServiceVisitAudit_WorkOrder, WorkOrder_ServiceVisitAudit
|
|
144
|
+
* @throws Error if called on a new (unsaved) record
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* // Get all linked WorkOrder records
|
|
149
|
+
* const items = await record.workOrders.list();
|
|
150
|
+
* const first = await record.workOrders.first();
|
|
151
|
+
*
|
|
152
|
+
* // Filter by label
|
|
153
|
+
* const specific = await record.workOrders.first({ label: 'ServiceVisitAudit_WorkOrder' });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof ServiceVisitAuditRecord['workOrdersLabels'][number]>;
|
|
157
|
+
/** Valid labels for Note associations */
|
|
158
|
+
static readonly notesLabels: readonly ["ServiceVisitAudit__Note"];
|
|
159
|
+
/**
|
|
160
|
+
* Access linked Note records
|
|
161
|
+
* @remarks Available labels: ServiceVisitAudit__Note
|
|
162
|
+
* @throws Error if called on a new (unsaved) record
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* // Get all linked Note records
|
|
167
|
+
* const items = await record.notes.list();
|
|
168
|
+
* const first = await record.notes.first();
|
|
169
|
+
*
|
|
170
|
+
* // Filter by label
|
|
171
|
+
* const specific = await record.notes.first({ label: 'ServiceVisitAudit__Note' });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
get notes(): RecordLinkManager<NoteRecord, typeof ServiceVisitAuditRecord['notesLabels'][number]>;
|
|
175
|
+
/** Valid labels for File associations */
|
|
176
|
+
static readonly filesLabels: readonly ["ServiceVisitAudit__File"];
|
|
177
|
+
/**
|
|
178
|
+
* Access linked File records
|
|
179
|
+
* @remarks Available labels: ServiceVisitAudit__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: 'ServiceVisitAudit__File' });
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
get files(): RecordLinkManager<FileRecord, typeof ServiceVisitAuditRecord['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.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createServiceVisitAudit({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: OUTCOME_FORM
|
|
18
|
+
*
|
|
17
19
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
18
20
|
*/
|
|
19
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
@@ -29,6 +31,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isServiceVisitAuditRecord = exports.ServiceVisitAuditRecord = 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 WorkOrderRecord_1 = require("./WorkOrderRecord");
|
|
36
|
+
const NoteRecord_1 = require("./NoteRecord");
|
|
37
|
+
const FileRecord_1 = require("./FileRecord");
|
|
32
38
|
/**
|
|
33
39
|
* Builder for action execution with dryRun support
|
|
34
40
|
*
|
|
@@ -140,6 +146,115 @@ class ServiceVisitAuditRecord {
|
|
|
140
146
|
/** Access the underlying OdinRecord (null for new records) */
|
|
141
147
|
get record() { return this._record; }
|
|
142
148
|
// ============================================
|
|
149
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
150
|
+
// ============================================
|
|
151
|
+
/**
|
|
152
|
+
* Type guard: check if this record is of type OUTCOME_FORM
|
|
153
|
+
*
|
|
154
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
155
|
+
* giving you access to OUTCOME_FORM-specific properties.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* if (record.isOutcomeForm()) {
|
|
160
|
+
* // TypeScript knows record.properties is OutcomeFormServiceVisitAuditProperties
|
|
161
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
* @remarks outcome form
|
|
165
|
+
*/
|
|
166
|
+
isOutcomeForm() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTCOME_FORM'; }
|
|
167
|
+
/**
|
|
168
|
+
* Access linked WorkOrder records
|
|
169
|
+
* @remarks Available labels: ServiceVisitAudit_WorkOrder, WorkOrder_ServiceVisitAudit
|
|
170
|
+
* @throws Error if called on a new (unsaved) record
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* // Get all linked WorkOrder records
|
|
175
|
+
* const items = await record.workOrders.list();
|
|
176
|
+
* const first = await record.workOrders.first();
|
|
177
|
+
*
|
|
178
|
+
* // Filter by label
|
|
179
|
+
* const specific = await record.workOrders.first({ label: 'ServiceVisitAudit_WorkOrder' });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
get workOrders() {
|
|
183
|
+
var _a;
|
|
184
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
185
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
186
|
+
if (!this._workOrders) {
|
|
187
|
+
this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
188
|
+
sourceEntity: 'FieldServiceModule:ServiceVisitAudit',
|
|
189
|
+
targetEntity: 'FieldServiceModule:WorkOrder',
|
|
190
|
+
targetModuleName: 'FieldServiceModule',
|
|
191
|
+
targetEntityName: 'WorkOrder',
|
|
192
|
+
labels: ['ServiceVisitAudit_WorkOrder', 'WorkOrder_ServiceVisitAudit'],
|
|
193
|
+
}, WorkOrderRecord_1.WorkOrderRecord);
|
|
194
|
+
}
|
|
195
|
+
return this._workOrders;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Access linked Note records
|
|
199
|
+
* @remarks Available labels: ServiceVisitAudit__Note
|
|
200
|
+
* @throws Error if called on a new (unsaved) record
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Get all linked Note records
|
|
205
|
+
* const items = await record.notes.list();
|
|
206
|
+
* const first = await record.notes.first();
|
|
207
|
+
*
|
|
208
|
+
* // Filter by label
|
|
209
|
+
* const specific = await record.notes.first({ label: 'ServiceVisitAudit__Note' });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
get notes() {
|
|
213
|
+
var _a;
|
|
214
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
215
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
216
|
+
if (!this._notes) {
|
|
217
|
+
this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
218
|
+
sourceEntity: 'FieldServiceModule:ServiceVisitAudit',
|
|
219
|
+
targetEntity: 'SupportModule:Note',
|
|
220
|
+
targetModuleName: 'SupportModule',
|
|
221
|
+
targetEntityName: 'Note',
|
|
222
|
+
labels: ['ServiceVisitAudit__Note'],
|
|
223
|
+
}, NoteRecord_1.NoteRecord);
|
|
224
|
+
}
|
|
225
|
+
return this._notes;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Access linked File records
|
|
229
|
+
* @remarks Available labels: ServiceVisitAudit__File
|
|
230
|
+
* @throws Error if called on a new (unsaved) record
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* // Get all linked File records
|
|
235
|
+
* const items = await record.files.list();
|
|
236
|
+
* const first = await record.files.first();
|
|
237
|
+
*
|
|
238
|
+
* // Filter by label
|
|
239
|
+
* const specific = await record.files.first({ label: 'ServiceVisitAudit__File' });
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
242
|
+
get files() {
|
|
243
|
+
var _a;
|
|
244
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
245
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
246
|
+
if (!this._files) {
|
|
247
|
+
this._files = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
248
|
+
sourceEntity: 'FieldServiceModule:ServiceVisitAudit',
|
|
249
|
+
targetEntity: 'SchemaModule:File',
|
|
250
|
+
targetModuleName: 'SchemaModule',
|
|
251
|
+
targetEntityName: 'File',
|
|
252
|
+
labels: ['ServiceVisitAudit__File'],
|
|
253
|
+
}, FileRecord_1.FileRecord);
|
|
254
|
+
}
|
|
255
|
+
return this._files;
|
|
256
|
+
}
|
|
257
|
+
// ============================================
|
|
143
258
|
// LINK MANAGEMENT
|
|
144
259
|
// ============================================
|
|
145
260
|
/**
|
|
@@ -215,6 +330,15 @@ class ServiceVisitAuditRecord {
|
|
|
215
330
|
}
|
|
216
331
|
}
|
|
217
332
|
exports.ServiceVisitAuditRecord = ServiceVisitAuditRecord;
|
|
333
|
+
// ============================================
|
|
334
|
+
// TYPED LINK ACCESSORS
|
|
335
|
+
// ============================================
|
|
336
|
+
/** Valid labels for WorkOrder associations */
|
|
337
|
+
ServiceVisitAuditRecord.workOrdersLabels = ['ServiceVisitAudit_WorkOrder', 'WorkOrder_ServiceVisitAudit'];
|
|
338
|
+
/** Valid labels for Note associations */
|
|
339
|
+
ServiceVisitAuditRecord.notesLabels = ['ServiceVisitAudit__Note'];
|
|
340
|
+
/** Valid labels for File associations */
|
|
341
|
+
ServiceVisitAuditRecord.filesLabels = ['ServiceVisitAudit__File'];
|
|
218
342
|
/** Type guard to check if an object is a ServiceVisitAuditRecord */
|
|
219
343
|
function isServiceVisitAuditRecord(obj) {
|
|
220
344
|
return obj instanceof ServiceVisitAuditRecord;
|
|
@@ -13,15 +13,23 @@
|
|
|
13
13
|
* await record.createSiteSpecificRiskAssessmentOutcomeForm({ ... }).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 { SiteSpecificRiskAssessmentOutcomeFormProperties, OutcomeFormSiteSpecificRiskAssessmentOutcomeFormProperties } from '../entities-v2/SiteSpecificRiskAssessmentOutcomeForm';
|
|
23
26
|
import { CreateSsraProperties } from '../actions-v2/MoveInspectionWorkOrderToInProgressSubstantialDto';
|
|
24
27
|
import { UpdateSsraProperties } from '../actions-v2/UpdateSsraDto';
|
|
28
|
+
import { NoteRecord } from './NoteRecord';
|
|
29
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
30
|
+
import { FileRecord } from './FileRecord';
|
|
31
|
+
/** Valid entity types for SiteSpecificRiskAssessmentOutcomeForm */
|
|
32
|
+
export declare type SiteSpecificRiskAssessmentOutcomeFormType = 'OUTCOME_FORM';
|
|
25
33
|
/**
|
|
26
34
|
* Builder for action execution with dryRun support
|
|
27
35
|
*
|
|
@@ -85,6 +93,9 @@ export declare class SiteSpecificRiskAssessmentOutcomeFormRecord<TProps = SiteSp
|
|
|
85
93
|
private _provider;
|
|
86
94
|
private _pendingLinks;
|
|
87
95
|
private _preGeneratedId;
|
|
96
|
+
private _notes?;
|
|
97
|
+
private _workOrders?;
|
|
98
|
+
private _files?;
|
|
88
99
|
/**
|
|
89
100
|
* Create a record wrapper.
|
|
90
101
|
* @param record - The underlying record, or null for create operations
|
|
@@ -97,7 +108,7 @@ export declare class SiteSpecificRiskAssessmentOutcomeFormRecord<TProps = SiteSp
|
|
|
97
108
|
/** Record ID - always available (pre-generated for new records) */
|
|
98
109
|
get id(): string;
|
|
99
110
|
get entity(): string;
|
|
100
|
-
get type():
|
|
111
|
+
get type(): SiteSpecificRiskAssessmentOutcomeFormType | undefined;
|
|
101
112
|
/** Record properties - empty object for new (unsaved) records */
|
|
102
113
|
get properties(): TProps;
|
|
103
114
|
get title(): string | undefined;
|
|
@@ -110,6 +121,76 @@ export declare class SiteSpecificRiskAssessmentOutcomeFormRecord<TProps = SiteSp
|
|
|
110
121
|
get groups(): string[];
|
|
111
122
|
/** Access the underlying OdinRecord (null for new records) */
|
|
112
123
|
get record(): OdinRecord<TProps> | null;
|
|
124
|
+
/**
|
|
125
|
+
* Type guard: check if this record is of type OUTCOME_FORM
|
|
126
|
+
*
|
|
127
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
128
|
+
* giving you access to OUTCOME_FORM-specific properties.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* if (record.isOutcomeForm()) {
|
|
133
|
+
* // TypeScript knows record.properties is OutcomeFormSiteSpecificRiskAssessmentOutcomeFormProperties
|
|
134
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
137
|
+
* @remarks outcome form
|
|
138
|
+
*/
|
|
139
|
+
isOutcomeForm(): this is SiteSpecificRiskAssessmentOutcomeFormRecord<OutcomeFormSiteSpecificRiskAssessmentOutcomeFormProperties>;
|
|
140
|
+
/** Valid labels for Note associations */
|
|
141
|
+
static readonly notesLabels: readonly ["SiteSpecificRiskAssessmentOutcomeForm__Note"];
|
|
142
|
+
/**
|
|
143
|
+
* Access linked Note records
|
|
144
|
+
* @remarks Available labels: SiteSpecificRiskAssessmentOutcomeForm__Note
|
|
145
|
+
* @throws Error if called on a new (unsaved) record
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* // Get all linked Note records
|
|
150
|
+
* const items = await record.notes.list();
|
|
151
|
+
* const first = await record.notes.first();
|
|
152
|
+
*
|
|
153
|
+
* // Filter by label
|
|
154
|
+
* const specific = await record.notes.first({ label: 'SiteSpecificRiskAssessmentOutcomeForm__Note' });
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
get notes(): RecordLinkManager<NoteRecord, typeof SiteSpecificRiskAssessmentOutcomeFormRecord['notesLabels'][number]>;
|
|
158
|
+
/** Valid labels for WorkOrder associations */
|
|
159
|
+
static readonly workOrdersLabels: readonly ["WorkOrder__SiteSpecificRiskAssessmentOutcomeForm"];
|
|
160
|
+
/**
|
|
161
|
+
* Access linked WorkOrder records
|
|
162
|
+
* @remarks Available labels: WorkOrder__SiteSpecificRiskAssessmentOutcomeForm
|
|
163
|
+
* @throws Error if called on a new (unsaved) record
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* // Get all linked WorkOrder records
|
|
168
|
+
* const items = await record.workOrders.list();
|
|
169
|
+
* const first = await record.workOrders.first();
|
|
170
|
+
*
|
|
171
|
+
* // Filter by label
|
|
172
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder__SiteSpecificRiskAssessmentOutcomeForm' });
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof SiteSpecificRiskAssessmentOutcomeFormRecord['workOrdersLabels'][number]>;
|
|
176
|
+
/** Valid labels for File associations */
|
|
177
|
+
static readonly filesLabels: readonly ["SiteSpecificRiskAssessmentOutcomeForm__File"];
|
|
178
|
+
/**
|
|
179
|
+
* Access linked File records
|
|
180
|
+
* @remarks Available labels: SiteSpecificRiskAssessmentOutcomeForm__File
|
|
181
|
+
* @throws Error if called on a new (unsaved) record
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* // Get all linked File records
|
|
186
|
+
* const items = await record.files.list();
|
|
187
|
+
* const first = await record.files.first();
|
|
188
|
+
*
|
|
189
|
+
* // Filter by label
|
|
190
|
+
* const specific = await record.files.first({ label: 'SiteSpecificRiskAssessmentOutcomeForm__File' });
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
get files(): RecordLinkManager<FileRecord, typeof SiteSpecificRiskAssessmentOutcomeFormRecord['filesLabels'][number]>;
|
|
113
194
|
/**
|
|
114
195
|
* Queue a link to be created with the next action.
|
|
115
196
|
* Works for both create and update actions.
|