@d19n/youfibre-odin-sdk 2.0.347 → 2.0.349

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 CHANGED
@@ -392,7 +392,7 @@ This SDK includes **199** entities across **13** modules.
392
392
 
393
393
  ## Actions
394
394
 
395
- This SDK includes **905** actions.
395
+ This SDK includes **906** actions.
396
396
 
397
397
  ### Action Types
398
398
 
@@ -414,6 +414,7 @@ This SDK includes **905** actions.
414
414
  | `CancelOrderForRecontract` | STAGE_TRANSITION | k1.t-hEOJjsDb.OrderModule.Order.Transition.CancelOrderForRecontract |
415
415
  | `CancelOrderForRollback` | STAGE_TRANSITION | k1.t-hEOJjsDb.OrderModule.Order.Transition.CancelOrderForRollback |
416
416
  | `ChangeBillingDay` | UPDATE | k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeBillingDay |
417
+ | `ChangeServiceActivationDate` | UPDATE | k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate |
417
418
  | `ClearOrderDeactivateOnDate` | UPDATE | k1.t-hEOJjsDb.OrderModule.Order.Update.ClearOrderDeactivateOnDate |
418
419
  | `CreateInstallWorkOrderFlow` | UPDATE | k1.t-hEOJjsDb.OrderModule.Order.Flow.CreateInstallWorkOrderFlow |
419
420
  | `CreateRecontractOrder` | CREATE | k1.t-hEOJjsDb.OrderModule.Order.Create.CreateRecontractOrder |
