@unchainedshop/core-quotations 3.0.0-rc4 → 3.0.0-rc6

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.
Files changed (53) hide show
  1. package/package.json +4 -4
  2. package/lib/db/QuotationStatus.d.ts +0 -8
  3. package/lib/db/QuotationStatus.d.ts.map +0 -1
  4. package/lib/db/QuotationStatus.js +0 -9
  5. package/lib/db/QuotationStatus.js.map +0 -1
  6. package/lib/director/QuotationAdapter.d.ts +0 -3
  7. package/lib/director/QuotationAdapter.d.ts.map +0 -1
  8. package/lib/director/QuotationAdapter.js +0 -40
  9. package/lib/director/QuotationAdapter.js.map +0 -1
  10. package/lib/director/QuotationDirector.d.ts +0 -3
  11. package/lib/director/QuotationDirector.d.ts.map +0 -1
  12. package/lib/director/QuotationDirector.js +0 -89
  13. package/lib/director/QuotationDirector.js.map +0 -1
  14. package/lib/director/QuotationError.d.ts +0 -7
  15. package/lib/director/QuotationError.d.ts.map +0 -1
  16. package/lib/director/QuotationError.js +0 -8
  17. package/lib/director/QuotationError.js.map +0 -1
  18. package/lib/module/configureQuotationsModule_BACKUP_56551.d.ts +0 -52
  19. package/lib/module/configureQuotationsModule_BACKUP_56551.d.ts.map +0 -1
  20. package/lib/module/configureQuotationsModule_BACKUP_56551.js +0 -152
  21. package/lib/module/configureQuotationsModule_BACKUP_56551.js.map +0 -1
  22. package/lib/module/configureQuotationsModule_BASE_56551.d.ts +0 -65
  23. package/lib/module/configureQuotationsModule_BASE_56551.d.ts.map +0 -1
  24. package/lib/module/configureQuotationsModule_BASE_56551.js +0 -259
  25. package/lib/module/configureQuotationsModule_BASE_56551.js.map +0 -1
  26. package/lib/module/configureQuotationsModule_LOCAL_56551.d.ts +0 -51
  27. package/lib/module/configureQuotationsModule_LOCAL_56551.d.ts.map +0 -1
  28. package/lib/module/configureQuotationsModule_LOCAL_56551.js +0 -145
  29. package/lib/module/configureQuotationsModule_LOCAL_56551.js.map +0 -1
  30. package/lib/module/configureQuotationsModule_REMOTE_56551.d.ts +0 -66
  31. package/lib/module/configureQuotationsModule_REMOTE_56551.d.ts.map +0 -1
  32. package/lib/module/configureQuotationsModule_REMOTE_56551.js +0 -266
  33. package/lib/module/configureQuotationsModule_REMOTE_56551.js.map +0 -1
  34. package/lib/quotations-index_BACKUP_56874.d.ts +0 -4
  35. package/lib/quotations-index_BACKUP_56874.d.ts.map +0 -1
  36. package/lib/quotations-index_BACKUP_56874.js +0 -4
  37. package/lib/quotations-index_BACKUP_56874.js.map +0 -1
  38. package/lib/quotations-index_BASE_56874.d.ts +0 -8
  39. package/lib/quotations-index_BASE_56874.d.ts.map +0 -1
  40. package/lib/quotations-index_BASE_56874.js +0 -8
  41. package/lib/quotations-index_BASE_56874.js.map +0 -1
  42. package/lib/quotations-index_LOCAL_56874.d.ts +0 -4
  43. package/lib/quotations-index_LOCAL_56874.d.ts.map +0 -1
  44. package/lib/quotations-index_LOCAL_56874.js +0 -4
  45. package/lib/quotations-index_LOCAL_56874.js.map +0 -1
  46. package/lib/quotations-index_REMOTE_56874.d.ts +0 -9
  47. package/lib/quotations-index_REMOTE_56874.d.ts.map +0 -1
  48. package/lib/quotations-index_REMOTE_56874.js +0 -9
  49. package/lib/quotations-index_REMOTE_56874.js.map +0 -1
  50. package/lib/types.d.ts +0 -68
  51. package/lib/types.d.ts.map +0 -1
  52. package/lib/types.js +0 -16
  53. package/lib/types.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-quotations",
