@infrab4a/connect-angular 6.0.0-beta.0 → 6.0.0-beta.10

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.
@@ -3,51 +3,77 @@ import { OrderFirestoreRepository, OrderStatus, ProductReview, Where, } from '@i
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@infrab4a/connect";
5
5
  export class OrderProductReviewService {
6
- constructor(orderRepository, productReviewRepository) {
6
+ constructor(orderRepository, productReviewRepository, variantRepository) {
7
7
  this.orderRepository = orderRepository;
8
8
  this.productReviewRepository = productReviewRepository;
9
+ this.variantRepository = variantRepository;
9
10
  }
10
11
  async getPendingReviewsByEmail(email) {
11
12
  const products = [];
13
+ const orders = await this.getOrdersByEmail(email);
14
+ if (orders.length) {
15
+ for (const order of orders) {
16
+ const lineItems = order.lineItems.filter((item) => !item.isGift);
17
+ for (const item of lineItems) {
18
+ const productReview = await this.getProductReview(order, item);
19
+ if (productReview?.status != null)
20
+ continue;
21
+ products.push(this.buildProductReview(order, item, productReview));
22
+ }
23
+ }
24
+ }
25
+ return products;
26
+ }
27
+ async getOrdersByEmail(email) {
12
28
  const { data: orders } = await this.orderRepository.find({
13
29
  filters: {
14
30
  user: {
15
31
  email: email,
16
32
  },
17
33
  status: OrderStatus.ENTREGUE,
34
+ createdAt: {
35
+ operator: Where.GTE,
36
+ value: new Date(2024, 0, 0, 0, 0, 0).getTime(),
37
+ },
18
38
  },
19
39
  orderBy: {
20
40
  createdAt: 'desc',
21
41
  },
22
42
  });
23
- if (orders.length) {
24
- for (const order of orders) {
25
- const lineItems = order.lineItems.filter((item) => !item.isGift);
26
- for (const item of lineItems) {
27
- const productReview = await this.productReviewRepository
28
- .find({
29
- filters: {
30
- orderId: order.id,
31
- productId: item.id,
32
- status: { operator: Where.ISNULL },
33
- },
34
- })
35
- .then((res) => res.data.at(0));
36
- products.push(this.buildProductReview(order, item, productReview));
37
- }
38
- }
39
- }
40
- return products;
43
+ return orders;
44
+ }
45
+ async getProductReview(order, item) {
46
+ const products = [item.id];
47
+ const isVariant = await this.variantRepository
48
+ .find({
49
+ filters: {
50
+ id: item.id,
51
+ },
52
+ })
53
+ .then((res) => res.data.at(0));
54
+ if (isVariant)
55
+ products.push(isVariant.productId);
56
+ const productReview = await this.productReviewRepository
57
+ .find({
58
+ filters: {
59
+ orderId: { operator: Where.IN, value: [order.id, order.orderNumber].filter(Boolean) },
60
+ productId: { operator: Where.IN, value: products },
61
+ },
62
+ })
63
+ .then((res) => res.data.at(0));
64
+ return productReview;
41
65
  }
42
66
  buildProductReview(order, item, review) {
43
67
  return {
44
68
  id: item.id,
45
- orderNumber: order.orderNumber ?? order.id,
69
+ orderId: order.id,
70
+ orderNumber: order.orderNumber,
46
71
  isEdition: false,
47
72
  name: item.name,
48
73
  image: item.image,
49
74
  deliveryDate: order.deliveredAt || null,
50
75
  evaluationInAnalysis: review ? true : false,
76
+ rating: review ? review.rate : null,
51
77
  shopProductSlug: item.slug,
52
78
  };
53
79
  }
@@ -66,7 +92,7 @@ export class OrderProductReviewService {
66
92
  orderId: review.orderId,
67
93
  }));
68
94
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }, { token: 'VariantRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
70
96
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService }); }
71
97
  }