@@ -0,0 +1,73 @@
1
+ /**
2
+ * ChangeServiceActivationDate Action DTO
3
+ *
4
+ * Change the date this START order's service is activated on. The date always moves Netomnia's activation date; today or earlier also activates the service now. Refused, with the reason, when Netomnia will not accept it.
5
+ *
6
+ * @module OrderModule
7
+ * @entity Order
8
+ * @actionKey ChangeServiceActivationDate
9
+ * @event k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate
10
+ *
11
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
12
+ */
13
+ import { OdinRecord, OdinRecordUpdateDto, OdinRecordUpdatedEvent } from '@d19n/odin-types/dist/core';
14
+ /**
15
+ * RabbitMQ message payload for ChangeServiceActivationDate updated events
16
+ *
17
+ * @event k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate
18
+ */
19
+ export interface ChangeServiceActivationDateMessage extends OdinRecordUpdatedEvent<ChangeServiceActivationDateDto, ChangeServiceActivationDateProperties> {
20
+ }
21
+ /**
22
+ * Properties for ChangeServiceActivationDate action
23
+ *
24
+ * @property Required fields: 1
25
+ * @property Optional fields: 0
26
+ */
27
+ export interface ChangeServiceActivationDateProperties {
28
+ /**
29
+ * Service activation date
30
+ *
31
+ * Used when restarting an existing service, allows the customer to specify what date is used for the RequestedCompletionDate on the supplier-side START order. Used for when a customer is technically able to start receiving service.
32
+ * @type {DATE}
33
+ * @required
34
+ */
35
+ RequestedActivationDate: string;
36
+ }
37
+ /**
38
+ * Change service activation date
39
+ *
40
+ * Change the date this START order's service is activated on. The date always moves Netomnia's activation date; today or earlier also activates the service now. Refused, with the reason, when Netomnia will not accept it.
41
+ *
42
+ * @actionType UPDATE - Updates an existing Order record
43
+ * @module OrderModule
44
+ * @entity Order
45
+ * @event k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate
46
+ * @permission schema.action.changeserviceactivationdate.trigger
47
+ * @benchmark This action is tracked for performance benchmarks
48
+ */
49
+ export declare class ChangeServiceActivationDateDto extends OdinRecordUpdateDto<ChangeServiceActivationDateProperties> {
50
+ /** Used by SDK generators to identify action type */
51
+ static readonly ACTION_TYPE = "UPDATE";
52
+ static readonly ACTION_KEY = "ChangeServiceActivationDate";
53
+ static readonly MODULE_NAME = "OrderModule";
54
+ static readonly ENTITIES: string[];
55
+ static readonly EVENT_NAME = "k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate";
56
+ static readonly PERMISSION = "schema.action.changeserviceactivationdate.trigger";
57
+ /** Step metadata - entity this action targets */
58
+ static readonly STEP_ENTITY = "OrderModule:Order";
59
+ static readonly STEP_SCHEMA_ID = "8ebd71fd-fedb-40fe-8d4e-83ef92d5a98b";
60
+ static readonly STEP_SCHEMA_ACTION_ID = "93fa4388-ddc9-46a0-8c93-a3deb7d6f2c0";
61
+ static readonly AUTO_LINK_PARENT = false;
62
+ readonly actionName: string;
63
+ readonly schemaActionId: string;
64
+ readonly entity: string;
65
+ constructor(record: OdinRecord<any> | {
66
+ id: string;
67
+ entity: string;
68
+ type?: string;
69
+ }, properties: ChangeServiceActivationDateProperties, options?: {
70
+ journeyId?: string;
71
+ stageKey?: string;
72
+ });
73
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * ChangeServiceActivationDate Action DTO
4
+ *
5
+ * Change the date this START order's service is activated on. The date always moves Netomnia's activation date; today or earlier also activates the service now. Refused, with the reason, when Netomnia will not accept it.
6
+ *
7
+ * @module OrderModule
8
+ * @entity Order
9
+ * @actionKey ChangeServiceActivationDate
10
+ * @event k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate
11
+ *
12
+ * AUTO-GENERATED - DO NOT EDIT DIRECTLY
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ChangeServiceActivationDateDto = void 0;
16
+ const core_1 = require("@d19n/odin-types/dist/core");
17
+ /**
18
+ * Change service activation date
19
+ *
20
+ * Change the date this START order's service is activated on. The date always moves Netomnia's activation date; today or earlier also activates the service now. Refused, with the reason, when Netomnia will not accept it.
21
+ *
22
+ * @actionType UPDATE - Updates an existing Order record
23
+ * @module OrderModule
24
+ * @entity Order
25
+ * @event k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate
26
+ * @permission schema.action.changeserviceactivationdate.trigger
27
+ * @benchmark This action is tracked for performance benchmarks
28
+ */
29
+ class ChangeServiceActivationDateDto extends core_1.OdinRecordUpdateDto {
30
+ constructor(record, properties, options) {
31
+ super({
32
+ id: record.id,
33
+ entity: record.entity,
34
+ type: record.type,
35
+ properties,
36
+ journeyId: options === null || options === void 0 ? void 0 : options.journeyId,
37
+ stageKey: options === null || options === void 0 ? void 0 : options.stageKey,
38
+ });
39
+ this.actionName = 'ChangeServiceActivationDate';
40
+ this.schemaActionId = '93fa4388-ddc9-46a0-8c93-a3deb7d6f2c0';
41
+ this.entity = 'OrderModule:Order';
42
+ }
43
+ }
44
+ exports.ChangeServiceActivationDateDto = ChangeServiceActivationDateDto;
45
+ /** Used by SDK generators to identify action type */
46
+ ChangeServiceActivationDateDto.ACTION_TYPE = 'UPDATE';
47
+ ChangeServiceActivationDateDto.ACTION_KEY = 'ChangeServiceActivationDate';
48
+ ChangeServiceActivationDateDto.MODULE_NAME = 'OrderModule';
49
+ ChangeServiceActivationDateDto.ENTITIES = ['Order'];
50
+ ChangeServiceActivationDateDto.EVENT_NAME = 'k1.t-hEOJjsDb.OrderModule.Order.Update.ChangeServiceActivationDate';
51
+ ChangeServiceActivationDateDto.PERMISSION = 'schema.action.changeserviceactivationdate.trigger';
52
+ /** Step metadata - entity this action targets */
53
+ ChangeServiceActivationDateDto.STEP_ENTITY = 'OrderModule:Order';
54
+ ChangeServiceActivationDateDto.STEP_SCHEMA_ID = '8ebd71fd-fedb-40fe-8d4e-83ef92d5a98b';
55
+ ChangeServiceActivationDateDto.STEP_SCHEMA_ACTION_ID = '93fa4388-ddc9-46a0-8c93-a3deb7d6f2c0';
56
+ ChangeServiceActivationDateDto.AUTO_LINK_PARENT = false;
@@ -352,6 +352,7 @@ export declare enum CaseProblem {
352
352
  * - `FACEBOOK_COMMENT` - Facebook comment
353
353
  * - `FACEBOOK_MESSENGER` - Facebook Messenger
354
354
  * - `IN_APP_CHAT` - In-App Chat
355
+ * - `INSTAGRAM_COMMENT` - Instagram comment
355
356
  * - `INSTAGRAM_DM` - Instagram DM
356
357
  * - `SMS`
357
358
  * - `TLOS_APP` - TLOS App
@@ -359,8 +360,7 @@ export declare enum CaseProblem {
359
360
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
360
361
  * - `TWITTER_X_DM` - Twitter/X DM
361
362
  * - `TWITTER_X_MENTION` - Twitter/X Mention
362
- * - `WEB_CHAT` - Web chat
363
- * - ... and 2 more
363
+ * - ... and 3 more
364
364
  */
365
365
  export declare enum CaseChannel {
366
366
  CALL = "CALL",
@@ -370,6 +370,7 @@ export declare enum CaseChannel {
370
370
  FACEBOOK_COMMENT = "FACEBOOK_COMMENT",
371
371
  FACEBOOK_MESSENGER = "FACEBOOK_MESSENGER",
372
372
  IN_APP_CHAT = "IN_APP_CHAT",
373
+ INSTAGRAM_COMMENT = "INSTAGRAM_COMMENT",
373
374
  INSTAGRAM_DM = "INSTAGRAM_DM",
374
375
  SMS = "SMS",
375
376
  TLOS_APP = "TLOS_APP",
@@ -343,6 +343,7 @@ var CaseProblem;
343
343
  * - `FACEBOOK_COMMENT` - Facebook comment
344
344
  * - `FACEBOOK_MESSENGER` - Facebook Messenger
345
345
  * - `IN_APP_CHAT` - In-App Chat
346
+ * - `INSTAGRAM_COMMENT` - Instagram comment
346
347
  * - `INSTAGRAM_DM` - Instagram DM
347
348
  * - `SMS`
348
349
  * - `TLOS_APP` - TLOS App
@@ -350,8 +351,7 @@ var CaseProblem;
350
351
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot review
351
352
  * - `TWITTER_X_DM` - Twitter/X DM
352
353
  * - `TWITTER_X_MENTION` - Twitter/X Mention
353
- * - `WEB_CHAT` - Web chat
354
- * - ... and 2 more
354
+ * - ... and 3 more
355
355
  */
356
356
  var CaseChannel;
357
357
  (function (CaseChannel) {
@@ -362,6 +362,7 @@ var CaseChannel;
362
362
  CaseChannel["FACEBOOK_COMMENT"] = "FACEBOOK_COMMENT";
363
363
  CaseChannel["FACEBOOK_MESSENGER"] = "FACEBOOK_MESSENGER";
364
364
  CaseChannel["IN_APP_CHAT"] = "IN_APP_CHAT";
365
+ CaseChannel["INSTAGRAM_COMMENT"] = "INSTAGRAM_COMMENT";
365
366
  CaseChannel["INSTAGRAM_DM"] = "INSTAGRAM_DM";
366
367
  CaseChannel["SMS"] = "SMS";
367
368
  CaseChannel["TLOS_APP"] = "TLOS_APP";
@@ -88,6 +88,7 @@ export declare enum DefaultContractBuyOutStageKeys {
88
88
  * @remarks Available options:
89
89
  * - `BT`
90
90
  * - `EE`
91
+ * - `GIGACLEAR` - Gigaclear
91
92
  * - `HOME_TELECOM` - Home Telecom
92
93
  * - `NOWTV_BROADBAND` - NowTV Broadband
93
94
  * - `OTHER` - Other
@@ -102,6 +103,7 @@ export declare enum DefaultContractBuyOutStageKeys {
102
103
  export declare enum ContractBuyOutPreviousProvider {
103
104
  BT = "BT",
104
105
  EE = "EE",
106
+ GIGACLEAR = "GIGACLEAR",
105
107
  HOME_TELECOM = "HOME_TELECOM",
106
108
  NOW_TV_BROADBAND = "NOWTV_BROADBAND",
107
109
  OTHER = "OTHER",
@@ -85,6 +85,7 @@ var DefaultContractBuyOutStageKeys;
85
85
  * @remarks Available options:
86
86
  * - `BT`
87
87
  * - `EE`
88
+ * - `GIGACLEAR` - Gigaclear
88
89
  * - `HOME_TELECOM` - Home Telecom
89
90
  * - `NOWTV_BROADBAND` - NowTV Broadband
90
91
  * - `OTHER` - Other
@@ -100,6 +101,7 @@ var ContractBuyOutPreviousProvider;
100
101
  (function (ContractBuyOutPreviousProvider) {
101
102
  ContractBuyOutPreviousProvider["BT"] = "BT";
102
103
  ContractBuyOutPreviousProvider["EE"] = "EE";
104
+ ContractBuyOutPreviousProvider["GIGACLEAR"] = "GIGACLEAR";
103
105
  ContractBuyOutPreviousProvider["HOME_TELECOM"] = "HOME_TELECOM";
104
106
  ContractBuyOutPreviousProvider["NOW_TV_BROADBAND"] = "NOWTV_BROADBAND";
105
107
  ContractBuyOutPreviousProvider["OTHER"] = "OTHER";
@@ -32,6 +32,7 @@ export declare enum ConversationEntityTypes {
32
32
  * - `FACEBOOK_COMMENT` - Facebook comment
33
33
  * - `FACEBOOK_MESSENGER` - Facebook Messenger
34
34
  * - `IN_APP_CHAT` - In-App Chat
35
+ * - `INSTAGRAM_COMMENT` - Instagram comment
35
36
  * - `INSTAGRAM_DM` - Instagram DM
36
37
  * - `SMS`
37
38
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot Service Review
@@ -44,6 +45,7 @@ export declare enum ConversationChannel {
44
45
  FACEBOOK_COMMENT = "FACEBOOK_COMMENT",
45
46
  FACEBOOK_MESSENGER = "FACEBOOK_MESSENGER",
46
47
  IN_APP_CHAT = "IN_APP_CHAT",
48
+ INSTAGRAM_COMMENT = "INSTAGRAM_COMMENT",
47
49
  INSTAGRAM_DM = "INSTAGRAM_DM",
48
50
  SMS = "SMS",
49
51
  TRUSTPILOT_SERVICE_REVIEW = "TRUSTPILOT_SERVICE_REVIEW",
@@ -32,6 +32,7 @@ var ConversationEntityTypes;
32
32
  * - `FACEBOOK_COMMENT` - Facebook comment
33
33
  * - `FACEBOOK_MESSENGER` - Facebook Messenger
34
34
  * - `IN_APP_CHAT` - In-App Chat
35
+ * - `INSTAGRAM_COMMENT` - Instagram comment
35
36
  * - `INSTAGRAM_DM` - Instagram DM
36
37
  * - `SMS`
37
38
  * - `TRUSTPILOT_SERVICE_REVIEW` - Trustpilot Service Review
@@ -45,6 +46,7 @@ var ConversationChannel;
45
46
  ConversationChannel["FACEBOOK_COMMENT"] = "FACEBOOK_COMMENT";
46
47
  ConversationChannel["FACEBOOK_MESSENGER"] = "FACEBOOK_MESSENGER";
47
48
  ConversationChannel["IN_APP_CHAT"] = "IN_APP_CHAT";
49
+ ConversationChannel["INSTAGRAM_COMMENT"] = "INSTAGRAM_COMMENT";
48
50
  ConversationChannel["INSTAGRAM_DM"] = "INSTAGRAM_DM";
49
51
  ConversationChannel["SMS"] = "SMS";
50
52
  ConversationChannel["TRUSTPILOT_SERVICE_REVIEW"] = "TRUSTPILOT_SERVICE_REVIEW";
@@ -66,7 +66,9 @@ export declare enum MessagePropertyKeys {
66
66
  /** Who sent the message (Communications - Message) */
67
67
  From = "From",
68
68
  /** Has the customer read this message in the app? Set to false when an agent or system message is written to an in-app chat, and to true when the app reports it read (PORTAPP-3306). Messages written before this column existed have no value, and no value counts as read — only an explicit false raises the unread badge. */
69
- IsReadByCustomer = "IsReadByCustomer"
69
+ IsReadByCustomer = "IsReadByCustomer",
70
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}] */
71
+ Reactions = "Reactions"
70
72
  }
71
73
  /**
72
74
  * Properties for Message records
@@ -126,6 +128,12 @@ export interface MessageProperties {
126
128
  * @default
127
129
  */
128
130
  IsReadByCustomer: boolean;
131
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}]
132
+ *
133
+ * @type {JSON}
134
+ * @default
135
+ */
136
+ Reactions: string;
129
137
  }
130
138
  /**
131
139
  * Properties for CLOSE Message records
@@ -185,6 +193,12 @@ export interface CloseMessageProperties {
185
193
  * @default
186
194
  */
187
195
  IsReadByCustomer: boolean;
196
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}]
197
+ *
198
+ * @type {JSON}
199
+ * @default
200
+ */
201
+ Reactions: string;
188
202
  }
189
203
  /**
190
204
  * Properties for EVENT Message records
@@ -244,6 +258,12 @@ export interface EventMessageProperties {
244
258
  * @default
245
259
  */
246
260
  IsReadByCustomer: boolean;
261
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}]
262
+ *
263
+ * @type {JSON}
264
+ * @default
265
+ */
266
+ Reactions: string;
247
267
  }
248
268
  /**
249
269
  * Properties for NUDGE Message records
@@ -303,6 +323,12 @@ export interface NudgeMessageProperties {
303
323
  * @default
304
324
  */
305
325
  IsReadByCustomer: boolean;
326
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}]
327
+ *
328
+ * @type {JSON}
329
+ * @default
330
+ */
331
+ Reactions: string;
306
332
  }
