@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,13 +13,19 @@
|
|
|
13
13
|
* await record.createOutage({ ... }).execute();
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
+
* Entity Types: DEFAULT
|
|
17
|
+
*
|
|
16
18
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
17
19
|
*/
|
|
18
20
|
import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
|
|
19
21
|
import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
|
|
20
22
|
import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
|
|
21
23
|
import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
|
|
24
|
+
import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
|
|
22
25
|
import { OutageProperties } from '../entities-v2/Outage';
|
|
26
|
+
import { CaseRecord } from './CaseRecord';
|
|
27
|
+
/** Valid entity types for Outage */
|
|
28
|
+
export declare type OutageType = 'DEFAULT';
|
|
23
29
|
/**
|
|
24
30
|
* Builder for action execution with dryRun support
|
|
25
31
|
*
|
|
@@ -83,6 +89,7 @@ export declare class OutageRecord<TProps = OutageProperties> {
|
|
|
83
89
|
private _provider;
|
|
84
90
|
private _pendingLinks;
|
|
85
91
|
private _preGeneratedId;
|
|
92
|
+
private _cases?;
|
|
86
93
|
/**
|
|
87
94
|
* Create a record wrapper.
|
|
88
95
|
* @param record - The underlying record, or null for create operations
|
|
@@ -95,7 +102,7 @@ export declare class OutageRecord<TProps = OutageProperties> {
|
|
|
95
102
|
/** Record ID - always available (pre-generated for new records) */
|
|
96
103
|
get id(): string;
|
|
97
104
|
get entity(): string;
|
|
98
|
-
get type():
|
|
105
|
+
get type(): OutageType | undefined;
|
|
99
106
|
/** Record properties - empty object for new (unsaved) records */
|
|
100
107
|
get properties(): TProps;
|
|
101
108
|
get title(): string | undefined;
|
|
@@ -108,6 +115,40 @@ export declare class OutageRecord<TProps = OutageProperties> {
|
|
|
108
115
|
get groups(): string[];
|
|
109
116
|
/** Access the underlying OdinRecord (null for new records) */
|
|
110
117
|
get record(): OdinRecord<TProps> | null;
|
|
118
|
+
/**
|
|
119
|
+
* Type guard: check if this record is of type DEFAULT
|
|
120
|
+
*
|
|
121
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
122
|
+
* giving you access to DEFAULT-specific properties.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* if (record.isDefault()) {
|
|
127
|
+
* // TypeScript knows record.properties is OutageProperties
|
|
128
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
129
|
+
* }
|
|
130
|
+
* ```
|
|
131
|
+
* @remarks This is the default record type
|
|
132
|
+
*/
|
|
133
|
+
isDefault(): this is OutageRecord<OutageProperties>;
|
|
134
|
+
/** Valid labels for Case associations */
|
|
135
|
+
static readonly casesLabels: readonly ["Outage__Case", "Outage"];
|
|
136
|
+
/**
|
|
137
|
+
* Access linked Case records
|
|
138
|
+
* @remarks Available labels: Outage__Case, Outage
|
|
139
|
+
* @throws Error if called on a new (unsaved) record
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* // Get all linked Case records
|
|
144
|
+
* const items = await record.cases.list();
|
|
145
|
+
* const first = await record.cases.first();
|
|
146
|
+
*
|
|
147
|
+
* // Filter by label
|
|
148
|
+
* const specific = await record.cases.first({ label: 'Outage__Case' });
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
get cases(): RecordLinkManager<CaseRecord, typeof OutageRecord['casesLabels'][number]>;
|
|
111
152
|
/**
|
|
112
153
|
* Queue a link to be created with the next action.
|
|
113
154
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createOutage({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: DEFAULT
|
|
18
|
+
*
|
|
17
19
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
18
20
|
*/
|
|
19
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
@@ -29,6 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isOutageRecord = exports.OutageRecord = 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 CaseRecord_1 = require("./CaseRecord");
|
|
32
36
|
/**
|
|
33
37
|
* Builder for action execution with dryRun support
|
|
34
38
|
*
|
|
@@ -140,6 +144,55 @@ class OutageRecord {
|
|
|
140
144
|
/** Access the underlying OdinRecord (null for new records) */
|
|
141
145
|
get record() { return this._record; }
|
|
142
146
|
// ============================================
|
|
147
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
148
|
+
// ============================================
|
|
149
|
+
/**
|
|
150
|
+
* Type guard: check if this record is of type DEFAULT
|
|
151
|
+
*
|
|
152
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
153
|
+
* giving you access to DEFAULT-specific properties.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* if (record.isDefault()) {
|
|
158
|
+
* // TypeScript knows record.properties is OutageProperties
|
|
159
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
160
|
+
* }
|
|
161
|
+
* ```
|
|
162
|
+
* @remarks This is the default record type
|
|
163
|
+
*/
|
|
164
|
+
isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
|
|
165
|
+
/**
|
|
166
|
+
* Access linked Case records
|
|
167
|
+
* @remarks Available labels: Outage__Case, Outage
|
|
168
|
+
* @throws Error if called on a new (unsaved) record
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* // Get all linked Case records
|
|
173
|
+
* const items = await record.cases.list();
|
|
174
|
+
* const first = await record.cases.first();
|
|
175
|
+
*
|
|
176
|
+
* // Filter by label
|
|
177
|
+
* const specific = await record.cases.first({ label: 'Outage__Case' });
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
get cases() {
|
|
181
|
+
var _a;
|
|
182
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
183
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
184
|
+
if (!this._cases) {
|
|
185
|
+
this._cases = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
186
|
+
sourceEntity: 'ServiceModule:Outage',
|
|
187
|
+
targetEntity: 'SupportModule:Case',
|
|
188
|
+
targetModuleName: 'SupportModule',
|
|
189
|
+
targetEntityName: 'Case',
|
|
190
|
+
labels: ['Outage__Case', 'Outage'],
|
|
191
|
+
}, CaseRecord_1.CaseRecord);
|
|
192
|
+
}
|
|
193
|
+
return this._cases;
|
|
194
|
+
}
|
|
195
|
+
// ============================================
|
|
143
196
|
// LINK MANAGEMENT
|
|
144
197
|
// ============================================
|
|
145
198
|
/**
|
|
@@ -208,6 +261,11 @@ class OutageRecord {
|
|
|
208
261
|
}
|
|
209
262
|
}
|
|
210
263
|
exports.OutageRecord = OutageRecord;
|
|
264
|
+
// ============================================
|
|
265
|
+
// TYPED LINK ACCESSORS
|
|
266
|
+
// ============================================
|
|
267
|
+
/** Valid labels for Case associations */
|
|
268
|
+
OutageRecord.casesLabels = ['Outage__Case', 'Outage'];
|
|
211
269
|
/** Type guard to check if an object is a OutageRecord */
|
|
212
270
|
function isOutageRecord(obj) {
|
|
213
271
|
return obj instanceof OutageRecord;
|
|
@@ -13,14 +13,22 @@
|
|
|
13
13
|
* await record.createOverlayRealA55({ ... }).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 { OverlayRealA55Properties, OutcomeFormOverlayRealA55Properties } from '../entities-v2/OverlayRealA55';
|
|
23
26
|
import { OverlayA55UpdateProperties } from '../actions-v2/OverlayA55UpdateDto';
|
|
27
|
+
import { NoteRecord } from './NoteRecord';
|
|
28
|
+
import { WorkOrderRecord } from './WorkOrderRecord';
|
|
29
|
+
import { FileRecord } from './FileRecord';
|
|
30
|
+
/** Valid entity types for OverlayRealA55 */
|
|
31
|
+
export declare type OverlayRealA55Type = 'OUTCOME_FORM';
|
|
24
32
|
/**
|
|
25
33
|
* Builder for action execution with dryRun support
|
|
26
34
|
*
|
|
@@ -84,6 +92,9 @@ export declare class OverlayRealA55Record<TProps = OverlayRealA55Properties> {
|
|
|
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 OverlayRealA55Record<TProps = OverlayRealA55Properties> {
|
|
|
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(): OverlayRealA55Type | 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 OverlayRealA55Record<TProps = OverlayRealA55Properties> {
|
|
|
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 OutcomeFormOverlayRealA55Properties
|
|
133
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
* @remarks outcome form
|
|
137
|
+
*/
|
|
138
|
+
isOutcomeForm(): this is OverlayRealA55Record<OutcomeFormOverlayRealA55Properties>;
|
|
139
|
+
/** Valid labels for Note associations */
|
|
140
|
+
static readonly notesLabels: readonly ["OverlayRealA55_Note"];
|
|
141
|
+
/**
|
|
142
|
+
* Access linked Note records
|
|
143
|
+
* @remarks Available labels: OverlayRealA55_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: 'OverlayRealA55_Note' });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
get notes(): RecordLinkManager<NoteRecord, typeof OverlayRealA55Record['notesLabels'][number]>;
|
|
157
|
+
/** Valid labels for WorkOrder associations */
|
|
158
|
+
static readonly workOrdersLabels: readonly ["WorkOrder_OverlayRealA55"];
|
|
159
|
+
/**
|
|
160
|
+
* Access linked WorkOrder records
|
|
161
|
+
* @remarks Available labels: WorkOrder_OverlayRealA55
|
|
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_OverlayRealA55' });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
get workOrders(): RecordLinkManager<WorkOrderRecord, typeof OverlayRealA55Record['workOrdersLabels'][number]>;
|
|
175
|
+
/** Valid labels for File associations */
|
|
176
|
+
static readonly filesLabels: readonly ["OverlayRealA55_File"];
|
|
177
|
+
/**
|
|
178
|
+
* Access linked File records
|
|
179
|
+
* @remarks Available labels: OverlayRealA55_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: 'OverlayRealA55_File' });
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
get files(): RecordLinkManager<FileRecord, typeof OverlayRealA55Record['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.createOverlayRealA55({ ... }).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.isOverlayRealA55Record = exports.OverlayRealA55Record = void 0;
|
|
30
32
|
const uuid_1 = require("uuid");
|
|
31
33
|
const core_1 = require("@d19n/odin-types/dist/core");
|
|
34
|
+
const record_link_manager_1 = require("@d19n/odin-sdk-generator/dist/record-link-manager");
|
|
35
|
+
const NoteRecord_1 = require("./NoteRecord");
|
|
36
|
+
const WorkOrderRecord_1 = require("./WorkOrderRecord");
|
|
37
|
+
const FileRecord_1 = require("./FileRecord");
|
|
32
38
|
/**
|
|
33
39
|
* Builder for action execution with dryRun support
|
|
34
40
|
*
|
|
@@ -140,6 +146,115 @@ class OverlayRealA55Record {
|
|
|
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 OutcomeFormOverlayRealA55Properties
|
|
161
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
162
|
+
* }
|
|
163
|
+
* ```
|
|
164
|
+
* @remarks outcome form
|
|
165
|
+
*/
|
|
166
|
+
isOutcomeForm() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'OUTCOME_FORM'; }
|
|
167
|
+
/**
|
|
168
|
+
* Access linked Note records
|
|
169
|
+
* @remarks Available labels: OverlayRealA55_Note
|
|
170
|
+
* @throws Error if called on a new (unsaved) record
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* // Get all linked Note records
|
|
175
|
+
* const items = await record.notes.list();
|
|
176
|
+
* const first = await record.notes.first();
|
|
177
|
+
*
|
|
178
|
+
* // Filter by label
|
|
179
|
+
* const specific = await record.notes.first({ label: 'OverlayRealA55_Note' });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
get notes() {
|
|
183
|
+
var _a;
|
|
184
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
185
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
186
|
+
if (!this._notes) {
|
|
187
|
+
this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
188
|
+
sourceEntity: 'FieldServiceModule:OverlayRealA55',
|
|
189
|
+
targetEntity: 'SupportModule:Note',
|
|
190
|
+
targetModuleName: 'SupportModule',
|
|
191
|
+
targetEntityName: 'Note',
|
|
192
|
+
labels: ['OverlayRealA55_Note'],
|
|
193
|
+
}, NoteRecord_1.NoteRecord);
|
|
194
|
+
}
|
|
195
|
+
return this._notes;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Access linked WorkOrder records
|
|
199
|
+
* @remarks Available labels: WorkOrder_OverlayRealA55
|
|
200
|
+
* @throws Error if called on a new (unsaved) record
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* // Get all linked WorkOrder records
|
|
205
|
+
* const items = await record.workOrders.list();
|
|
206
|
+
* const first = await record.workOrders.first();
|
|
207
|
+
*
|
|
208
|
+
* // Filter by label
|
|
209
|
+
* const specific = await record.workOrders.first({ label: 'WorkOrder_OverlayRealA55' });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
get workOrders() {
|
|
213
|
+
var _a;
|
|
214
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
215
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
216
|
+
if (!this._workOrders) {
|
|
217
|
+
this._workOrders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
218
|
+
sourceEntity: 'FieldServiceModule:OverlayRealA55',
|
|
219
|
+
targetEntity: 'FieldServiceModule:WorkOrder',
|
|
220
|
+
targetModuleName: 'FieldServiceModule',
|
|
221
|
+
targetEntityName: 'WorkOrder',
|
|
222
|
+
labels: ['WorkOrder_OverlayRealA55'],
|
|
223
|
+
}, WorkOrderRecord_1.WorkOrderRecord);
|
|
224
|
+
}
|
|
225
|
+
return this._workOrders;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Access linked File records
|
|
229
|
+
* @remarks Available labels: OverlayRealA55_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: 'OverlayRealA55_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:OverlayRealA55',
|
|
249
|
+
targetEntity: 'SchemaModule:File',
|
|
250
|
+
targetModuleName: 'SchemaModule',
|
|
251
|
+
targetEntityName: 'File',
|
|
252
|
+
labels: ['OverlayRealA55_File'],
|
|
253
|
+
}, FileRecord_1.FileRecord);
|
|
254
|
+
}
|
|
255
|
+
return this._files;
|
|
256
|
+
}
|
|
257
|
+
// ============================================
|
|
143
258
|
// LINK MANAGEMENT
|
|
144
259
|
// ============================================
|
|
145
260
|
/**
|
|
@@ -208,6 +323,15 @@ class OverlayRealA55Record {
|
|
|
208
323
|
}
|
|
209
324
|
}
|
|
210
325
|
exports.OverlayRealA55Record = OverlayRealA55Record;
|
|
326
|
+
// ============================================
|
|
327
|
+
// TYPED LINK ACCESSORS
|
|
328
|
+
// ============================================
|
|
329
|
+
/** Valid labels for Note associations */
|
|
330
|
+
OverlayRealA55Record.notesLabels = ['OverlayRealA55_Note'];
|
|
331
|
+
/** Valid labels for WorkOrder associations */
|
|
332
|
+
OverlayRealA55Record.workOrdersLabels = ['WorkOrder_OverlayRealA55'];
|
|
333
|
+
/** Valid labels for File associations */
|
|
334
|
+
OverlayRealA55Record.filesLabels = ['OverlayRealA55_File'];
|
|
211
335
|
/** Type guard to check if an object is a OverlayRealA55Record */
|
|
212
336
|
function isOverlayRealA55Record(obj) {
|
|
213
337
|
return obj instanceof OverlayRealA55Record;
|
|
@@ -13,16 +13,23 @@
|
|
|
13
13
|
* await record.createPICRequest({ ... }).execute();
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
+
* Entity Types: DEFAULT
|
|
17
|
+
*
|
|
16
18
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
17
19
|
*/
|
|
18
20
|
import { OdinRecord, OdinRecordLinkDto } from '@d19n/odin-types/dist/core';
|
|
19
21
|
import { PipelineStageEntity } from '@d19n/odin-types/dist/core';
|
|
20
22
|
import { IDbRecordCreateUpdateRes } from '@d19n/odin-types/dist/core/interfaces/v1.db.interfaces';
|
|
21
23
|
import { IOdinProvider } from '@d19n/odin-sdk-generator/dist/odin-sdk-types';
|
|
24
|
+
import { RecordLinkManager } from '@d19n/odin-sdk-generator/dist/record-link-manager';
|
|
22
25
|
import { PICRequestProperties } from '../entities-v2/PICRequest';
|
|
23
26
|
import { CreatePicRequestProperties } from '../actions-v2/CancelOrderPreInstallDto';
|
|
24
27
|
import { CompletePicRequestProperties } from '../actions-v2/CompletePicRequestDto';
|
|
25
28
|
import { DefaultUpdatePicRequestProperties } from '../actions-v2/DefaultUpdatePicRequestDto';
|
|
29
|
+
import { OrderRecord } from './OrderRecord';
|
|
30
|
+
import { NoteRecord } from './NoteRecord';
|
|
31
|
+
/** Valid entity types for PICRequest */
|
|
32
|
+
export declare type PICRequestType = 'DEFAULT';
|
|
26
33
|
/**
|
|
27
34
|
* Builder for action execution with dryRun support
|
|
28
35
|
*
|
|
@@ -148,6 +155,8 @@ export declare class PICRequestRecord<TProps = PICRequestProperties> {
|
|
|
148
155
|
private _provider;
|
|
149
156
|
private _pendingLinks;
|
|
150
157
|
private _preGeneratedId;
|
|
158
|
+
private _orders?;
|
|
159
|
+
private _notes?;
|
|
151
160
|
/**
|
|
152
161
|
* Create a record wrapper.
|
|
153
162
|
* @param record - The underlying record, or null for create operations
|
|
@@ -160,7 +169,7 @@ export declare class PICRequestRecord<TProps = PICRequestProperties> {
|
|
|
160
169
|
/** Record ID - always available (pre-generated for new records) */
|
|
161
170
|
get id(): string;
|
|
162
171
|
get entity(): string;
|
|
163
|
-
get type():
|
|
172
|
+
get type(): PICRequestType | undefined;
|
|
164
173
|
/** Record properties - empty object for new (unsaved) records */
|
|
165
174
|
get properties(): TProps;
|
|
166
175
|
get title(): string | undefined;
|
|
@@ -173,6 +182,58 @@ export declare class PICRequestRecord<TProps = PICRequestProperties> {
|
|
|
173
182
|
get groups(): string[];
|
|
174
183
|
/** Access the underlying OdinRecord (null for new records) */
|
|
175
184
|
get record(): OdinRecord<TProps> | null;
|
|
185
|
+
/**
|
|
186
|
+
* Type guard: check if this record is of type DEFAULT
|
|
187
|
+
*
|
|
188
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
189
|
+
* giving you access to DEFAULT-specific properties.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* if (record.isDefault()) {
|
|
194
|
+
* // TypeScript knows record.properties is PICRequestProperties
|
|
195
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
196
|
+
* }
|
|
197
|
+
* ```
|
|
198
|
+
* @remarks This is the default record type
|
|
199
|
+
*/
|
|
200
|
+
isDefault(): this is PICRequestRecord<PICRequestProperties>;
|
|
201
|
+
/** Valid labels for Order associations */
|
|
202
|
+
static readonly ordersLabels: readonly ["PICRequest__Order"];
|
|
203
|
+
/**
|
|
204
|
+
* Access linked Order records
|
|
205
|
+
* @remarks Available labels: PICRequest__Order
|
|
206
|
+
* @throws Error if called on a new (unsaved) record
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* // Get all linked Order records
|
|
211
|
+
* const items = await record.orders.list();
|
|
212
|
+
* const first = await record.orders.first();
|
|
213
|
+
*
|
|
214
|
+
* // Filter by label
|
|
215
|
+
* const specific = await record.orders.first({ label: 'PICRequest__Order' });
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
get orders(): RecordLinkManager<OrderRecord, typeof PICRequestRecord['ordersLabels'][number]>;
|
|
219
|
+
/** Valid labels for Note associations */
|
|
220
|
+
static readonly notesLabels: readonly ["PICRequest__Note"];
|
|
221
|
+
/**
|
|
222
|
+
* Access linked Note records
|
|
223
|
+
* @remarks Available labels: PICRequest__Note
|
|
224
|
+
* @throws Error if called on a new (unsaved) record
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* // Get all linked Note records
|
|
229
|
+
* const items = await record.notes.list();
|
|
230
|
+
* const first = await record.notes.first();
|
|
231
|
+
*
|
|
232
|
+
* // Filter by label
|
|
233
|
+
* const specific = await record.notes.first({ label: 'PICRequest__Note' });
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
get notes(): RecordLinkManager<NoteRecord, typeof PICRequestRecord['notesLabels'][number]>;
|
|
176
237
|
/**
|
|
177
238
|
* Queue a link to be created with the next action.
|
|
178
239
|
* Works for both create and update actions.
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* await record.createPICRequest({ ... }).execute();
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
|
+
* Entity Types: DEFAULT
|
|
18
|
+
*
|
|
17
19
|
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
18
20
|
*/
|
|
19
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
@@ -29,6 +31,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
31
|
exports.isPICRequestRecord = exports.PICRequestRecord = exports.CompletePicRequestFlowFlowBuilder = 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 OrderRecord_1 = require("./OrderRecord");
|
|
36
|
+
const NoteRecord_1 = require("./NoteRecord");
|
|
32
37
|
/**
|
|
33
38
|
* Builder for action execution with dryRun support
|
|
34
39
|
*
|
|
@@ -254,6 +259,85 @@ class PICRequestRecord {
|
|
|
254
259
|
/** Access the underlying OdinRecord (null for new records) */
|
|
255
260
|
get record() { return this._record; }
|
|
256
261
|
// ============================================
|
|
262
|
+
// TYPE GUARDS (with TypeScript type predicates)
|
|
263
|
+
// ============================================
|
|
264
|
+
/**
|
|
265
|
+
* Type guard: check if this record is of type DEFAULT
|
|
266
|
+
*
|
|
267
|
+
* When this returns true, TypeScript automatically narrows the type,
|
|
268
|
+
* giving you access to DEFAULT-specific properties.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* if (record.isDefault()) {
|
|
273
|
+
* // TypeScript knows record.properties is PICRequestProperties
|
|
274
|
+
* console.log(record.properties.SomeTypeSpecificField);
|
|
275
|
+
* }
|
|
276
|
+
* ```
|
|
277
|
+
* @remarks This is the default record type
|
|
278
|
+
*/
|
|
279
|
+
isDefault() { var _a; return ((_a = this._record) === null || _a === void 0 ? void 0 : _a.type) === 'DEFAULT'; }
|
|
280
|
+
/**
|
|
281
|
+
* Access linked Order records
|
|
282
|
+
* @remarks Available labels: PICRequest__Order
|
|
283
|
+
* @throws Error if called on a new (unsaved) record
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```typescript
|
|
287
|
+
* // Get all linked Order records
|
|
288
|
+
* const items = await record.orders.list();
|
|
289
|
+
* const first = await record.orders.first();
|
|
290
|
+
*
|
|
291
|
+
* // Filter by label
|
|
292
|
+
* const specific = await record.orders.first({ label: 'PICRequest__Order' });
|
|
293
|
+
* ```
|
|
294
|
+
*/
|
|
295
|
+
get orders() {
|
|
296
|
+
var _a;
|
|
297
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
298
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
299
|
+
if (!this._orders) {
|
|
300
|
+
this._orders = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
301
|
+
sourceEntity: 'OrderModule:PICRequest',
|
|
302
|
+
targetEntity: 'OrderModule:Order',
|
|
303
|
+
targetModuleName: 'OrderModule',
|
|
304
|
+
targetEntityName: 'Order',
|
|
305
|
+
labels: ['PICRequest__Order'],
|
|
306
|
+
}, OrderRecord_1.OrderRecord);
|
|
307
|
+
}
|
|
308
|
+
return this._orders;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Access linked Note records
|
|
312
|
+
* @remarks Available labels: PICRequest__Note
|
|
313
|
+
* @throws Error if called on a new (unsaved) record
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* ```typescript
|
|
317
|
+
* // Get all linked Note records
|
|
318
|
+
* const items = await record.notes.list();
|
|
319
|
+
* const first = await record.notes.first();
|
|
320
|
+
*
|
|
321
|
+
* // Filter by label
|
|
322
|
+
* const specific = await record.notes.first({ label: 'PICRequest__Note' });
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
get notes() {
|
|
326
|
+
var _a;
|
|
327
|
+
if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
|
|
328
|
+
throw new Error('Cannot access links on a new (unsaved) record');
|
|
329
|
+
if (!this._notes) {
|
|
330
|
+
this._notes = new record_link_manager_1.RecordLinkManager(this._provider, this._record, {
|
|
331
|
+
sourceEntity: 'OrderModule:PICRequest',
|
|
332
|
+
targetEntity: 'SupportModule:Note',
|
|
333
|
+
targetModuleName: 'SupportModule',
|
|
334
|
+
targetEntityName: 'Note',
|
|
335
|
+
labels: ['PICRequest__Note'],
|
|
336
|
+
}, NoteRecord_1.NoteRecord);
|
|
337
|
+
}
|
|
338
|
+
return this._notes;
|
|
339
|
+
}
|
|
340
|
+
// ============================================
|
|
257
341
|
// LINK MANAGEMENT
|
|
258
342
|
// ============================================
|
|
259
343
|
/**
|
|
@@ -446,6 +530,13 @@ class PICRequestRecord {
|
|
|
446
530
|
}
|
|
447
531
|
}
|
|
448
532
|
exports.PICRequestRecord = PICRequestRecord;
|
|
533
|
+
// ============================================
|
|
534
|
+
// TYPED LINK ACCESSORS
|
|
535
|
+
// ============================================
|
|
536
|
+
/** Valid labels for Order associations */
|
|
537
|
+
PICRequestRecord.ordersLabels = ['PICRequest__Order'];
|
|
538
|
+
/** Valid labels for Note associations */
|
|
539
|
+
PICRequestRecord.notesLabels = ['PICRequest__Note'];
|
|
449
540
|
/** Type guard to check if an object is a PICRequestRecord */
|
|
450
541
|
function isPICRequestRecord(obj) {
|
|
451
542
|
return obj instanceof PICRequestRecord;
|