@pvh-afl/graphql 1.2.42 → 1.2.43
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/dist/serviceability/serviceability.service.d.ts +34 -1
- package/dist/serviceability/serviceability.service.d.ts.map +1 -1
- package/dist/serviceability/serviceability.service.js +79 -0
- package/dist/serviceability/serviceability.service.js.map +1 -1
- package/dist/serviceability/serviceability.types.d.ts +25 -0
- package/dist/serviceability/serviceability.types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IntegrationFactory } from '@pvh-afl/core';
|
|
2
|
-
import { ServiceabilityCheckInput, ServiceabilityResult } from './serviceability.types';
|
|
2
|
+
import { ServiceabilityCheckInput, ServiceabilityResult, CartServiceabilityResult } from './serviceability.types';
|
|
3
3
|
/**
|
|
4
4
|
* Serviceability Service
|
|
5
5
|
*
|
|
@@ -23,6 +23,39 @@ export declare class ServiceabilityService {
|
|
|
23
23
|
* Always fetches fresh data from OMS (no caching).
|
|
24
24
|
*/
|
|
25
25
|
checkServiceability(brand: string, input: ServiceabilityCheckInput): Promise<ServiceabilityResult[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Cart-level serviceability: collapse the per-SKU results into one answer for
|
|
28
|
+
* the whole cart. Shared by any brand/transport that needs a single verdict
|
|
29
|
+
* rather than the per-item array (e.g. the GoKwik cart-serviceability route).
|
|
30
|
+
*
|
|
31
|
+
* All-or-nothing: the cart is serviceable only if every requested item is, and
|
|
32
|
+
* a payment method counts only if EVERY item supports it. The delivery date is
|
|
33
|
+
* the latest of each item's earliest option ("each item by its fastest option,
|
|
34
|
+
* the cart by its slowest item").
|
|
35
|
+
*
|
|
36
|
+
* Propagates the same OMS errors as {@link checkServiceability} — an unknown or
|
|
37
|
+
* deactivated SKU makes Omuni reject the whole request, which surfaces here as
|
|
38
|
+
* OMS_API_FAILURE rather than a serviceable:false verdict.
|
|
39
|
+
*/
|
|
40
|
+
checkCartServiceability(brand: string, input: ServiceabilityCheckInput): Promise<CartServiceabilityResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Aggregate per-SKU results into a cart-level verdict (see
|
|
43
|
+
* {@link checkCartServiceability} for the rules).
|
|
44
|
+
*/
|
|
45
|
+
private aggregateCart;
|
|
46
|
+
/**
|
|
47
|
+
* Cart delivery date = latest (max) of each item's earliest (min) delivery date.
|
|
48
|
+
* Returns the original Omuni-formatted string, or undefined if no item carried a
|
|
49
|
+
* date.
|
|
50
|
+
*/
|
|
51
|
+
private rollUpEdd;
|
|
52
|
+
/**
|
|
53
|
+
* Parse Omuni's "DD-MM-YYYY HH:mm:ss" store-local timestamp into a comparable
|
|
54
|
+
* epoch value. Every value in a response shares the same zone, so the offset
|
|
55
|
+
* cancels out for min/max comparison and a local Date is sufficient. Returns
|
|
56
|
+
* null for missing or unparseable input.
|
|
57
|
+
*/
|
|
58
|
+
private parseOmuniDate;
|
|
26
59
|
/**
|
|
27
60
|
* Fetch serviceability data from OMS.
|
|
28
61
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceability.service.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"serviceability.service.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EAGzB,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBACa,qBAAqB;IAWpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAV/C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAY;gBAEtB,kBAAkB,EAAE,kBAAkB;IAEnE;;;OAGG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIlC;;;;;;;;;;;;;OAaG;IACG,uBAAuB,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,wBAAwB,CAAC;IAKpC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAyBjB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;YACW,YAAY;IA8C1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;0DACsD;IACtD,OAAO,CAAC,gBAAgB;IAQxB;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;CAazC"}
|
|
@@ -31,6 +31,85 @@ let ServiceabilityService = class ServiceabilityService {
|
|
|
31
31
|
async checkServiceability(brand, input) {
|
|
32
32
|
return this.fetchFromOms(brand, input);
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Cart-level serviceability: collapse the per-SKU results into one answer for
|
|
36
|
+
* the whole cart. Shared by any brand/transport that needs a single verdict
|
|
37
|
+
* rather than the per-item array (e.g. the GoKwik cart-serviceability route).
|
|
38
|
+
*
|
|
39
|
+
* All-or-nothing: the cart is serviceable only if every requested item is, and
|
|
40
|
+
* a payment method counts only if EVERY item supports it. The delivery date is
|
|
41
|
+
* the latest of each item's earliest option ("each item by its fastest option,
|
|
42
|
+
* the cart by its slowest item").
|
|
43
|
+
*
|
|
44
|
+
* Propagates the same OMS errors as {@link checkServiceability} — an unknown or
|
|
45
|
+
* deactivated SKU makes Omuni reject the whole request, which surfaces here as
|
|
46
|
+
* OMS_API_FAILURE rather than a serviceable:false verdict.
|
|
47
|
+
*/
|
|
48
|
+
async checkCartServiceability(brand, input) {
|
|
49
|
+
const results = await this.fetchFromOms(brand, input);
|
|
50
|
+
return this.aggregateCart(input.items.length, results);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Aggregate per-SKU results into a cart-level verdict (see
|
|
54
|
+
* {@link checkCartServiceability} for the rules).
|
|
55
|
+
*/
|
|
56
|
+
aggregateCart(requestedCount, results) {
|
|
57
|
+
const allServiceable = results.length === requestedCount &&
|
|
58
|
+
results.length > 0 &&
|
|
59
|
+
results.every((r) => r.serviceable);
|
|
60
|
+
if (!allServiceable) {
|
|
61
|
+
return { serviceable: false, codEnabled: false, prepaidEnabled: false };
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
serviceable: true,
|
|
65
|
+
codEnabled: results.every((r) => r.paymentMethods?.codEnabled === true),
|
|
66
|
+
prepaidEnabled: results.every((r) => r.paymentMethods?.prepaidEnabled === true),
|
|
67
|
+
expectedDeliveryDate: this.rollUpEdd(results),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Cart delivery date = latest (max) of each item's earliest (min) delivery date.
|
|
72
|
+
* Returns the original Omuni-formatted string, or undefined if no item carried a
|
|
73
|
+
* date.
|
|
74
|
+
*/
|
|
75
|
+
rollUpEdd(results) {
|
|
76
|
+
let cartEdd;
|
|
77
|
+
let cartEddTs = -Infinity;
|
|
78
|
+
for (const result of results) {
|
|
79
|
+
let itemEdd;
|
|
80
|
+
let itemEddTs = Infinity;
|
|
81
|
+
for (const option of result.deliveryOptions ?? []) {
|
|
82
|
+
const ts = this.parseOmuniDate(option.expectedDeliveryDate);
|
|
83
|
+
if (ts !== null && ts < itemEddTs) {
|
|
84
|
+
itemEddTs = ts;
|
|
85
|
+
itemEdd = option.expectedDeliveryDate;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (itemEdd !== undefined && itemEddTs > cartEddTs) {
|
|
89
|
+
cartEddTs = itemEddTs;
|
|
90
|
+
cartEdd = itemEdd;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return cartEdd;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Parse Omuni's "DD-MM-YYYY HH:mm:ss" store-local timestamp into a comparable
|
|
97
|
+
* epoch value. Every value in a response shares the same zone, so the offset
|
|
98
|
+
* cancels out for min/max comparison and a local Date is sufficient. Returns
|
|
99
|
+
* null for missing or unparseable input.
|
|
100
|
+
*/
|
|
101
|
+
parseOmuniDate(value) {
|
|
102
|
+
if (!value) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const [datePart, timePart = '00:00:00'] = value.trim().split(/\s+/);
|
|
106
|
+
const [d, m, y] = datePart.split('-').map(Number);
|
|
107
|
+
const [hh, mm, ss] = timePart.split(':').map(Number);
|
|
108
|
+
if ([d, m, y, hh, mm, ss].some((n) => Number.isNaN(n))) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return new Date(y, m - 1, d, hh, mm, ss).getTime();
|
|
112
|
+
}
|
|
34
113
|
/**
|
|
35
114
|
* Fetch serviceability data from OMS.
|
|
36
115
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceability.service.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAyE;AACzE,wCAMuB;
|
|
1
|
+
{"version":3,"file":"serviceability.service.js","sourceRoot":"","sources":["../../src/serviceability/serviceability.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAyE;AACzE,wCAMuB;AASvB;;;;;GAKG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAWH;IAV7B;;;;;;;OAOG;IACc,sBAAsB,GAAG,QAAQ,CAAC;IAEnD,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CACvB,KAAa,EACb,KAA+B;QAE/B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAa,EACb,KAA+B;QAE/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACK,aAAa,CACnB,cAAsB,EACtB,OAA+B;QAE/B,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,KAAK,cAAc;YACjC,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAEtC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,KAAK,IAAI,CAAC;YACvE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;YAC/E,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,OAA+B;QAC/C,IAAI,OAA2B,CAAC;QAChC,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC;QAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAA2B,CAAC;YAChC,IAAI,SAAS,GAAG,QAAQ,CAAC;YAEzB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;gBAClD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAC5D,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;oBAClC,SAAS,GAAG,EAAE,CAAC;oBACf,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;gBACnD,SAAS,GAAG,SAAS,CAAC;gBACtB,OAAO,GAAG,OAAO,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,KAAc;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,KAAa,EACb,KAA+B;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAe,KAAK,EAAE,KAAK,CAAC,CAAC;QAE3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,aAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,oCAA2B,CAAC;gBACpC,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,+CAA+C;aACzD,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,GAA+B;YAC1C,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC5B,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE;gBAClF,CAAC,CAAC,SAAS;YACb,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACnD,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,aAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;gBAC1C,KAAK;gBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC,CAAC;YACH,MAAM,IAAI,oCAA2B,CAAC;gBACpC,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,yCAAyC;aAC9E,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,WAAW,CACjB,KAA+B,EAC/B,QAAqC;QAErC,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACjD,CAAC;QAEF,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACnC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEtD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBACzD,OAAO;oBACL,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,WAAW,EAAE,KAAK;oBAClB,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;oBAC5D,eAAe,EAAE,EAAE;oBACnB,iBAAiB,EAAE,YAAY,EAAE,OAAO;iBACzC,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAqB,YAAY,CAAC,aAAa,CAAC,GAAG,CACtE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACT,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,iBAAiB,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;gBAChD,YAAY,EAAE;oBACZ,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;oBACvC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;iBAChC;gBACD,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,mBAAmB,EAAE,IAAI,CAAC,SAAS;gBACnC,oBAAoB,EAClB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC;aACpE,CAAC,CACH,CAAC;YAEF,4DAA4D;YAC5D,kEAAkE;YAClE,MAAM,cAAc,GAAG,IAAI,CAAC,gCAAgC,CAC1D,YAAY,CAAC,aAAa,CAC3B,CAAC;YAEF,OAAO;gBACL,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,WAAW,EAAE,IAAI;gBACjB,cAAc;gBACd,eAAe;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,oBAAoB,CAC1B,YAAyC;QAEzC,iFAAiF;QACjF,MAAM,GAAG,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAClF,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACjE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,IAAI,CAClB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAC9D,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEtE,OAAO,CACL,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,EAAE;YAChF,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IAED;0DACsD;IAC9C,gBAAgB;QACtB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1D,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,MAAM,CAAC,CAAC;QACf,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACrD,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACK,gCAAgC,CACtC,aAAwC;QAExC,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC5D,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;YAC3C,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;SACpC,CAAC;IACJ,CAAC;CAEF,CAAA;AA/RY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;6CAYsC,yBAAkB;GAXxD,qBAAqB,CA+RjC"}
|
|
@@ -45,4 +45,29 @@ export declare class ServiceabilityResult {
|
|
|
45
45
|
deliveryOptions?: DeliveryOption[];
|
|
46
46
|
unavailableReason?: string;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Cart-level serviceability answer, aggregated from the per-SKU
|
|
50
|
+
* {@link ServiceabilityResult} array.
|
|
51
|
+
*
|
|
52
|
+
* This is a transport- and partner-agnostic shape: a single yes/no for the whole
|
|
53
|
+
* cart plus the payment methods available for every item and one rolled-up
|
|
54
|
+
* delivery date. Brand REST adapters (e.g. the GoKwik cart-serviceability route)
|
|
55
|
+
* map this onto whatever field names the external caller expects. It is a plain
|
|
56
|
+
* DTO, not a GraphQL type — it is returned by the service, never exposed in the
|
|
57
|
+
* schema.
|
|
58
|
+
*/
|
|
59
|
+
export interface CartServiceabilityResult {
|
|
60
|
+
/** True only when every requested item is serviceable at the location. */
|
|
61
|
+
serviceable: boolean;
|
|
62
|
+
/** True only when COD is available for EVERY item (all-or-nothing). */
|
|
63
|
+
codEnabled: boolean;
|
|
64
|
+
/** True only when prepaid is available for EVERY item (all-or-nothing). */
|
|
65
|
+
prepaidEnabled: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Cart delivery date: the latest of each item's earliest delivery date, in
|
|
68
|
+
* Omuni's "DD-MM-YYYY HH:mm:ss" store-local format. Undefined when the cart is
|
|
69
|
+
* unserviceable or no item carried a delivery date.
|
|
70
|
+
*/
|
|
71
|
+
expectedDeliveryDate?: string;
|
|
72
|
+
}
|
|
48
73
|
//# sourceMappingURL=serviceability.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceability.types.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAMH,qBACa,uBAAuB;IAElC,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAG,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,gBAAgB;IAE3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEnC,OAAO,EAAG,MAAM,CAAC;IAMjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAM/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAKzB,KAAK,EAAG,uBAAuB,EAAE,CAAC;IAGlC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,qBACa,YAAY;IAEvB,QAAQ,EAAG,MAAM,CAAC;IAGlB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qBACa,cAAc;IAEzB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,YAAY,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBACa,yBAAyB;IAEpC,cAAc,EAAG,OAAO,CAAC;IAGzB,UAAU,EAAG,OAAO,CAAC;CACtB;AAED,qBACa,oBAAoB;IAE/B,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAG,OAAO,CAAC;IAKtB,cAAc,EAAG,yBAAyB,CAAC;IAM3C,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAOnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
1
|
+
{"version":3,"file":"serviceability.types.d.ts","sourceRoot":"","sources":["../../src/serviceability/serviceability.types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAMH,qBACa,uBAAuB;IAElC,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAG,MAAM,CAAC;IAGlB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,gBAAgB;IAE3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEnC,OAAO,EAAG,MAAM,CAAC;IAMjB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAM/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAKzB,KAAK,EAAG,uBAAuB,EAAE,CAAC;IAGlC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,qBACa,YAAY;IAEvB,QAAQ,EAAG,MAAM,CAAC;IAGlB,MAAM,EAAG,MAAM,CAAC;CACjB;AAED,qBACa,cAAc;IAEzB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAG,YAAY,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBACa,yBAAyB;IAEpC,cAAc,EAAG,OAAO,CAAC;IAGzB,UAAU,EAAG,OAAO,CAAC;CACtB;AAED,qBACa,oBAAoB;IAE/B,KAAK,EAAG,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAG,OAAO,CAAC;IAKtB,cAAc,EAAG,yBAAyB,CAAC;IAM3C,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAOnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pvh-afl/graphql",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.43",
|
|
4
4
|
"description": "AFL GraphQL - Shared GraphQL modules for multi-brand commerce platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@nestjs/common": "^10.0.0",
|
|
23
23
|
"@nestjs/core": "^10.0.0",
|
|
24
24
|
"@nestjs/graphql": "^12.0.0",
|
|
25
|
-
"@pvh-afl/core": "^1.2.
|
|
25
|
+
"@pvh-afl/core": "^1.2.32",
|
|
26
26
|
"graphql": "^16.0.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@nestjs/core": "^10.4.0",
|
|
33
33
|
"@nestjs/graphql": "^12.2.0",
|
|
34
34
|
"@nestjs/testing": "^10.4.0",
|
|
35
|
-
"@pvh-afl/core": "^1.2.
|
|
35
|
+
"@pvh-afl/core": "^1.2.32",
|
|
36
36
|
"@types/jest": "^29.5.0",
|
|
37
37
|
"graphql": "^16.9.0",
|
|
38
38
|
"graphql-type-json": "^0.3.2",
|