307
333
  /**
308
334
  * Message entity from NotificationModule
@@ -70,6 +70,8 @@ var MessagePropertyKeys;
70
70
  MessagePropertyKeys["From"] = "From";
71
71
  /** Has the customer read this message in the app? Set to false when an agent or system message is written to an in-app chat, and to true when the app reports it read (PORTAPP-3306). Messages written before this column existed have no value, and no value counts as read — only an explicit false raises the unread badge. */
72
72
  MessagePropertyKeys["IsReadByCustomer"] = "IsReadByCustomer";
73
+ /** List of reactions on this message/comment: [{reactorId, emoji, reactionType, reactedAt}] */
74
+ MessagePropertyKeys["Reactions"] = "Reactions";
73
75
  })(MessagePropertyKeys = exports.MessagePropertyKeys || (exports.MessagePropertyKeys = {}));
74
76
  /**
75
77
  * Message entity from NotificationModule
@@ -25,6 +25,7 @@ import { ActivateOrderProperties } from '../actions-v2/ActivateOrderDto';
25
25
  import { CreateChurnRequestProperties } from '../actions-v2/CancelActiveOrderDto';
26
26
  import { CreatePicRequestProperties } from '../actions-v2/CancelOrderPreInstallDto';
27
27
  import { ChangeBillingDayProperties } from '../actions-v2/ChangeBillingDayDto';
28
+ import { ChangeServiceActivationDateProperties } from '../actions-v2/ChangeServiceActivationDateDto';
28
29
  import { ClearOrderDeactivateOnDateProperties } from '../actions-v2/ClearOrderDeactivateOnDateDto';
29
30
  import { CreateCityfibreOrderKciCommittedProperties } from '../actions-v2/CreateCityfibreKciDto';
30
31
  import { CreateCityfibreOrderKciCompletedProperties } from '../actions-v2/CreateCityfibreKciDto';
@@ -1614,6 +1615,32 @@ export declare class OrderRecord<TProps = OrderProperties> {
1614
1615
  journeyId?: string;
1615
1616
  stageKey?: string;
1616
1617
  }): ActionBuilder;
1618
+ /**
1619
+ * ChangeServiceActivationDate
1620
+ *
1621
+ * Updates this Order record with the specified properties.
1622
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
1623
+ *
1624
+ * @param properties - Required properties for this action
1625
+ * @param options - Optional settings
1626
+ * @param options.journeyId - Associate with a journey
1627
+ * @param options.stageKey - Transition to pipeline stage
1628
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
1629
+ * @throws Error if called on a new (unsaved) record
1630
+ *
1631
+ * @example
1632
+ * ```typescript
1633
+ * const record = await odinClient.orders.get(id);
1634
+ * await record.changeServiceActivationDate({ ... }).execute();
1635
+ *
1636
+ * // Dry run (for debugging)
1637
+ * const payload = record.changeServiceActivationDate({ ... }).dryRun();
1638
+ * ```
1639
+ */
1640
+ changeServiceActivationDate(properties: ChangeServiceActivationDateProperties, options?: {
1641
+ journeyId?: string;
1642
+ stageKey?: string;
1643
+ }): ActionBuilder;
1617
1644
  /**
1618
1645
  * ClearOrderDeactivateOnDate
1619
1646
  *
@@ -2460,6 +2460,35 @@ class OrderRecord {
2460
2460
  const payload = Object.assign({ id: this._record.id, entity: this._record.entity, type: this._record.type, actionName: 'ChangeBillingDay', properties, associations: this._pendingLinks.length > 0 ? this._pendingLinks : undefined }, options);
2461
2461
  return new ActionBuilder(this._provider, 'OrderModule', 'Order', payload, () => { this._pendingLinks = []; });
2462
2462
  }
2463
+ /**
2464
+ * ChangeServiceActivationDate
2465
+ *
2466
+ * Updates this Order record with the specified properties.
2467
+ * Returns an ActionBuilder - call .execute() to update or .dryRun() for debugging.
2468
+ *
2469
+ * @param properties - Required properties for this action
2470
+ * @param options - Optional settings
2471
+ * @param options.journeyId - Associate with a journey
2472
+ * @param options.stageKey - Transition to pipeline stage
2473
+ * @returns ActionBuilder - call .execute() to update or .dryRun() for payload
2474
+ * @throws Error if called on a new (unsaved) record
2475
+ *
2476
+ * @example
2477
+ * ```typescript
2478
+ * const record = await odinClient.orders.get(id);
2479
+ * await record.changeServiceActivationDate({ ... }).execute();
2480
+ *
2481
+ * // Dry run (for debugging)
2482
+ * const payload = record.changeServiceActivationDate({ ... }).dryRun();
2483
+ * ```
2484
+ */
2485
+ changeServiceActivationDate(properties, options) {
2486
+ var _a;
2487
+ if (!((_a = this._record) === null || _a === void 0 ? void 0 : _a.id))
2488
+ throw new Error('changeServiceActivationDate requires an existing record. Use accessor.get() first.');
2489
+ const payload = Object.assign({ id: this._record.id, entity: this._record.entity, type: this._record.type, actionName: 'ChangeServiceActivationDate', properties, associations: this._pendingLinks.length > 0 ? this._pendingLinks : undefined }, options);
2490
+ return new ActionBuilder(this._provider, 'OrderModule', 'Order', payload, () => { this._pendingLinks = []; });
2491
+ }
2463
2492
  /**
2464
2493
  * ClearOrderDeactivateOnDate
2465
2494
  *
@@ -30,7 +30,7 @@
30
30
  * full types are available).
31
31
  */