3
- "version": "3.0.0-rc4",
3
+ "version": "3.0.0-rc6",
4
4
  "main": "lib/quotations-index.js",
5
5
  "types": "lib/quotations-index.d.ts",
6
6
  "type": "module",
@@ -28,9 +28,9 @@
28
28
  },
29
29
  "homepage": "https://github.com/unchainedshop/unchained#readme",
30
30
  "dependencies": {
31
- "@unchainedshop/events": "^3.0.0-rc4",
32
- "@unchainedshop/logger": "^3.0.0-rc4",
33
- "@unchainedshop/utils": "^3.0.0-rc4"
31
+ "@unchainedshop/events": "^3.0.0-rc6",
32
+ "@unchainedshop/logger": "^3.0.0-rc6",
33
+ "@unchainedshop/utils": "^3.0.0-rc6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^22.10.2",
@@ -1,8 +0,0 @@
1
- export declare enum QuotationStatus {
2
- REQUESTED = "REQUESTED",
3
- PROCESSING = "PROCESSING",
4
- PROPOSED = "PROPOSED",
5
- FULLFILLED = "FULLFILLED",
6
- REJECTED = "REJECTED"
7
- }
8
- //# sourceMappingURL=QuotationStatus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationStatus.d.ts","sourceRoot":"","sources":["../../src/db/QuotationStatus.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,QAAQ,aAAa;CACtB"}
@@ -1,9 +0,0 @@
1
- export var QuotationStatus;
2
- (function (QuotationStatus) {
3
- QuotationStatus["REQUESTED"] = "REQUESTED";
4
- QuotationStatus["PROCESSING"] = "PROCESSING";
5
- QuotationStatus["PROPOSED"] = "PROPOSED";
6
- QuotationStatus["FULLFILLED"] = "FULLFILLED";
7
- QuotationStatus["REJECTED"] = "REJECTED";
8
- })(QuotationStatus || (QuotationStatus = {}));
9
- //# sourceMappingURL=QuotationStatus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationStatus.js","sourceRoot":"","sources":["../../src/db/QuotationStatus.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;IACzB,wCAAqB,CAAA;AACvB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B"}
@@ -1,3 +0,0 @@
1
- import { IQuotationAdapter } from '../types.js';
2
- export declare const QuotationAdapter: Omit<IQuotationAdapter, 'key' | 'label' | 'version'>;
3
- //# sourceMappingURL=QuotationAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationAdapter.d.ts","sourceRoot":"","sources":["../../src/director/QuotationAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CA8CjF,CAAC"}
@@ -1,40 +0,0 @@
1
- import { log, LogLevel } from '@unchainedshop/logger';
2
- import { QuotationError } from './QuotationError.js';
3
- export const QuotationAdapter = {
4
- orderIndex: 0,
5
- isActivatedFor: () => {
6
- return false;
7
- },
8
- actions: () => {
9
- return {
10
- configurationError: () => {
11
- return QuotationError.NOT_IMPLEMENTED;
12
- },
13
- isManualRequestVerificationRequired: async () => {
14
- return true;
15
- },
16
- isManualProposalRequired: async () => {
17
- return true;
18
- },
19
- quote: async () => {
20
- return {};
21
- },
22
- rejectRequest: async () => {
23
- return true;
24
- },
25
- submitRequest: async () => {
26
- return true;
27
- },
28
- verifyRequest: async () => {
29
- return true;
30
- },
31
- transformItemConfiguration: async ({ quantity, configuration }) => {
32
- return { quantity, configuration };
33
- },
34
- };
35
- },
36
- log(message, { level = LogLevel.Debug, ...options } = {}) {
37
- return log(message, { level, ...options });
38
- },
39
- };
40
- //# sourceMappingURL=QuotationAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationAdapter.js","sourceRoot":"","sources":["../../src/director/QuotationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAyD;IACpF,UAAU,EAAE,CAAC;IAEb,cAAc,EAAE,GAAG,EAAE;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO;YACL,kBAAkB,EAAE,GAAG,EAAE;gBACvB,OAAO,cAAc,CAAC,eAAe,CAAC;YACxC,CAAC;YAED,mCAAmC,EAAE,KAAK,IAAI,EAAE;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,wBAAwB,EAAE,KAAK,IAAI,EAAE;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,aAAa,EAAE,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,aAAa,EAAE,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,aAAa,EAAE,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,0BAA0B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;gBAChE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import { IQuotationDirector } from '../types.js';
2
- export declare const QuotationDirector: IQuotationDirector;
3
- //# sourceMappingURL=QuotationDirector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationDirector.d.ts","sourceRoot":"","sources":["../../src/director/QuotationDirector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,kBAAkB,EAAoB,MAAM,aAAa,CAAC;AAqBtF,eAAO,MAAM,iBAAiB,EAAE,kBA2E/B,CAAC"}
@@ -1,89 +0,0 @@
1
- import { LogLevel, log } from '@unchainedshop/logger';
2
- import { BaseDirector } from '@unchainedshop/utils';
3
- import { QuotationError } from './QuotationError.js';
4
- const baseDirector = BaseDirector('QuotationDirector', {
5
- adapterSortKey: 'orderIndex',
6
- });
7
- const findAppropriateAdapters = (quotationContext, unchainedAPI) => baseDirector.getAdapters({
8
- adapterFilter: (Adapter) => {
9
- const activated = Adapter.isActivatedFor(quotationContext, unchainedAPI);
10
- if (!activated) {
11
- log(`Quotation Director -> ${Adapter.key} (${Adapter.version}) skipped`, {
12
- level: LogLevel.Warning,
13
- });
14
- }
15
- return activated;
16
- },
17
- });
18
- export const QuotationDirector = {
19
- ...baseDirector,
20
- actions: async (quotationContext, unchainedAPI) => {
21
- const context = { ...quotationContext, ...unchainedAPI };
22
- const Adapter = findAppropriateAdapters(quotationContext, unchainedAPI)?.shift();
23
- if (!Adapter) {
24
- throw new Error('No suitable quotation plugin available for this context');
25
- }
26
- const adapter = Adapter.actions(context);
27
- return {
28
- configurationError: () => {
29
- try {
30
- return adapter.configurationError();
31
- }
32
- catch (error) {
33
- log('QuotationDirector -> Error while checking for configurationError', {
34
- level: LogLevel.Warning,
35
- ...error,
36
- });
37
- return QuotationError.ADAPTER_NOT_FOUND;
38
- }
39
- },
40
- isManualRequestVerificationRequired: async () => {
41
- try {
42
- const isRequired = await adapter.isManualRequestVerificationRequired();
43
- return isRequired;
44
- }
45
- catch (error) {
46
- log('QuotationDirector -> Error while checking if is manual request verification required', {
47
- level: LogLevel.Error,
48
- ...error,
49
- });
50
- return null;
51
- }
52
- },
53
- isManualProposalRequired: async () => {
54
- try {
55
- const isRequired = await adapter.isManualProposalRequired();
56
- return isRequired;
57
- }
58
- catch (error) {
59
- log('QuotationDirector -> Error while checking if is manual proposal required', {
60
- level: LogLevel.Error,
61
- ...error,
62
- });
63
- return null;
64
- }
65
- },
66
- quote: adapter.quote,
67
- rejectRequest: adapter.rejectRequest,
68
- submitRequest: adapter.submitRequest,
69
- verifyRequest: adapter.verifyRequest,
70
- transformItemConfiguration: async ({ quantity, configuration }) => {
71
- try {
72
- const itemConfiguration = await adapter.transformItemConfiguration({
73
- quantity,
74
- configuration,
75
- });
76
- return itemConfiguration;
77
- }
78
- catch (error) {
79
- log('QuotationDirector -> Error while transforming item configuration', {
80
- level: LogLevel.Error,
81
- ...error,
82
- });
83
- return null;
84
- }
85
- },
86
- };
87
- },
88
- };
89
- //# sourceMappingURL=QuotationDirector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationDirector.js","sourceRoot":"","sources":["../../src/director/QuotationDirector.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export declare enum QuotationError {
2
- ADAPTER_NOT_FOUND = "ADAPTER_NOT_FOUND",
3
- NOT_IMPLEMENTED = "NOT_IMPLEMENTED",
4
- INCOMPLETE_CONFIGURATION = "INCOMPLETE_CONFIGURATION",
5
- WRONG_CREDENTIALS = "WRONG_CREDENTIALS"
6
- }
7
- //# sourceMappingURL=QuotationError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationError.d.ts","sourceRoot":"","sources":["../../src/director/QuotationError.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,wBAAwB,6BAA6B;IACrD,iBAAiB,sBAAsB;CACxC"}
@@ -1,8 +0,0 @@
1
- export var QuotationError;
2
- (function (QuotationError) {
3
- QuotationError["ADAPTER_NOT_FOUND"] = "ADAPTER_NOT_FOUND";
4
- QuotationError["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
5
- QuotationError["INCOMPLETE_CONFIGURATION"] = "INCOMPLETE_CONFIGURATION";
6
- QuotationError["WRONG_CREDENTIALS"] = "WRONG_CREDENTIALS";
7
- })(QuotationError || (QuotationError = {}));
8
- //# sourceMappingURL=QuotationError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QuotationError.js","sourceRoot":"","sources":["../../src/director/QuotationError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,uEAAqD,CAAA;IACrD,yDAAuC,CAAA;AACzC,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB"}
@@ -1,52 +0,0 @@
1
- import { SortOption } from '@unchainedshop/utils';
2
- import { Quotation, QuotationStatus } from '../db/QuotationsCollection.js';
3
- import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
4
- import { QuotationsSettingsOptions } from '../quotations-settings.js';
5
- export type QuotationQuery = {
6
- userId?: string;
7
- queryString?: string;
8
- };
9
- export interface QuotationData {
10
- configuration?: Array<{
11
- key: string;
12
- value: string;
13
- }>;
14
- countryCode?: string;
15
- productId: string;
16
- userId: string;
17
- }
18
- export declare const buildFindSelector: (query?: QuotationQuery) => {
19
- userId?: string;
20
- $text?: any;
21
- };
22
- export declare const configureQuotationsModule: ({ db, options: quotationsOptions, }: ModuleInput<QuotationsSettingsOptions>) => Promise<{
23
- count: (query: QuotationQuery) => Promise<number>;
24
- openQuotationWithProduct: ({ productId }: {
25
- productId: string;
26
- }) => Promise<Quotation>;
27
- findQuotation: ({ quotationId }: {
28
- quotationId: string;
29
- }, options?: mongodb.FindOptions<Quotation>) => Promise<Quotation>;
30
- findQuotations: ({ limit, offset, sort, ...query }: QuotationQuery & {
31
- limit?: number;
32
- offset?: number;
33
- sort?: Array<SortOption>;
34
- }, options?: mongodb.FindOptions<Quotation>) => Promise<Array<Quotation>>;
35
- normalizedStatus: (quotation: Quotation) => QuotationStatus;
36
- isExpired(quotation: Quotation, { referenceDate }: {
37
- referenceDate: Date;
38
- }): boolean;
39
- isProposalValid(quotation: Quotation): boolean;
40
- create: ({ countryCode, currency, ...quotationData }: QuotationData & {
41
- currency: string;
42
- }) => Promise<Quotation>;
43
- deleteRequestedUserQuotations: (userId: string) => Promise<number>;
44
- updateContext: (quotationId: string, values: any) => Promise<Quotation>;
45
- updateProposal: (quotationId: string, values: any) => Promise<Quotation>;
46
- updateStatus: (quotationId: string, { status, info }: {
47
- status: QuotationStatus;
48
- info?: string;
49
- }) => Promise<Quotation>;
50
- }>;
51
- export type QuotationsModule = Awaited<ReturnType<typeof configureQuotationsModule>>;
52
- //# sourceMappingURL=configureQuotationsModule_BACKUP_56551.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureQuotationsModule_BACKUP_56551.d.ts","sourceRoot":"","sources":["../../src/module/configureQuotationsModule_BACKUP_56551.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAGL,OAAO,EAEP,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAsB,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAoCF,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,eAAO,MAAM,iBAAiB,WAAW,cAAc;aAC1B,MAAM;YAAU,GAAG;CAS/C,CAAC;AAEF,eAAO,MAAM,yBAAyB,wCAGnC,WAAW,CAAC,yBAAyB,CAAC;mBAuFhB,cAAc,KAAG,OAAO,CAAC,MAAM,CAAC;8CAIL;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,SAAS,CAAC;qCAQvE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,YAC9B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,KACvC,OAAO,CAAC,SAAS,CAAC;wDAWhB,cAAc,GAAG;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1B,YACS,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,KACvC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;kCAaE,SAAS,KAAG,eAAe;yBAMpC,SAAS,qBAAqB;QAAE,aAAa,EAAE,IAAI,CAAA;KAAE;+BAO/C,SAAS,GAAG,OAAO;0DAS3C,aAAa,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,SAAS,CAAC;4CAkBd,MAAM;iCAnGhC,MAAM,UAAU,GAAG,KAAG,OAAO,CAAC,SAAS,CAAC;kCAAxC,MAAM,UAAU,GAAG,KAAG,OAAO,CAAC,SAAS,CAAC;gCAxD/C,MAAM,oBACI;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAChE,OAAO,CAAC,SAAS,CAAC;EAqKtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC"}
@@ -1,152 +0,0 @@
1
- import { SortDirection } from '@unchainedshop/utils';
2
- import { QuotationStatus } from '../db/QuotationsCollection.js';
3
- import { emit, registerEvents } from '@unchainedshop/events';
4
- import { generateDbFilterById, buildSortOptions, generateDbObjectId, } from '@unchainedshop/mongodb';
5
- import { QuotationsCollection } from '../db/QuotationsCollection.js';
6
- import { quotationsSettings } from '../quotations-settings.js';
7
- const QUOTATION_EVENTS = ['QUOTATION_REQUEST_CREATE', 'QUOTATION_REMOVE', 'QUOTATION_UPDATE'];
8
- export const buildFindSelector = (query = {}) => {
9
- const selector = {};
10
- if (query.userId) {
11
- selector.userId = query.userId;
12
- }
13
- if (query.queryString) {
14
- selector.$text = { $search: query.queryString };
15
- }
16
- return selector;
17
- };
18
- export const configureQuotationsModule = async ({ db, options: quotationsOptions = {}, }) => {
19
- registerEvents(QUOTATION_EVENTS);
20
- quotationsSettings.configureSettings(quotationsOptions);
21
- const Quotations = await QuotationsCollection(db);
22
- const findNewQuotationNumber = async (quotation, index = 0) => {
23
- const newHashID = quotationsSettings.quotationNumberHashFn(quotation, index);
24
- if ((await Quotations.countDocuments({ quotationNumber: newHashID }, { limit: 1 })) === 0) {
25
- return newHashID;
26
- }
27
- return findNewQuotationNumber(quotation, index + 1);
28
- };
29
- const updateStatus = async (quotationId, { status, info = '' }) => {
30
- const selector = generateDbFilterById(quotationId);
31
- const quotation = await Quotations.findOne(selector, {});
32
- if (quotation.status === status)
33
- return quotation;
34
- const date = new Date();
35
- const $set = {
36
- status,
37
- updated: new Date(),
38
- };
39
- switch (status) {
40
- // explicitly use fallthrough here!
41
- case QuotationStatus.FULLFILLED:
42
- if (!quotation.fullfilled) {
43
- $set.fullfilled = date;
44
- }
45
- $set.expires = date;
46
- case QuotationStatus.PROCESSING: // eslint-disable-line no-fallthrough
47
- if (!quotation.quotationNumber) {
48
- $set.quotationNumber = await findNewQuotationNumber(quotation);
49
- }
50
- break;
51
- case QuotationStatus.REJECTED:
52
- $set.expires = date;
53
- $set.rejected = date;
54
- break;
55
- default:
56
- break;
57
- }
58
- const modifier = {
59
- $set,
60
- $push: {
61
- log: {
62
- date,
63
- status,
64
- info,
65
- },
66
- },
67
- };
68
- const updatedQuotation = await Quotations.findOneAndUpdate(selector, modifier, {
69
- returnDocument: 'after',
70
- });
71
- await emit('QUOTATION_UPDATE', { quotation, field: 'status' });
72
- return updatedQuotation;
73
- };
74
- const updateQuotationFields = (fieldKeys) => async (quotationId, values) => {
75
- const quotation = await Quotations.findOneAndUpdate(generateDbFilterById(quotationId), {
76
- $set: {
77
- updated: new Date(),
78
- ...fieldKeys.reduce((set, key) => ({ ...set, [key]: values[key] }), {}),
79
- },
80
- });
81
- await emit('QUOTATION_UPDATE', { quotation, fields: fieldKeys });
82
- return quotation;
83
- };
84
- return {
85
- // Queries
86
- count: async (query) => {
87
- const quotationCount = await Quotations.countDocuments(buildFindSelector(query));
88
- return quotationCount;
89
- },
90
- openQuotationWithProduct: async ({ productId }) => {
91
- const selector = { productId };
92
- selector.status = { $in: [QuotationStatus.REQUESTED, QuotationStatus.PROPOSED] };
93
- return Quotations.findOne(selector);
94
- },
95
- findQuotation: async ({ quotationId }, options) => {
96
- const selector = generateDbFilterById(quotationId);
97
- return Quotations.findOne(selector, options);
98
- },
99
- findQuotations: async ({ limit, offset, sort, ...query }, options) => {
100
- const defaultSortOption = [{ key: 'created', value: SortDirection.ASC }];
101
- const quotations = Quotations.find(buildFindSelector(query), {
102
- limit,
103
- skip: offset,
104
- sort: buildSortOptions(sort || defaultSortOption),
105
- ...options,
106
- });
107
- return quotations.toArray();
108
- },
109
- // Transformations
110
- normalizedStatus: (quotation) => {
111
- return quotation.status === null
112
- ? QuotationStatus.REQUESTED
113
- : quotation.status;
114
- },
115
- isExpired(quotation, { referenceDate }) {
116
- const relevantDate = referenceDate ? new Date(referenceDate) : new Date();
117
- const expiryDate = new Date(quotation.expires);
118
- const isQuotationExpired = relevantDate.getTime() > expiryDate.getTime();
119
- return isQuotationExpired;
120
- },
121
- isProposalValid(quotation) {
122
- return quotation.status === QuotationStatus.PROPOSED && !this.isExpired(quotation);
123
- },
124
- // Mutations
125
- create: async ({ countryCode, currency, ...quotationData }) => {
126
- const { insertedId: quotationId } = await Quotations.insertOne({
127
- _id: generateDbObjectId(),
128
- created: new Date(),
129
- ...quotationData,
130
- configuration: quotationData.configuration || [],
131
- countryCode,
132
- currency,
133
- log: [],
134
- status: QuotationStatus.REQUESTED,
135
- });
136
- const quotation = await Quotations.findOne(generateDbFilterById(quotationId), {});
137
- await emit('QUOTATION_REQUEST_CREATE', { quotation });
138
- return quotation;
139
- },
140
- deleteRequestedUserQuotations: async (userId) => {
141
- const { deletedCount } = await Quotations.deleteMany({
142
- userId,
143
- status: { $in: [QuotationStatus.REQUESTED, null] },
144
- });
145
- return deletedCount;
146
- },
147
- updateContext: updateQuotationFields(['context']),
148
- updateProposal: updateQuotationFields(['price', 'expires', 'meta']),
149
- updateStatus,
150
- };
151
- };
152
- //# sourceMappingURL=configureQuotationsModule_BACKUP_56551.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureQuotationsModule_BACKUP_56551.js","sourceRoot":"","sources":["../../src/module/configureQuotationsModule_BACKUP_56551.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- import { SortOption } from '@unchainedshop/utils';
2
- import { Quotation, QuotationItemConfiguration, QuotationProposal } from '../types.js';
3
- import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
4
- import { QuotationStatus } from '../db/QuotationStatus.js';
5
- import { QuotationsSettingsOptions } from '../quotations-settings.js';
6
- export type QuotationQuery = {
7
- userId?: string;
8
- queryString?: string;
9
- };
10
- export interface QuotationQueries {
11
- findQuotation: (query: {
12
- quotationId: string;
13
- }, options?: mongodb.FindOptions) => Promise<Quotation>;
14
- findQuotations: (query: QuotationQuery & {
15
- limit?: number;
16
- offset?: number;
17
- sort?: Array<SortOption>;
18
- }, options?: mongodb.FindOptions) => Promise<Array<Quotation>>;
19
- count: (query: QuotationQuery) => Promise<number>;
20
- openQuotationWithProduct: (param: {
21
- productId: string;
22
- }) => Promise<Quotation | null>;
23
- }
24
- export interface QuotationTransformations {
25
- isExpired: (quotation: Quotation, params?: {
26
- referenceDate: Date;
27
- }) => boolean;
28
- isProposalValid: (quotation: Quotation) => boolean;
29
- normalizedStatus: (quotation: Quotation) => string;
30
- }
31
- export type QuotationContextParams = (quotation: Quotation, params: {
32
- quotationContext?: any;
33
- }, unchainedAPI: any) => Promise<Quotation>;
34
- export interface QuotationData {
35
- configuration?: Array<{
36
- key: string;
37
- value: string;
38
- }>;
39
- countryCode?: string;
40
- productId: string;
41
- userId: string;
42
- }
43
- export interface QuotationMutations {
44
- create: (doc: QuotationData, unchainedAPI: any) => Promise<Quotation>;
45
- updateContext: (quotationId: string, context: any) => Promise<Quotation | null>;
46
- updateProposal: (quotationId: string, proposal: QuotationProposal) => Promise<Quotation>;
47
- updateStatus: (quotationId: string, params: {
48
- status: QuotationStatus;
49
- info?: string;
50
- }) => Promise<Quotation>;
51
- }
52
- export interface QuotationProcessing {
53
- fullfillQuotation: (quotationId: string, info: any, unchainedAPI: any) => Promise<Quotation>;
54
- proposeQuotation: QuotationContextParams;
55
- rejectQuotation: QuotationContextParams;
56
- verifyQuotation: QuotationContextParams;
57
- transformItemConfiguration: (quotation: Quotation, configuration: QuotationItemConfiguration, unchainedAPI: any) => Promise<QuotationItemConfiguration>;
58
- }
59
- export type QuotationsModule = QuotationQueries & QuotationTransformations & QuotationProcessing & QuotationMutations;
60
- export declare const buildFindSelector: (query?: QuotationQuery) => {
61
- userId?: string;
62
- $text?: any;
63
- };
64
- export declare const configureQuotationsModule: ({ db, options: quotationsOptions, }: ModuleInput<QuotationsSettingsOptions>) => Promise<QuotationsModule>;
65
- //# sourceMappingURL=configureQuotationsModule_BASE_56551.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configureQuotationsModule_BASE_56551.d.ts","sourceRoot":"","sources":["../../src/module/configureQuotationsModule_BASE_56551.ts"],"names":[],"mappings":"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"}