72
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, decorators: [{
@@ -77,5 +103,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
77
103
  }] }, { type: undefined, decorators: [{
78
104
  type: Inject,
79
105
  args: ['ProductReviewRepository']
106
+ }] }, { type: undefined, decorators: [{
107
+ type: Inject,
108
+ args: ['VariantRepository']
80
109
  }] }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvb3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxhQUFhLEVBRWIsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7OztBQUsxQixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQzhDLGVBQXlDLEVBQ2pDLHVCQUFnRDtRQUR4RCxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFDakMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUNuRyxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQWE7UUFDMUMsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQTtRQUMzQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDdkQsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUUsS0FBSztpQkFDYjtnQkFDRCxNQUFNLEVBQUUsV0FBVyxDQUFDLFFBQVE7YUFDN0I7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsU0FBUyxFQUFFLE1BQU07YUFDbEI7U0FDRixDQUFDLENBQUE7UUFFRixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFFaEUsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7b0JBQzVCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1Qjt5QkFDckQsSUFBSSxDQUFDO3dCQUNKLE9BQU8sRUFBRTs0QkFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7NEJBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRTs0QkFDbEIsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUU7eUJBQ25DO3FCQUNGLENBQUM7eUJBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUVoQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUE7aUJBQ25FO2FBQ0Y7U0FDRjtRQUVELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsSUFBYyxFQUFFLE1BQXFCO1FBQzVFLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMxQyxTQUFTLEVBQUUsS0FBSztZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSTtZQUN2QyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztZQUMzQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDM0IsQ0FBQTtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQTJCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FDeEMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN2QixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs4R0F4RVUseUJBQXlCLGtCQUUxQixpQkFBaUIsYUFDakIseUJBQXlCO2tIQUh4Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIExpbmVJdGVtLFxyXG4gIE9yZGVyLFxyXG4gIE9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICBPcmRlclN0YXR1cyxcclxuICBQcm9kdWN0UmV2aWV3LFxyXG4gIFByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5LFxyXG4gIFdoZXJlLFxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5cclxuaW1wb3J0IHsgUGVuZGluZ1Byb2R1Y3RSZXZpZXcsIFByb2R1Y3RSZXZpZXdDcmVhdGUgfSBmcm9tICcuL3R5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3JkZXJQcm9kdWN0UmV2aWV3U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdPcmRlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IG9yZGVyUmVwb3NpdG9yeTogT3JkZXJGaXJlc3RvcmVSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnUHJvZHVjdFJldmlld1JlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RSZXZpZXdSZXBvc2l0b3J5OiBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIGdldFBlbmRpbmdSZXZpZXdzQnlFbWFpbChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxQZW5kaW5nUHJvZHVjdFJldmlld1tdPiB7XHJcbiAgICBjb25zdCBwcm9kdWN0czogUGVuZGluZ1Byb2R1Y3RSZXZpZXdbXSA9IFtdXHJcbiAgICBjb25zdCB7IGRhdGE6IG9yZGVycyB9ID0gYXdhaXQgdGhpcy5vcmRlclJlcG9zaXRvcnkuZmluZCh7XHJcbiAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICB1c2VyOiB7XHJcbiAgICAgICAgICBlbWFpbDogZW1haWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdGF0dXM6IE9yZGVyU3RhdHVzLkVOVFJFR1VFLFxyXG4gICAgICB9LFxyXG4gICAgICBvcmRlckJ5OiB7XHJcbiAgICAgICAgY3JlYXRlZEF0OiAnZGVzYycsXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIGlmIChvcmRlcnMubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAoY29uc3Qgb3JkZXIgb2Ygb3JkZXJzKSB7XHJcbiAgICAgICAgY29uc3QgbGluZUl0ZW1zID0gb3JkZXIubGluZUl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uaXNHaWZ0KVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbGluZUl0ZW1zKSB7XHJcbiAgICAgICAgICBjb25zdCBwcm9kdWN0UmV2aWV3ID0gYXdhaXQgdGhpcy5wcm9kdWN0UmV2aWV3UmVwb3NpdG9yeVxyXG4gICAgICAgICAgICAuZmluZCh7XHJcbiAgICAgICAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgICAgICAgb3JkZXJJZDogb3JkZXIuaWQsXHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHsgb3BlcmF0b3I6IFdoZXJlLklTTlVMTCB9LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5kYXRhLmF0KDApKVxyXG5cclxuICAgICAgICAgIHByb2R1Y3RzLnB1c2godGhpcy5idWlsZFByb2R1Y3RSZXZpZXcob3JkZXIsIGl0ZW0sIHByb2R1Y3RSZXZpZXcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0c1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFByb2R1Y3RSZXZpZXcob3JkZXI6IE9yZGVyLCBpdGVtOiBMaW5lSXRlbSwgcmV2aWV3OiBQcm9kdWN0UmV2aWV3KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgb3JkZXJOdW1iZXI6IG9yZGVyLm9yZGVyTnVtYmVyID8/IG9yZGVyLmlkLFxyXG4gICAgICBpc0VkaXRpb246IGZhbHNlLFxyXG4gICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgIGltYWdlOiBpdGVtLmltYWdlLFxyXG4gICAgICBkZWxpdmVyeURhdGU6IG9yZGVyLmRlbGl2ZXJlZEF0IHx8IG51bGwsXHJcbiAgICAgIGV2YWx1YXRpb25JbkFuYWx5c2lzOiByZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHNob3BQcm9kdWN0U2x1ZzogaXRlbS5zbHVnLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY3JlYXRlUmV2aWV3KHJldmlldzogUHJvZHVjdFJldmlld0NyZWF0ZSk6IFByb21pc2U8UHJvZHVjdFJldmlldz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFJldmlld1JlcG9zaXRvcnkuY3JlYXRlKFxyXG4gICAgICBQcm9kdWN0UmV2aWV3LnRvSW5zdGFuY2Uoe1xyXG4gICAgICAgIHByb2R1Y3RJZDogcmV2aWV3LnByb2R1Y3RJZC50b1N0cmluZygpLFxyXG4gICAgICAgIHNob3A6IHJldmlldy5zaG9wLFxyXG4gICAgICAgIHJhdGU6IHJldmlldy5yYXRlLFxyXG4gICAgICAgIGF1dGhvcjogcmV2aWV3LmF1dGhvcixcclxuICAgICAgICBlbWFpbDogcmV2aWV3LmVtYWlsLFxyXG4gICAgICAgIGxvY2F0aW9uOiByZXZpZXcubG9jYXRpb24sXHJcbiAgICAgICAgcmV2aWV3OiByZXZpZXcuY29tbWVudCxcclxuICAgICAgICB0aXRsZTogcmV2aWV3LnRpdGxlLFxyXG4gICAgICAgIHBlcnNvbklkOiByZXZpZXcucGVyc29uSWQsXHJcbiAgICAgICAgcG9pbnRzOiByZXZpZXcucG9pbnRzLFxyXG4gICAgICAgIG9yZGVySWQ6IHJldmlldy5vcmRlcklkLFxyXG4gICAgICB9KSxcclxuICAgIClcclxuICB9XHJcbn1cclxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvb3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxhQUFhLEVBR2IsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7OztBQUsxQixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQzhDLGVBQXlDLEVBQ2pDLHVCQUFnRCxFQUN0RCxpQkFBb0M7UUFGdEMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ2pDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDdEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUNqRixDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQWE7UUFDMUMsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFFaEUsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7b0JBQzVCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtv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QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQzNCLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUEyQjtRQUM1QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQ3hDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDdkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3RDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QixDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7OEdBdEdVLHlCQUF5QixrQkFFMUIsaUJBQWlCLGFBQ2pCLHlCQUF5QixhQUN6QixtQkFBbUI7a0hBSmxCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBQ2hDLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBMaW5lSXRlbSxcclxuICBPcmRlcixcclxuICBPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJTdGF0dXMsXHJcbiAgUHJvZHVjdFJldmlldyxcclxuICBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaGVyZSxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IFBlbmRpbmdQcm9kdWN0UmV2aWV3LCBQcm9kdWN0UmV2aWV3Q3JlYXRlIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE9yZGVyUHJvZHVjdFJldmlld1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnT3JkZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBvcmRlclJlcG9zaXRvcnk6IE9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXZpZXdSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmV2aWV3UmVwb3NpdG9yeTogUHJvZHVjdFJldmlld1JlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdWYXJpYW50UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFudFJlcG9zaXRvcnk6IFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZ2V0UGVuZGluZ1Jldmlld3NCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPFBlbmRpbmdQcm9kdWN0UmV2aWV3W10+IHtcclxuICAgIGNvbnN0IHByb2R1Y3RzOiBQZW5kaW5nUHJvZHVjdFJldmlld1tdID0gW11cclxuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IHRoaXMuZ2V0T3JkZXJzQnlFbWFpbChlbWFpbClcclxuXHJcbiAgICBpZiAob3JkZXJzLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGNvbnN0IG9yZGVyIG9mIG9yZGVycykge1xyXG4gICAgICAgIGNvbnN0IGxpbmVJdGVtcyA9IG9yZGVyLmxpbmVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzR2lmdClcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGxpbmVJdGVtcykge1xyXG4gICAgICAgICAgY29uc3QgcHJvZHVjdFJldmlldyA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdFJldmlldyhvcmRlciwgaXRlbSlcclxuXHJcbiAgICAgICAgICBpZiAocHJvZHVjdFJldmlldz8uc3RhdHVzICE9IG51bGwpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgcHJvZHVjdHMucHVzaCh0aGlzLmJ1aWxkUHJvZHVjdFJldmlldyhvcmRlciwgaXRlbSwgcHJvZHVjdFJldmlldykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RzXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldE9yZGVyc0J5RW1haWwoZW1haWw6IHN0cmluZyk6IFByb21pc2U8T3JkZXJbXT4ge1xyXG4gICAgY29uc3QgeyBkYXRhOiBvcmRlcnMgfSA9IGF3YWl0IHRoaXMub3JkZXJSZXBvc2l0b3J5LmZpbmQoe1xyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhdHVzOiBPcmRlclN0YXR1cy5FTlRSRUdVRSxcclxuICAgICAgICBjcmVhdGVkQXQ6IHtcclxuICAgICAgICAgIG9wZXJhdG9yOiBXaGVyZS5HVEUsXHJcbiAgICAgICAgICB2YWx1ZTogbmV3IERhdGUoMjAyNCwgMCwgMCwgMCwgMCwgMCkuZ2V0VGltZSgpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIG9yZGVyQnk6IHtcclxuICAgICAgICBjcmVhdGVkQXQ6ICdkZXNjJyxcclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIG9yZGVyc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0UmV2aWV3KG9yZGVyOiBPcmRlciwgaXRlbTogTGluZUl0ZW0pIHtcclxuICAgIGNvbnN0IHByb2R1Y3RzOiBzdHJpbmdbXSA9IFtpdGVtLmlkXVxyXG4gICAgY29uc3QgaXNWYXJpYW50ID0gYXdhaXQgdGhpcy52YXJpYW50UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZCh7XHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmRhdGEuYXQoMCkpXHJcblxyXG4gICAgaWYgKGlzVmFyaWFudCkgcHJvZHVjdHMucHVzaChpc1ZhcmlhbnQucHJvZHVjdElkKVxyXG4gICAgY29uc3QgcHJvZHVjdFJldmlldyA9IGF3YWl0IHRoaXMucHJvZHVjdFJldmlld1JlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoe1xyXG4gICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgIG9yZGVySWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW29yZGVyLmlkLCBvcmRlci5vcmRlck51bWJlcl0uZmlsdGVyKEJvb2xlYW4pIH0sXHJcbiAgICAgICAgICBwcm9kdWN0SWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdHMgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YS5hdCgwKSlcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdFJldmlld1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFByb2R1Y3RSZXZpZXcob3JkZXI6IE9yZGVyLCBpdGVtOiBMaW5lSXRlbSwgcmV2aWV3OiBQcm9kdWN0UmV2aWV3KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgb3JkZXJJZDogb3JkZXIuaWQsXHJcbiAgICAgIG9yZGVyTnVtYmVyOiBvcmRlci5vcmRlck51bWJlcixcclxuICAgICAgaXNFZGl0aW9uOiBmYWxzZSxcclxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICBpbWFnZTogaXRlbS5pbWFnZSxcclxuICAgICAgZGVsaXZlcnlEYXRlOiBvcmRlci5kZWxpdmVyZWRBdCB8fCBudWxsLFxyXG4gICAgICBldmFsdWF0aW9uSW5BbmFseXNpczogcmV2aWV3ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICByYXRpbmc6IHJldmlldyA/IHJldmlldy5yYXRlIDogbnVsbCxcclxuICAgICAgc2hvcFByb2R1Y3RTbHVnOiBpdGVtLnNsdWcsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGVSZXZpZXcocmV2aWV3OiBQcm9kdWN0UmV2aWV3Q3JlYXRlKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0UmV2aWV3UmVwb3NpdG9yeS5jcmVhdGUoXHJcbiAgICAgIFByb2R1Y3RSZXZpZXcudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgcHJvZHVjdElkOiByZXZpZXcucHJvZHVjdElkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgc2hvcDogcmV2aWV3LnNob3AsXHJcbiAgICAgICAgcmF0ZTogcmV2aWV3LnJhdGUsXHJcbiAgICAgICAgYXV0aG9yOiByZXZpZXcuYXV0aG9yLFxyXG4gICAgICAgIGVtYWlsOiByZXZpZXcuZW1haWwsXHJcbiAgICAgICAgbG9jYXRpb246IHJldmlldy5sb2NhdGlvbixcclxuICAgICAgICByZXZpZXc6IHJldmlldy5jb21tZW50LFxyXG4gICAgICAgIHRpdGxlOiByZXZpZXcudGl0bGUsXHJcbiAgICAgICAgcGVyc29uSWQ6IHJldmlldy5wZXJzb25JZCxcclxuICAgICAgICBwb2ludHM6IHJldmlldy5wb2ludHMsXHJcbiAgICAgICAgb3JkZXJJZDogcmV2aWV3Lm9yZGVySWQsXHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1wcm9kdWN0LXJldmlldy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy90eXBlcy9wZW5kaW5nLXByb2R1Y3QtcmV2aWV3LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFBlbmRpbmdQcm9kdWN0UmV2aWV3ID0ge1xyXG4gIGlkOiBzdHJpbmdcclxuICBvcmRlck51bWJlcjogc3RyaW5nXHJcbiAgaXNFZGl0aW9uOiBib29sZWFuXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaW1hZ2U6IHN0cmluZ1xyXG4gIGRlbGl2ZXJ5RGF0ZTogc3RyaW5nXHJcbiAgZXZhbHVhdGlvbkluQW5hbHlzaXM6IGJvb2xlYW5cclxuICBzaG9wUHJvZHVjdFNsdWc6IHN0cmluZ1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1wcm9kdWN0LXJldmlldy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy90eXBlcy9wZW5kaW5nLXByb2R1Y3QtcmV2aWV3LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFBlbmRpbmdQcm9kdWN0UmV2aWV3ID0ge1xyXG4gIGlkOiBzdHJpbmdcclxuICBpc0VkaXRpb246IGJvb2xlYW5cclxuICBvcmRlcklkOiBzdHJpbmdcclxuICBvcmRlck51bWJlcjogc3RyaW5nXHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgaW1hZ2U6IHN0cmluZ1xyXG4gIGRlbGl2ZXJ5RGF0ZTogc3RyaW5nXHJcbiAgZXZhbHVhdGlvbkluQW5hbHlzaXM6IGJvb2xlYW5cclxuICByYXRpbmc/OiBudW1iZXJcclxuICBzaG9wUHJvZHVjdFNsdWc6IHN0cmluZ1xyXG59XHJcbiJdfQ==