32
32
  import type { VMO2OrderNotification, VMO2SMRNotification } from './types/vmo2';
33
- import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeKciDto, FibreCafeServiceProblemCancellationReasonCode } from './types/fibrecafe';
33
+ import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeStartOrderActivateAccept202, FibreCafeOrderAmendAccept202, FibreCafeKciDto, FibreCafeServiceProblemCancellationReasonCode } from './types/fibrecafe';
34
34
  /**
35
35
  * Reasons a cancellation request can be made (NET wire-level enum value
36
36
  * passed through to the FibreCafe gateway).
@@ -258,6 +258,18 @@ export interface WholesaleProvider<TPrincipal = unknown> {
258
258
  cancelOrder(yfOrderId: string, reasonCode: CancellationReasonCode): Promise<FibreCafeOrderCreate202>;
259
259
  /** Active-customer cease (post-Active churn / OTS-losing). */
260
260
  ceaseOrder(yfOrderId: string, serviceId: string): Promise<FibreCafeOrderCreate202>;
261
+ /**
262
+ * ORD-326: ask the supplier to activate an in-flight START order now, ahead
263
+ * of its requested date. Accepted synchronously; the COMPLETED (or REAPPOINT)
264
+ * KCI follows.
265
+ */
266
+ activateStartOrder(yfOrderId: string): Promise<FibreCafeStartOrderActivateAccept202>;
267
+ /**
268
+ * ORD-335: move an in-flight provide order's requested completion date — the
269
+ * day the supplier activates a START. Sent as an order amendment; the
270
+ * AMENDED KCI confirms it.
271
+ */
272
+ amendRequestedCompletionDate(yfOrderId: string, requestedCompletionDate: string): Promise<FibreCafeOrderAmendAccept202>;
261
273
  /**
262
274
  * Tenant-initiated cancel of an inflight SERVICE WO. Structurally
263
275
  * parallel to `rescheduleServiceWorkOrder` — same flat-primitive args,
@@ -29,7 +29,7 @@
29
29
  */
30
30
  import type { WholesaleProvider, CreateOrderOptions, CancellationReasonCode, CancelServiceWorkOrderArgs, FindOrderByExternalRefArgs, FindOrderByExternalRefResult, ReserveAppointmentArgs, ListAppointmentsArgs, ScheduleServiceWorkOrderArgs, RescheduleServiceWorkOrderArgs, AmendAppointmentArgs, RequestTenantReappointmentArgs, SyncWorkOrderToSupplierArgs, UpdateOrderExternalRefArgs } from '../interface';
31
31
  import type { VMO2OrderNotification, VMO2SMRNotification } from '../types/vmo2';
32
- import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeKciDto } from '../types/fibrecafe';
32
+ import type { FibreCafeServiceAvailability200, FibreCafeAvailableAppointments200, FibreCafeReserveAppointment201, FibreCafeScheduleServiceWorkOrder201, FibreCafeRescheduleServiceWorkOrder200, FibreCafeOrderCreate202, FibreCafeOrderAmendAccept202, FibreCafeStartOrderActivateAccept202, FibreCafeKciDto } from '../types/fibrecafe';
33
33
  /**
34
34
  * Function-bag of dependencies the NetomniaProvider delegates to.
35
35
  *
@@ -61,6 +61,8 @@ export interface NetomniaProviderDeps<TPrincipal = unknown, TKci = FibreCafeKciD
61
61
  amendOrder: (principal: TPrincipal, yfOrderId: string) => Promise<FibreCafeOrderCreate202 | null>;
62
62
  cancelOrder: (yfOrderId: string, reasonCode: CancellationReasonCode) => Promise<FibreCafeOrderCreate202>;
63
63
  ceaseOrder: (yfOrderId: string, serviceId: string) => Promise<FibreCafeOrderCreate202>;
64
+ activateStartOrder: (yfOrderId: string) => Promise<FibreCafeStartOrderActivateAccept202>;
65
+ amendRequestedCompletionDate: (yfOrderId: string, requestedCompletionDate: string) => Promise<FibreCafeOrderAmendAccept202>;
64
66
  cancelServiceWorkOrder: (args: CancelServiceWorkOrderArgs) => Promise<FibreCafeRescheduleServiceWorkOrder200>;
65
67
  /**
66
68
  * Required, deliberately. Wiring it is what makes the supplier-order
@@ -91,6 +93,8 @@ export declare class NetomniaProvider<TPrincipal = unknown> implements Wholesale
91
93
  amendOrder(principal: TPrincipal, yfOrderId: string): Promise<FibreCafeOrderCreate202>;
92
94
  cancelOrder(yfOrderId: string, reasonCode: CancellationReasonCode): Promise<FibreCafeOrderCreate202>;
93
95
  ceaseOrder(yfOrderId: string, serviceId: string): Promise<FibreCafeOrderCreate202>;
96
+ activateStartOrder(yfOrderId: string): Promise<FibreCafeStartOrderActivateAccept202>;
97
+ amendRequestedCompletionDate(yfOrderId: string, requestedCompletionDate: string): Promise<FibreCafeOrderAmendAccept202>;
94
98
  cancelServiceWorkOrder(args: CancelServiceWorkOrderArgs): Promise<FibreCafeRescheduleServiceWorkOrder200>;
95
99
  findOrderByExternalRef(args: FindOrderByExternalRefArgs): Promise<FindOrderByExternalRefResult>;
96
100
  receiveKci(principal: TPrincipal, dto: FibreCafeKciDto): Promise<void>;
@@ -50,6 +50,12 @@ class NetomniaProvider {
50
50
  ceaseOrder(yfOrderId, serviceId) {
51
51
  return this.deps.ceaseOrder(yfOrderId, serviceId);
52
52
  }
53
+ activateStartOrder(yfOrderId) {
54
+ return this.deps.activateStartOrder(yfOrderId);
55
+ }
56
+ amendRequestedCompletionDate(yfOrderId, requestedCompletionDate) {
57
+ return this.deps.amendRequestedCompletionDate(yfOrderId, requestedCompletionDate);
58
+ }
53
59
  cancelServiceWorkOrder(args) {
54
60
  return this.deps.cancelServiceWorkOrder(args);
55
61
  }
@@ -72,6 +72,8 @@ function buildDeps() {
72
72
  amendOrder: {},
73
73
  cancelOrder: {},
74
74
  ceaseOrder: {},
75
+ activateStartOrder: { id: 'net-order-1', externalRef: 'ORD-1', recordNumber: 'OR1' },
76
+ amendRequestedCompletionDate: {},
75
77
  cancelServiceWorkOrder: { workOrderId: 'WO-CANC-1', appointmentId: '' },
76
78
  findOrderByExternalRef: { found: true, supplierOrderId: 'NET-ORD-1', supplierOrderRef: 'ORD123' },
77
79
  };
@@ -124,6 +126,14 @@ function buildDeps() {
124
126
  log.push({ method: 'ceaseOrder', args: [yfOrderId, serviceId] });
125
127
  return Promise.resolve(stubs.ceaseOrder);
126
128
  },
129
+ activateStartOrder: (yfOrderId) => {
130
+ log.push({ method: 'activateStartOrder', args: [yfOrderId] });
131
+ return Promise.resolve(stubs.activateStartOrder);
132
+ },
133
+ amendRequestedCompletionDate: (yfOrderId, requestedCompletionDate) => {
134
+ log.push({ method: 'amendRequestedCompletionDate', args: [yfOrderId, requestedCompletionDate] });
135
+ return Promise.resolve(stubs.amendRequestedCompletionDate);
136
+ },
127
137
  cancelServiceWorkOrder: (args) => {
128
138
  log.push({ method: 'cancelServiceWorkOrder', args: [args] });
129
139
  return Promise.resolve(stubs.cancelServiceWorkOrder);
@@ -296,6 +306,26 @@ function run() {
296
306
  assert('orderId forwarded', log[0].args[0] === 'ORD-1');
297
307
  assert('reasonCode forwarded', log[0].args[1] === 'CUSTOMER_CHANGED_MIND');
298
308
  }
309
+ console.log('Test: activateStartOrder delegates to deps and returns the accept body');
310
+ {
311
+ const { deps, log } = buildDeps();
312
+ const p = new netomnia_provider_1.NetomniaProvider(deps);
313
+ const res = yield p.activateStartOrder('ORD-1');
314
+ assert('called once', log.length === 1);
315
+ assert('correct method', log[0].method === 'activateStartOrder');
316
+ assert('orderId forwarded', log[0].args[0] === 'ORD-1');
317
+ assert('accept body returned', res.id === 'net-order-1' && res.externalRef === 'ORD-1');
318
+ }
319
+ console.log('Test: amendRequestedCompletionDate delegates to deps');
320
+ {
321
+ const { deps, log } = buildDeps();
322
+ const p = new netomnia_provider_1.NetomniaProvider(deps);
323
+ yield p.amendRequestedCompletionDate('ORD-1', '2026-10-05');
324
+ assert('called once', log.length === 1);
325
+ assert('correct method', log[0].method === 'amendRequestedCompletionDate');
326
+ assert('orderId forwarded', log[0].args[0] === 'ORD-1');
327
+ assert('date forwarded', log[0].args[1] === '2026-10-05');
328
+ }
299
329
  console.log('Test: ceaseOrder delegates to deps');
300
330
  {
301
331
  const { deps, log } = buildDeps();
@@ -344,6 +344,17 @@ export declare type FibreCafeOrderCreateDto = FibreCafeProvideServiceOrderDto |
344
344
  /** 202 — order accepted; will be acknowledged via KCI. Empty body. */
345
345
  export interface FibreCafeOrderCreate202 {
346
346
  }
347
+ /**
348
+ * ORD-327: accept body of `POST service-orders/:externalRef/activate`. The
349
+ * outcome arrives later as a KCI — COMPLETED, or REAPPOINT (ACTIVATION_FAILED).
350
+ */
351
+ export interface FibreCafeStartOrderActivateAccept202 {
352
+ /** Supplier order id. */
353
+ id: string;
354
+ /** Tenant order id — the YF Order id. */
355
+ externalRef: string;
356
+ recordNumber?: string;
357
+ }
347
358
  export interface FibreCafeServiceOrderCancellationDto {
348
359
  /** Caller-generated cancellation request id. */
349
360
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d19n/youfibre-odin-sdk",
3
- "version": "2.0.347",
3
+ "version": "2.0.349",
4
4
  "description": "",
5
5
  "author": "@d19n",
6
6
  "license": "UNLICENSED",