@@ -7,7 +7,7 @@ import { provideAppCheck, initializeAppCheck } from '@angular/fire/app-check';
7
7
  import * as i3$1 from '@angular/fire/storage';
8
8
  import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
9
9
  import * as i3 from '@infrab4a/connect';
10
- import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where, isEmpty, Shops, set, InvalidArgumentError, RoundProductPricesHelper, Category, WishlistLogType, PersonTypes, Wishlist, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, CheckoutSubscription, Product, RequiredArgumentError, add, ProductReview, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
10
+ import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where, Shops, isEmpty, set, InvalidArgumentError, RoundProductPricesHelper, Category, WishlistLogType, PersonTypes, Wishlist, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, CheckoutSubscription, Product, RequiredArgumentError, add, ProductReview, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
11
11
  import * as i1 from '@angular/fire/auth';
12
12
  import { Auth, provideAuth, initializeAuth, indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence, getAuth, getIdToken, authState } from '@angular/fire/auth';
13
13
  import { isPlatformBrowser, isPlatformServer } from '@angular/common';
@@ -1278,7 +1278,7 @@ class CheckoutService {
1278
1278
  })), concatMap(() => this.getCheckout()));
1279
1279
  }
1280
1280
  createOrder(checkoutPayload, paymentProvider, applicationVersion) {
1281
- return this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkout`, {
1281
+ return this.dependenciesFacade.httpClient.post(`${this.checkoutUrl}/checkoutV5`, {
1282
1282
  data: {
1283
1283
  ...checkoutPayload,
1284
1284
  applicationVersion,
@@ -1577,7 +1577,8 @@ class CategorySearchStrategy {
1577
1577
  options: {
1578
1578
  minimal: ['price'],
1579
1579
  maximum: ['price'],
1580
- ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),
1580
+ distinct: ['brand'],
1581
+ // ...(isEmpty(filters?.brands) ? { distinct: ['brand'] } : {}),
1581
1582
  },
1582
1583
  }, mainGender || (shop === Shops.MENSMARKET ? 'male' : 'female'), optionsCache);
1583
1584
  return this.sortProductsByRelevance(totalResult, mostRelevants, limits);
@@ -1624,7 +1625,7 @@ class ProfileSearchStrategy {
1624
1625
  const repoParams = {
1625
1626
  fields: fieldsHelper.getStandardFields(),
1626
1627
  filters: {
1627
- tags: { operator: Where.LIKE, value: profile },
1628
+ tagsProfile: { operator: Where.LIKE, value: profile },
1628
1629
  ...filterHelper.buildFilterQuery(filters || {}),
1629
1630
  },
1630
1631
  ...(sort ? { orderBy: sortHelper.buildSortQuery(sort) } : {}),
@@ -1831,6 +1832,9 @@ class CategoryService {
1831
1832
  .find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } }, optionsCache)
1832
1833
  .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
1833
1834
  }
1835
+ async getMenuBrands() {
1836
+ return this.categoryFacade.categoryRepository.getBrandsWithProducts();
1837
+ }
1834
1838
  async fetchFilterOptions(category, optionsCache) {
1835
1839
  return await this.categoryFacade.categoryFilterRepository
1836
1840
  .find({ filters: { categoryId: +category.id } }, optionsCache)
@@ -1885,11 +1889,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
1885
1889
  }] }] });
1886
1890
 
1887
1891
  class BrandManagerHelper {
1888
- constructor(productCatalog) {
1892
+ constructor(productCatalog, searchContext, shop) {
1889
1893
  this.productCatalog = productCatalog;
1894
+ this.searchContext = searchContext;
1895
+ this.shop = shop;
1890
1896
  this.brandsList = {};
1891
1897
  }
1892
1898
  async setBrandsList(options, brands) {
1899
+ // eslint-disable-next-line no-console
1900
+ console.log('setBrandsList', brands);
1893
1901
  const filterBrands = options.filters?.brands;
1894
1902
  const indexKey = this.buildIndexBrands(options);
1895
1903
  if (isEmpty(brands) && options.filters) {
@@ -1897,6 +1905,8 @@ class BrandManagerHelper {
1897
1905
  }
1898
1906
  this.brandsList[indexKey] = this.brandsList[indexKey] || brands || (await this.fetchBrandsOnly(options));
1899
1907
  this.brandsList[indexKey] = this.brandsList[indexKey].filter(Boolean);
1908
+ // eslint-disable-next-line no-console
1909
+ console.log('setBrandsList indexKey', this.brandsList[indexKey]);
1900
1910
  if (options.filters) {
1901
1911
  options.filters = {
1902
1912
  ...options.filters,
@@ -1916,7 +1926,11 @@ class BrandManagerHelper {
1916
1926
  return `profile-${options.profile.join(',')}`;
1917
1927
  return '';
1918
1928
  }
1919
- async fetchBrandsOnly(options) {
1929
+ async fetchBrandsOnly(options, optionsCache) {
1930
+ if (options.category) {
1931
+ const { distinct } = await this.searchContext.executeSearch(options, this.shop, optionsCache);
1932
+ return distinct.brand;
1933
+ }
1920
1934
  return this.productCatalog.productRepository
1921
1935
  .findCatalog({
1922
1936
  fields: ['id'],
@@ -1929,12 +1943,15 @@ class BrandManagerHelper {
1929
1943
  }, options.mainGender)
1930
1944
  .then((result) => result.distinct.brand);
1931
1945
  }
1932
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: BrandManagerHelper, deps: [{ token: ProductCatalogFacade }], target: i0.ɵɵFactoryTarget.Injectable }); }
1946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: BrandManagerHelper, deps: [{ token: ProductCatalogFacade }, { token: CatalogSearchContext }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable }); }
1933
1947
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: BrandManagerHelper }); }
1934
1948
  }
1935
1949
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: BrandManagerHelper, decorators: [{
1936
1950
  type: Injectable
1937
- }], ctorParameters: () => [{ type: ProductCatalogFacade }] });
1951
+ }], ctorParameters: () => [{ type: ProductCatalogFacade }, { type: CatalogSearchContext }, { type: i3.Shops, decorators: [{
1952
+ type: Inject,
1953
+ args: [DEFAULT_SHOP]
1954
+ }] }] });
1938
1955
 
1939
1956
  class CatalogFilterHelper {
1940
1957
  buildFilterQuery(filters) {
@@ -1963,7 +1980,7 @@ class CatalogFilterHelper {
1963
1980
  filterQuery.rate = { operator: Where.GTE, value: filters.rate };
1964
1981
  }
1965
1982
  if (filters.tags?.length) {
1966
- filterQuery.tags = { operator: Where.LIKE, value: filters.tags };
1983
+ filterQuery.tagsProfile = { operator: Where.LIKE, value: filters.tags };
1967
1984
  }
1968
1985
  if (filters.customOptions?.length) {
1969
1986
  filterQuery.filters = { operator: Where.LIKE, value: filters.customOptions };
@@ -2047,7 +2064,8 @@ class ProductFieldsHelper {
2047
2064
  'isKit',
2048
2065
  'sku',
2049
2066
  'rate',
2050
- 'tags',
2067
+ 'tagsProfile',
2068
+ 'tagsCollection',
2051
2069
  'type',
2052
2070
  'shoppingCount',
2053
2071
  'gender',
@@ -2164,8 +2182,14 @@ class CatalogService {
2164
2182
  async fetchProducts(options, optionsCache) {
2165
2183
  this.validateRequest(options);
2166
2184
  const searchParams = this.buildSearchParams(options);
2185
+ // eslint-disable-next-line no-console
2186
+ console.log('searchParams', searchParams);
2167
2187
  const { data, count: total, maximum, minimal, distinct, } = await this.searchContext.executeSearch(searchParams, this.shop, optionsCache);
2188
+ // eslint-disable-next-line no-console
2189
+ console.log('distinct', distinct);
2168
2190
  await this.helpersService.getBrandManager().setBrandsList(searchParams, distinct?.brand);
2191
+ // eslint-disable-next-line no-console
2192
+ console.log('searchParams 2', searchParams);
2169
2193
  return this.buildResponse({
2170
2194
  data,
2171
2195
  total,
@@ -2984,51 +3008,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
2984
3008
  }], ctorParameters: () => [{ type: HomeShopRepositoriesFacade }, { type: ConfigurationFacade }] });
2985
3009
 
2986
3010
  class OrderProductReviewService {
2987
- constructor(orderRepository, productReviewRepository) {
3011
+ constructor(orderRepository, productReviewRepository, variantRepository) {
2988
3012
  this.orderRepository = orderRepository;
2989
3013
  this.productReviewRepository = productReviewRepository;
3014
+ this.variantRepository = variantRepository;
2990
3015
  }
2991
3016
  async getPendingReviewsByEmail(email) {
2992
3017
  const products = [];
3018
+ const orders = await this.getOrdersByEmail(email);
3019
+ if (orders.length) {
3020
+ for (const order of orders) {
3021
+ const lineItems = order.lineItems.filter((item) => !item.isGift);
3022
+ for (const item of lineItems) {
3023
+ const productReview = await this.getProductReview(order, item);
3024
+ if (productReview?.status != null)
3025
+ continue;
3026
+ products.push(this.buildProductReview(order, item, productReview));
3027
+ }
3028
+ }
3029
+ }
3030
+ return products;
3031
+ }
3032
+ async getOrdersByEmail(email) {
2993
3033
  const { data: orders } = await this.orderRepository.find({
2994
3034
  filters: {
2995
3035
  user: {
2996
3036
  email: email,
2997
3037
  },
2998
3038
  status: OrderStatus.ENTREGUE,
3039
+ createdAt: {
3040
+ operator: Where.GTE,
3041
+ value: new Date(2024, 0, 0, 0, 0, 0).getTime(),
3042
+ },
2999
3043
  },
3000
3044
  orderBy: {
3001
3045
  createdAt: 'desc',
3002
3046
  },
3003
3047
  });
3004
- if (orders.length) {
3005
- for (const order of orders) {
3006
- const lineItems = order.lineItems.filter((item) => !item.isGift);
3007
- for (const item of lineItems) {
3008
- const productReview = await this.productReviewRepository
3009
- .find({
3010
- filters: {
3011
- orderId: order.id,
3012
- productId: item.id,
3013
- status: { operator: Where.ISNULL },
3014
- },
3015
- })
3016
- .then((res) => res.data.at(0));
3017
- products.push(this.buildProductReview(order, item, productReview));
3018
- }
3019
- }
3020
- }
3021
- return products;
3048
+ return orders;
3049
+ }
3050
+ async getProductReview(order, item) {
3051
+ const products = [item.id];
3052
+ const isVariant = await this.variantRepository
3053
+ .find({
3054
+ filters: {
3055
+ id: item.id,
3056
+ },
3057
+ })
3058
+ .then((res) => res.data.at(0));
3059
+ if (isVariant)
3060
+ products.push(isVariant.productId);
3061
+ const productReview = await this.productReviewRepository
3062
+ .find({
3063
+ filters: {
3064
+ orderId: { operator: Where.IN, value: [order.id, order.orderNumber].filter(Boolean) },
3065
+ productId: { operator: Where.IN, value: products },
3066
+ },
3067
+ })
3068
+ .then((res) => res.data.at(0));
3069
+ return productReview;
3022
3070
  }
3023
3071
  buildProductReview(order, item, review) {
3024
3072
  return {
3025
3073
  id: item.id,
3026
- orderNumber: order.orderNumber ?? order.id,
3074
+ orderId: order.id,
3075
+ orderNumber: order.orderNumber,
3027
3076
  isEdition: false,
3028
3077
  name: item.name,
3029
3078
  image: item.image,
3030
3079
  deliveryDate: order.deliveredAt || null,
3031
3080
  evaluationInAnalysis: review ? true : false,
3081
+ rating: review ? review.rate : null,
3032
3082
  shopProductSlug: item.slug,
3033
3083
  };
3034
3084
  }
@@ -3047,7 +3097,7 @@ class OrderProductReviewService {
3047
3097
  orderId: review.orderId,
3048
3098
  }));
3049
3099
  }
3050
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
3100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }, { token: 'VariantRepository' }], target: i0.ɵɵFactoryTarget.Injectable }); }
3051
3101
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService }); }
3052
3102
  }
3053
3103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: OrderProductReviewService, decorators: [{
@@ -3058,6 +3108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
3058
3108
  }] }, { type: undefined, decorators: [{
3059
3109
  type: Inject,
3060
3110
  args: ['ProductReviewRepository']
3111
+ }] }, { type: undefined, decorators: [{
3112
+ type: Inject,
3113
+ args: ['VariantRepository']
3061
3114
  }] }] });
3062
3115
 
3063
3116
  class OrderService {