@infrab4a/connect 5.3.0-beta.3 → 5.3.0-beta.30

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 (155) hide show
  1. package/index.cjs.js +2985 -447
  2. package/index.esm.js +2950 -450
  3. package/package.json +3 -2
  4. package/src/domain/catalog/models/category-brand.d.ts +17 -0
  5. package/src/domain/catalog/models/category.d.ts +12 -0
  6. package/src/domain/catalog/models/enums/shops.enum.d.ts +2 -0
  7. package/src/domain/catalog/models/index.d.ts +4 -0
  8. package/src/domain/catalog/models/product-base.d.ts +10 -0
  9. package/src/domain/catalog/models/product-group.d.ts +12 -0
  10. package/src/domain/catalog/models/product-price-log.d.ts +25 -0
  11. package/src/domain/catalog/models/product-review.d.ts +2 -0
  12. package/src/domain/catalog/models/product-stock-entry.d.ts +16 -0
  13. package/src/domain/catalog/models/product.d.ts +1 -0
  14. package/src/domain/catalog/models/types/brands-shop-menu.type.d.ts +13 -0
  15. package/src/domain/catalog/models/types/index.d.ts +2 -0
  16. package/src/domain/catalog/models/types/product-competitors-price.d.ts +6 -0
  17. package/src/domain/catalog/repositories/category-brand.repository.d.ts +4 -0
  18. package/src/domain/catalog/repositories/category-product.repository.d.ts +2 -0
  19. package/src/domain/catalog/repositories/category.repository.d.ts +1 -0
  20. package/src/domain/catalog/repositories/index.d.ts +5 -0
  21. package/src/domain/catalog/repositories/product-catalog.repository.d.ts +17 -0
  22. package/src/domain/catalog/repositories/product-group.repository.d.ts +4 -0
  23. package/src/domain/catalog/repositories/product-price-log.repository.d.ts +4 -0
  24. package/src/domain/catalog/repositories/product-stock-entry.repository.d.ts +4 -0
  25. package/src/domain/shop-settings/enums/shop-page-name.enum.d.ts +2 -1
  26. package/src/domain/shop-settings/models/home.d.ts +2 -1
  27. package/src/domain/shop-settings/models/index.d.ts +2 -1
  28. package/src/domain/shop-settings/models/shop-configs.d.ts +18 -0
  29. package/src/domain/shop-settings/models/{shop-settings.d.ts → shop-page-settings.d.ts} +4 -1
  30. package/src/domain/shop-settings/models/types/index.d.ts +3 -0
  31. package/src/domain/shop-settings/models/types/limit-orders.type.d.ts +7 -0
  32. package/src/domain/shop-settings/models/types/shipping-thresholds.type.d.ts +17 -0
  33. package/src/domain/shop-settings/models/types/shop-error-messages.type.d.ts +10 -0
  34. package/src/domain/shop-settings/models/types/shop-page-section.type.d.ts +140 -0
  35. package/src/domain/shop-settings/repositories/index.d.ts +1 -0
  36. package/src/domain/shop-settings/repositories/shop-configs.repository.d.ts +4 -0
  37. package/src/domain/shop-settings/repositories/shop-settings.repository.d.ts +1 -1
  38. package/src/domain/shopping/enums/index.d.ts +3 -0
  39. package/src/domain/shopping/enums/order-payment-status.enum.d.ts +10 -0
  40. package/src/domain/shopping/enums/pagarme-v5-payment-status.enum.d.ts +24 -0
  41. package/src/domain/shopping/enums/payment-providers.enum.d.ts +2 -1
  42. package/src/domain/shopping/enums/transaction-payment-methods.enum.d.ts +5 -0
  43. package/src/domain/shopping/factories/index.d.ts +1 -0
  44. package/src/domain/shopping/factories/mercado-pago-payment-method.factory.d.ts +11 -0
  45. package/src/domain/shopping/factories/payment-provider.factory.d.ts +2 -0
  46. package/src/domain/shopping/interfaces/payment-provider-card.interface.d.ts +10 -2
  47. package/src/domain/shopping/models/enums/index.d.ts +3 -0
  48. package/src/domain/shopping/models/enums/order-status.enum.d.ts +2 -1
  49. package/src/domain/shopping/models/enums/shopping-recurrence-cycle.enum.d.ts +5 -0
  50. package/src/domain/shopping/models/enums/shopping-recurrence-edition-status.enum.d.ts +11 -0
  51. package/src/domain/shopping/models/enums/shopping-recurrence-status.enum.d.ts +7 -0
  52. package/src/domain/shopping/models/index.d.ts +1 -0
  53. package/src/domain/shopping/models/line-item.d.ts +1 -0
  54. package/src/domain/shopping/models/order-blocked.d.ts +5 -0
  55. package/src/domain/shopping/models/order.d.ts +19 -0
  56. package/src/domain/shopping/models/payment-transaction.d.ts +19 -2
  57. package/src/domain/shopping/models/payment.d.ts +3 -1
  58. package/src/domain/shopping/models/recurrence/index.d.ts +3 -0
  59. package/src/domain/shopping/models/recurrence/shopping-recurrence-edition.d.ts +18 -0
  60. package/src/domain/shopping/models/recurrence/shopping-recurrence-error-log.d.ts +9 -0
  61. package/src/domain/shopping/models/recurrence/shopping-recurrence.d.ts +45 -0
  62. package/src/domain/shopping/models/shipping-method.d.ts +2 -0
  63. package/src/domain/shopping/models/types/index.d.ts +1 -0
  64. package/src/domain/shopping/models/types/line-item-recurrence.type.d.ts +2 -0
  65. package/src/domain/shopping/repositories/index.d.ts +1 -0
  66. package/src/domain/shopping/repositories/order-blocked.repository.d.ts +5 -0
  67. package/src/domain/shopping/repositories/recurrence/index.d.ts +3 -0
  68. package/src/domain/shopping/repositories/recurrence/shopping-recurrence-edition.repository.d.ts +4 -0
  69. package/src/domain/shopping/repositories/recurrence/shopping-recurrence-error-log.repository.d.ts +4 -0
  70. package/src/domain/shopping/repositories/recurrence/shopping-recurrence.repository.d.ts +9 -0
  71. package/src/domain/shopping/services/antifraud-card.service.d.ts +2 -0
  72. package/src/domain/shopping/types/card-info.type.d.ts +1 -0
  73. package/src/domain/shopping/types/checkout-paylod-request.type.d.ts +2 -7
  74. package/src/domain/shopping/types/create-recurrency-payload.type.d.ts +8 -0
  75. package/src/domain/shopping/types/index.d.ts +4 -0
  76. package/src/domain/shopping/types/mercado-pago-card.type.d.ts +14 -0
  77. package/src/domain/shopping/types/mercado-pago-credentials.type.d.ts +5 -0
  78. package/src/domain/shopping/types/pagarme-card.type.d.ts +9 -3
  79. package/src/domain/shopping/types/pagarme-credentials-v5.type.d.ts +4 -0
  80. package/src/domain/shopping/types/pagarme-credentials.type.d.ts +9 -3
  81. package/src/domain/shopping/types/payment-card-info.type.d.ts +6 -1
  82. package/src/domain/users/models/user-payment-method.d.ts +2 -0
  83. package/src/domain/users/models/user.d.ts +1 -0
  84. package/src/errors/enum/error.enum.d.ts +14 -0
  85. package/src/errors/enum/index.d.ts +1 -0
  86. package/src/errors/fraud-validation.error.d.ts +1 -1
  87. package/src/errors/index.d.ts +2 -0
  88. package/src/errors/invalid-checkout.error.d.ts +7 -0
  89. package/src/errors/not-found.error.d.ts +1 -0
  90. package/src/errors/payment.error.d.ts +1 -1
  91. package/src/infra/firebase/firestore/repositories/catalog/category-brand-firestore.repository.d.ts +7 -0
  92. package/src/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +1 -0
  93. package/src/infra/firebase/firestore/repositories/catalog/index.d.ts +1 -0
  94. package/src/infra/firebase/firestore/repositories/shop-settings/index.d.ts +1 -0
  95. package/src/infra/firebase/firestore/repositories/shop-settings/shop-configs-firestore.repository.d.ts +7 -0
  96. package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +3 -0
  97. package/src/infra/firebase/firestore/repositories/shopping/order-blocked-firestore.repository.d.ts +1 -0
  98. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-edition-firestore.repository.d.ts +7 -0
  99. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-error-log-firestore.repository.d.ts +7 -0
  100. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-firestore.repository.d.ts +10 -0
  101. package/src/infra/hasura-graphql/models/index.d.ts +2 -0
  102. package/src/infra/hasura-graphql/models/product-catalog-hasura-graphql.d.ts +16 -0
  103. package/src/infra/hasura-graphql/models/product-stock-entry-hasura-graphql.d.ts +3 -0
  104. package/src/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +7 -0
  105. package/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +1 -0
  106. package/src/infra/hasura-graphql/repositories/catalog/category-product-hasura-graphql.repository.d.ts +2 -0
  107. package/src/infra/hasura-graphql/repositories/catalog/index.d.ts +4 -0
  108. package/src/infra/hasura-graphql/repositories/catalog/product-catalog-hasura-graphql.repository.d.ts +22 -0
  109. package/src/infra/hasura-graphql/repositories/catalog/product-group-hasura-graphql.repository.d.ts +7 -0
  110. package/src/infra/hasura-graphql/repositories/catalog/product-price-log-hasura-graphql.repository.d.ts +7 -0
  111. package/src/infra/hasura-graphql/repositories/catalog/product-stock-entry-hasura-graphql.repository.d.ts +8 -0
  112. package/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +1 -0
  113. package/src/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +1 -0
  114. package/src/infra/index.d.ts +1 -0
  115. package/src/infra/mercado-pago/adapters/index.d.ts +3 -0
  116. package/src/infra/mercado-pago/adapters/mercado-pago-base-axios.d.ts +11 -0
  117. package/src/infra/mercado-pago/adapters/mercado-pago-boleto-payment-axios.adapter.d.ts +8 -0
  118. package/src/infra/mercado-pago/adapters/mercado-pago-card-payment-axios.adapter.d.ts +22 -0
  119. package/src/infra/mercado-pago/adapters/mercado-pago-pix-payment-axios.adapter.d.ts +8 -0
  120. package/src/infra/mercado-pago/enums/index.d.ts +2 -0
  121. package/src/infra/mercado-pago/enums/mercado-pago-status-detail.enum.d.ts +33 -0
  122. package/src/infra/mercado-pago/enums/mercado-pago-status.enum.d.ts +10 -0
  123. package/src/infra/mercado-pago/helpers/index.d.ts +3 -0
  124. package/src/infra/mercado-pago/helpers/mercado-pago-errors.helper.d.ts +3 -0
  125. package/src/infra/mercado-pago/helpers/mercado-pago-request.helper.d.ts +60 -0
  126. package/src/infra/mercado-pago/helpers/mercado-pago-response.helper.d.ts +10 -0
  127. package/src/infra/mercado-pago/index.d.ts +4 -0
  128. package/src/infra/mercado-pago/types/index.d.ts +3 -0
  129. package/src/infra/mercado-pago/types/mercado-pago-request.type.d.ts +1 -0
  130. package/src/infra/mercado-pago/types/mercado-pago-response.type.d.ts +211 -0
  131. package/src/infra/mercado-pago/types/mercado-pago-status-detail.type.d.ts +2 -0
  132. package/src/infra/mercado-pago/types/mercado-pago-status.type.d.ts +2 -0
  133. package/src/infra/pagarme/adapters/helpers/index.d.ts +3 -0
  134. package/src/infra/pagarme/adapters/helpers/pagarme-blocked-order.helper.d.ts +7 -2
  135. package/src/infra/pagarme/adapters/helpers/pagarme-errors.helper.d.ts +3 -0
  136. package/src/infra/pagarme/adapters/helpers/pagarme-v5-request.helper.d.ts +13 -0
  137. package/src/infra/pagarme/adapters/helpers/pagarme-v5-response.helper.d.ts +10 -0
  138. package/src/infra/pagarme/adapters/index.d.ts +2 -3
  139. package/src/infra/pagarme/adapters/v4/index.d.ts +3 -0
  140. package/src/infra/pagarme/adapters/{pagarme-bank-slip-payment-axios.adapter.d.ts → v4/pagarme-bank-slip-payment-axios.adapter.d.ts} +4 -4
  141. package/src/infra/pagarme/adapters/{pagarme-card-payment-axios.adapter.d.ts → v4/pagarme-card-payment-axios.adapter.d.ts} +7 -6
  142. package/src/infra/pagarme/adapters/{pagarme-pix-payment-axios.adapter.d.ts → v4/pagarme-pix-payment-axios.adapter.d.ts} +4 -4
  143. package/src/infra/pagarme/adapters/v5/index.d.ts +4 -0
  144. package/src/infra/pagarme/adapters/v5/pagarmev5-bank-slip-payment-axios.adapter.d.ts +11 -0
  145. package/src/infra/pagarme/adapters/v5/pagarmev5-base-axios.d.ts +11 -0
  146. package/src/infra/pagarme/adapters/v5/pagarmev5-card-payment-axios.adapter.d.ts +25 -0
  147. package/src/infra/pagarme/adapters/v5/pagarmev5-pix-payment-axios.adapter.d.ts +11 -0
  148. package/src/infra/pagarme/index.d.ts +1 -0
  149. package/src/infra/pagarme/types/index.d.ts +1 -0
  150. package/src/infra/pagarme/types/v5/index.d.ts +4 -0
  151. package/src/infra/pagarme/types/v5/pagarmev5-customer.type.d.ts +19 -0
  152. package/src/infra/pagarme/types/v5/pagarmev5-order-request-payload.type.d.ts +91 -0
  153. package/src/infra/pagarme/types/v5/pagarmev5-order-response.type.d.ts +241 -0
  154. package/src/infra/pagarme/types/v5/pagarmev5-postback-response.type.d.ts +11 -0
  155. package/src/utils/index.d.ts +3 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect",
3
- "version": "5.3.0-beta.3",
3
+ "version": "5.3.0-beta.30",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },
@@ -11,7 +11,8 @@
11
11
  "dependencies": {
12
12
  "axios": "^0.27.2",
13
13
  "class-transformer": "^0.5.1",
14
- "date-fns": "^2.28.0",
14
+ "date-fns": "2.28.0",
15
+ "date-fns-tz": "2.0.1",
15
16
  "debug": "^4.3.4",
16
17
  "firebase": "^10.12.0",
17
18
  "gql-query-builder": "3.7.0",
@@ -0,0 +1,17 @@
1
+ import { BaseModel, GenericIdentifier } from '../../generic/model/base.model';
2
+ import { Shops } from './enums';
3
+ export declare class BrandCategory extends BaseModel<BrandCategory> {
4
+ id: string;
5
+ name: string;
6
+ slug: string;
7
+ brand_category: boolean;
8
+ published: boolean;
9
+ images?: string[];
10
+ brand_logo?: string;
11
+ brand_banner?: string;
12
+ brand_banner_mobile?: string;
13
+ shops: Shops[];
14
+ get glamImages(): any;
15
+ get mensImages(): any;
16
+ static get identifiersFields(): GenericIdentifier[];
17
+ }
@@ -46,7 +46,19 @@ export declare class Category extends BaseModel<Category> {
46
46
  brandBanner: string;
47
47
  brandBannerMobile: string;
48
48
  };
49
+ get glamBeautyImages(): {
50
+ image: string;
51
+ brandBanner: string;
52
+ brandBannerMobile: string;
53
+ };
54
+ get ellaImages(): {
55
+ image: string;
56
+ brandBanner: string;
57
+ brandBannerMobile: string;
58
+ };
49
59
  get glamMetadata(): CategoryMetadata;
50
60
  get mensMetadata(): CategoryMetadata;
61
+ get glamBeautyMetadata(): CategoryMetadata;
62
+ get ellaMetadata(): CategoryMetadata;
51
63
  getMostRelevantByShop(shop: Shops): string[];
52
64
  }
@@ -2,5 +2,7 @@ export declare enum Shops {
2
2
  MENSMARKET = "mensmarket",
3
3
  GLAMSHOP = "Glamshop",
4
4
  GLAMPOINTS = "Glampoints",
5
+ GLAMBEAUTY = "Glambeauty",
6
+ ELLA = "ella",
5
7
  ALL = "ALL"
6
8
  }
@@ -1,4 +1,5 @@
1
1
  export * from './category';
2
+ export * from './category-brand';
2
3
  export * from './category-collection-children';
3
4
  export * from './category-filter';
4
5
  export * from './category-product';
@@ -9,7 +10,10 @@ export * from './group';
9
10
  export * from './kit-product';
10
11
  export * from './product';
11
12
  export * from './product-errors';
13
+ export * from './product-group';
14
+ export * from './product-price-log';
12
15
  export * from './product-review';
16
+ export * from './product-stock-entry';
13
17
  export * from './product-stock-notification';
14
18
  export * from './types';
15
19
  export * from './variant';
@@ -19,12 +19,14 @@ export declare class ProductBase<T extends ProductBase<T, I>, I = ProductIdentif
19
19
  costPrice: number;
20
20
  images?: string[];
21
21
  miniatures?: string[];
22
+ imagesCard?: string[];
22
23
  published: boolean;
23
24
  createdAt?: Date;
24
25
  updatedAt?: Date;
25
26
  brand: string;
26
27
  tagsCollection?: string[];
27
28
  tagsProfile?: string[];
29
+ tagsSupply?: string[];
28
30
  filters?: string[];
29
31
  type?: string;
30
32
  categories?: string[];
@@ -37,8 +39,16 @@ export declare class ProductBase<T extends ProductBase<T, I>, I = ProductIdentif
37
39
  outlet?: boolean;
38
40
  label?: ProductLabel;
39
41
  group?: number;
42
+ groupId?: number;
40
43
  validity: boolean;
41
44
  daysOfUse?: number;
45
+ variantSlug?: string;
46
+ caixariaMinima?: number;
47
+ suppliers?: {
48
+ clientId: number;
49
+ name: string;
50
+ }[];
51
+ curve?: string;
42
52
  category: Category;
43
53
  kitProducts?: KitProduct[];
44
54
  reviews?: ProductReview[];
@@ -0,0 +1,12 @@
1
+ import { BaseModel, GenericIdentifier } from '../../generic';
2
+ export declare class ProductGroup extends BaseModel<ProductGroup> {
3
+ id: string;
4
+ name: string;
5
+ description?: string;
6
+ markupMin: number;
7
+ markupWithoutCompetitor?: number;
8
+ discountCompetitor?: number;
9
+ subscriberDiscountPercentage?: number;
10
+ dynamicPrecification: boolean;
11
+ static get identifiersFields(): GenericIdentifier[];
12
+ }
@@ -0,0 +1,25 @@
1
+ import { BaseModel, GenericIdentifier } from '../../generic';
2
+ import { ProductCompetitorsPrice } from './types';
3
+ export declare class ProductPriceLog extends BaseModel<ProductPriceLog> {
4
+ id: string;
5
+ productId: string;
6
+ productEAN: string;
7
+ productSKU: string;
8
+ productName: string;
9
+ productCostPrice: number;
10
+ productPrice: number;
11
+ productSubscriberPrice: number;
12
+ productSubscriberDiscountPercentage: number;
13
+ markupMin: number;
14
+ markupWithoutCompetitor: number;
15
+ discountCompetitor: number;
16
+ minViablePrice: number;
17
+ targetPrice: number;
18
+ groupId?: string;
19
+ competitorsAndPrices?: ProductCompetitorsPrice[];
20
+ competitorsPrices?: number[];
21
+ competitorsMinPrice?: number;
22
+ competitorsSellerMinPrice?: string;
23
+ statusPrecificacao: string;
24
+ static get identifiersFields(): GenericIdentifier[];
25
+ }
@@ -1,5 +1,6 @@
1
1
  import { BaseModel, GenericIdentifier } from '../../generic/model';
2
2
  import { Shops } from './enums';
3
+ import type { Product } from './product';
3
4
  export declare class ProductReview extends BaseModel<ProductReview> {
4
5
  id: number;
5
6
  productId: string;
@@ -16,5 +17,6 @@ export declare class ProductReview extends BaseModel<ProductReview> {
16
17
  orderId?: string;
17
18
  createdAt?: Date;
18
19
  updatedAt?: Date;
20
+ product: Product;
19
21
  static get identifiersFields(): GenericIdentifier[];
20
22
  }
@@ -0,0 +1,16 @@
1
+ import { BaseModel, GenericIdentifier } from '../../generic/model';
2
+ export declare class ProductStockEntry extends BaseModel<ProductStockEntry> {
3
+ id: number;
4
+ productId: string;
5
+ codProduct: string;
6
+ productDescription: string;
7
+ eventDescription: string;
8
+ invoiceValue: number;
9
+ price: number;
10
+ quantity: number;
11
+ invoiceId: number;
12
+ nfeKey: string;
13
+ batch: string;
14
+ createdAt: Date;
15
+ static get identifiersFields(): GenericIdentifier[];
16
+ }
@@ -2,5 +2,6 @@ import { ProductBase } from './product-base';
2
2
  import { Variant } from './variant';
3
3
  export declare class Product extends ProductBase<Product> {
4
4
  hasVariants: boolean;
5
+ showVariants: boolean;
5
6
  variants?: Variant[];
6
7
  }
@@ -0,0 +1,13 @@
1
+ import { CategoryImages } from './category-images.type';
2
+ export type BrandsShopMenu = {
3
+ id: string;
4
+ name: string;
5
+ slug: string;
6
+ brand_category: boolean;
7
+ published: boolean;
8
+ images: CategoryImages;
9
+ shops?: string[];
10
+ brand_logo?: string;
11
+ brand_banner?: string;
12
+ brand_banner_mobile?: string;
13
+ };
@@ -1,8 +1,10 @@
1
1
  export * from './brand-equity-option.type';
2
+ export * from './brands-shop-menu.type';
2
3
  export * from './category-condition.type';
3
4
  export * from './category-images.type';
4
5
  export * from './category-metadata.type';
5
6
  export * from './category-most-relevant.type';
7
+ export * from './product-competitors-price';
6
8
  export * from './product-evaluation.type';
7
9
  export * from './product-gender.type';
8
10
  export * from './product-label.type';
@@ -0,0 +1,6 @@
1
+ export type ProductCompetitorsPrice = {
2
+ competitorId: string;
3
+ competitorUrl?: string;
4
+ price?: number;
5
+ offerPrice?: number;
6
+ };
@@ -0,0 +1,4 @@
1
+ import { CrudRepository } from '../../generic/repository/crud.repository';
2
+ import { BrandCategory } from '../models';
3
+ export interface BrandCategoryRepository extends CrudRepository<BrandCategory> {
4
+ }
@@ -8,4 +8,6 @@ export interface CategoryProductRepository extends CrudRepository<CategoryProduc
8
8
  order: number;
9
9
  }[]): Promise<void>;
10
10
  addProductToCategories(productId: string, categoryIds: string[]): Promise<void>;
11
+ removeProductFromAllCategories(productId: string): Promise<void>;
12
+ removeCategoryFromAllProducts(categoryId: string): Promise<void>;
11
13
  }
@@ -38,5 +38,6 @@ export interface CategoryRepository<T extends Category = Category> extends CrudR
38
38
  cache?: RepositoryCacheOptions;
39
39
  }): Promise<Category[]>;
40
40
  isChild(id: number, parentId: number): Promise<boolean>;
41
+ getBrandsWithProducts(): Promise<Category[]>;
41
42
  }
42
43
  export {};
@@ -1,3 +1,4 @@
1
+ export * from './category-brand.repository';
1
2
  export * from './category-collection-children.repository';
2
3
  export * from './category-filter.repository';
3
4
  export * from './category-product.repository';
@@ -5,8 +6,12 @@ export * from './category.repository';
5
6
  export * from './filter-option.repository';
6
7
  export * from './filter.repository';
7
8
  export * from './group.repository';
9
+ export * from './product-catalog.repository';
8
10
  export * from './product-errors.repository';
11
+ export * from './product-group.repository';
12
+ export * from './product-price-log.repository';
9
13
  export * from './product-reviews.repository';
14
+ export * from './product-stock-entry.repository';
10
15
  export * from './product-stock-notification.repository';
11
16
  export * from './product.repository';
12
17
  export * from './subscription-product.repository';
@@ -0,0 +1,17 @@
1
+ import { ProductHasuraGraphQL } from '../../../infra';
2
+ import { FindRepositoryParams, RepositoryCacheOptions, RepositoryFindResult } from '../../generic';
3
+ import { Product, ProductGender } from '../models';
4
+ export interface ProductCatalogRepository {
5
+ get({ id }: {
6
+ id: string;
7
+ }): Promise<Product>;
8
+ find(params?: FindRepositoryParams<ProductHasuraGraphQL>, optionsParams?: {
9
+ cache?: RepositoryCacheOptions;
10
+ }): Promise<RepositoryFindResult<ProductHasuraGraphQL>>;
11
+ getByEAN(EAN: string, options?: {
12
+ cache?: RepositoryCacheOptions;
13
+ }): Promise<Product>;
14
+ findCatalog(params: FindRepositoryParams<Product>, mainGender?: Extract<ProductGender, 'female' | 'male' | 'unisex'>, options?: {
15
+ cache?: RepositoryCacheOptions;
16
+ }): Promise<RepositoryFindResult<Product>>;
17
+ }
@@ -0,0 +1,4 @@
1
+ import { CrudRepository } from '../../generic/repository/crud.repository';
2
+ import { ProductGroup } from '../models';
3
+ export interface ProductGroupRepository extends CrudRepository<ProductGroup> {
4
+ }
@@ -0,0 +1,4 @@
1
+ import { CrudRepository } from '../../generic/repository/crud.repository';
2
+ import { ProductPriceLog } from '../models';
3
+ export interface ProductPriceLogRepository extends CrudRepository<ProductPriceLog> {
4
+ }
@@ -0,0 +1,4 @@
1
+ import { CrudRepository } from '../../generic/repository/crud.repository';
2
+ import { ProductStockEntry } from '../models';
3
+ export interface ProductStockEntryRepository extends CrudRepository<ProductStockEntry> {
4
+ }
@@ -15,5 +15,6 @@ export declare enum ShopPageName {
15
15
  LP_GLAMPARTNER_PROMOTION = "LP_GLAMPARTNER_PROMOTION",
16
16
  LP_GLAMQUEENS = "LP_GLAMQUEENS",
17
17
  LP_INVITE = "LP_INVITE",
18
- LP_LIVELO = "LP_LIVELO"
18
+ LP_LIVELO = "LP_LIVELO",
19
+ GLAM_NEW_HOME = "GLAM_NEW_HOME"
19
20
  }
@@ -1,5 +1,5 @@
1
1
  import { BaseModel, GenericIdentifier } from '../../generic/model';
2
- import { Banner, Benefit, HomeDataStructure, ShopSameDayNotAvailable } from './types';
2
+ import { Banner, Benefit, HomeDataStructure, ShopSameDayNotAvailable, ShippingThresholds } from './types';
3
3
  export declare class Home extends BaseModel<Home> {
4
4
  benefitsSection: Benefit[];
5
5
  blockBanners: Banner[];
@@ -15,5 +15,6 @@ export declare class Home extends BaseModel<Home> {
15
15
  data: HomeDataStructure;
16
16
  minValueForFreeShipping: number;
17
17
  sameDayNotAvaliable: ShopSameDayNotAvailable;
18
+ shippingThresholds?: ShippingThresholds;
18
19
  static get identifiersFields(): GenericIdentifier[];
19
20
  }
@@ -1,6 +1,7 @@
1
1
  export * from './campaign';
2
2
  export * from './campaign-banner';
3
3
  export * from './home';
4
+ export * from './shop-configs';
4
5
  export * from './shop-menu';
5
- export * from './shop-settings';
6
+ export * from './shop-page-settings';
6
7
  export * from './types';
@@ -0,0 +1,18 @@
1
+ import { BaseModel, GenericIdentifier } from '../../generic/model';
2
+ import { LimitOrders, ShopErrorMessages, ShopSameDayNotAvailable } from './types';
3
+ export declare class ShopConfigs extends BaseModel<ShopConfigs> {
4
+ errors?: ShopErrorMessages[];
5
+ antifraude?: {
6
+ enabled: boolean;
7
+ week: {
8
+ subscriber: LimitOrders;
9
+ nonSubscriber: LimitOrders;
10
+ };
11
+ day: {
12
+ subscriber: LimitOrders;
13
+ nonSubscriber: LimitOrders;
14
+ };
15
+ };
16
+ sameDayNotAvaliable?: ShopSameDayNotAvailable;
17
+ static get identifiersFields(): GenericIdentifier[];
18
+ }
@@ -1,15 +1,18 @@
1
1
  import { BaseModel, GenericIdentifier } from '../../generic/model';
2
2
  import { ShopPageName } from '../enums';
3
3
  import { Section } from './types';
4
+ import { DisplayRules, SectionUnion, ShopPageSection } from './types/shop-page-section.type';
4
5
  export declare class ShopSettings extends BaseModel<ShopSettings> {
5
6
  id: string | ShopPageName;
6
7
  name: string;
7
8
  shop: string;
8
- sections: Section<any>;
9
+ preview?: string;
10
+ sections: Section<any> | ShopPageSection[];
9
11
  descriptionMeta?: string;
10
12
  titleMeta?: string;
11
13
  imageMeta?: string;
12
14
  hasMultiples?: boolean;
13
15
  pagePath?: string;
14
16
  static get identifiersFields(): GenericIdentifier[];
17
+ getPageSections(displayRules: DisplayRules): SectionUnion[];
15
18
  }
@@ -4,15 +4,18 @@ export * from './brands-carousel.type';
4
4
  export * from './campaign-page';
5
5
  export * from './home-data.type';
6
6
  export * from './landing-page';
7
+ export * from './limit-orders.type';
7
8
  export * from './menu-nav.type';
8
9
  export * from './sections.type';
9
10
  export * from './shop-banner.type';
10
11
  export * from './shop-brands.type';
11
12
  export * from './shop-carousel.type';
12
13
  export * from './shop-collection.type';
14
+ export * from './shop-error-messages.type';
13
15
  export * from './shop-gift.type';
14
16
  export * from './shop-home';
15
17
  export * from './shop-post.type';
16
18
  export * from './shop-sameday-not-available';
17
19
  export * from './shop-section.type';
20
+ export * from './shipping-thresholds.type';
18
21
  export * from './sub-menu.type';
@@ -0,0 +1,7 @@
1
+ export type LimitOrders = {
2
+ cpf: number;
3
+ email: number;
4
+ phone: number;
5
+ zip: number;
6
+ card?: number;
7
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Thresholds de frete grátis configurados no documento Home (Firestore `dms/glamshop`).
3
+ *
4
+ * - `edition`: valor mínimo para frete grátis "junto com a edição" (assinante com
5
+ * edição pendente).
6
+ * - `avulsoSp`: valor mínimo para frete grátis avulso no estado de São Paulo.
7
+ * - `avulsoOutro`: valor mínimo para frete grátis avulso nos demais estados
8
+ * (`null` quando não há frete grátis fora de SP).
9
+ *
10
+ * Todos os campos são opcionais para preservar compatibilidade com documentos
11
+ * Home que ainda não possuam essa estrutura.
12
+ */
13
+ export interface ShippingThresholds {
14
+ edition?: number;
15
+ avulsoSp?: number;
16
+ avulsoOutro?: number | null;
17
+ }
@@ -0,0 +1,10 @@
1
+ import { ErrorsCode } from '../../../../errors';
2
+ export type ShopErrorMessages = {
3
+ code: ErrorsCode;
4
+ title: string;
5
+ message: string;
6
+ additionalInfo?: string;
7
+ icon?: string;
8
+ buttonText?: string;
9
+ description?: string;
10
+ };
@@ -0,0 +1,140 @@
1
+ export type ShopPageSection = Array<SectionUnion>;
2
+ export type SectionUnion = SectionLive | SectionCarousel | SectionBanner | SectionInfobars | SectionHighlights | SectionSubscriberInfo | SectionCollection | SectionBeautyProfileCollection | SectionPlans | SectionSinglePlan | SectionBrands | SectionNewsletter;
3
+ export declare enum ShopPageSectionType {
4
+ LIVE = "LIVE",
5
+ CAROUSEL = "CAROUSEL",
6
+ BANNER = "BANNER",
7
+ INFOBARS = "INFOBARS",
8
+ HIGHLIGHTS = "HIGHLIGHTS",
9
+ SUBSCRIBER_INFO = "SUBSCRIBER_INFO",
10
+ COLLECTION = "COLLECTION",
11
+ BEAUTY_PROFILE_COLLECTION = "BEAUTY_PROFILE_COLLECTION",
12
+ PLANS = "PLANS",
13
+ SINGLE_PLAN = "SINGLE_PLAN",
14
+ BRANDS = "BRANDS",
15
+ NEWSLETTER = "NEWSLETTER"
16
+ }
17
+ export type SectionLive = {
18
+ id: string;
19
+ type: ShopPageSectionType.LIVE;
20
+ fixed: boolean;
21
+ editable: boolean;
22
+ title: string;
23
+ link: string;
24
+ active: boolean;
25
+ };
26
+ export type SectionCarousel = {
27
+ id: string;
28
+ type: ShopPageSectionType.CAROUSEL;
29
+ fixed: boolean;
30
+ editable: boolean;
31
+ banners: Banner[];
32
+ };
33
+ export type SectionInfobars = {
34
+ id: string;
35
+ type: ShopPageSectionType.INFOBARS;
36
+ fixed: boolean;
37
+ editable: boolean;
38
+ infobars: Infobar[];
39
+ };
40
+ export type Infobar = {
41
+ id: string;
42
+ link: string;
43
+ text: string;
44
+ active: boolean;
45
+ };
46
+ export type SectionHighlights = {
47
+ id: string;
48
+ type: ShopPageSectionType.HIGHLIGHTS;
49
+ fixed: boolean;
50
+ editable: boolean;
51
+ highlights: Highlight[];
52
+ };
53
+ export type Highlight = {
54
+ id: string;
55
+ title: string;
56
+ subtitle: string;
57
+ link: string;
58
+ image: string;
59
+ altText: string;
60
+ highlighted: boolean;
61
+ starred: boolean;
62
+ displayRules?: Array<Partial<DisplayRules>>;
63
+ };
64
+ export type SectionSubscriberInfo = {
65
+ id: string;
66
+ type: ShopPageSectionType.SUBSCRIBER_INFO;
67
+ fixed: boolean;
68
+ editable: boolean;
69
+ };
70
+ export type Banner = {
71
+ id: string;
72
+ mobileImage: string;
73
+ desktopImage: string;
74
+ link: string;
75
+ altText: string;
76
+ countdown?: string;
77
+ displayRules?: Array<Partial<DisplayRules>>;
78
+ publishDate?: Date;
79
+ expirationDate?: Date;
80
+ };
81
+ export type SectionBanner = Banner & {
82
+ type: ShopPageSectionType.BANNER;
83
+ fixed: boolean;
84
+ editable: boolean;
85
+ };
86
+ export type SectionCollection = {
87
+ id: string;
88
+ type: ShopPageSectionType.COLLECTION;
89
+ fixed: boolean;
90
+ editable: boolean;
91
+ slug: string;
92
+ title: string;
93
+ categoryId: number;
94
+ displayRules?: Array<Partial<DisplayRules>>;
95
+ publishDate?: Date;
96
+ expirationDate?: Date;
97
+ };
98
+ export type SectionBeautyProfileCollection = {
99
+ id: string;
100
+ type: ShopPageSectionType.BEAUTY_PROFILE_COLLECTION;
101
+ fixed: boolean;
102
+ editable: boolean;
103
+ };
104
+ export type DisplayRules = {
105
+ subscriberBuyer: boolean;
106
+ notSubscriber: boolean;
107
+ subscriberNotBuyer: boolean;
108
+ topBadgeSubscriber: boolean;
109
+ beautyProfile?: boolean;
110
+ };
111
+ export type SectionPlans = {
112
+ id: string;
113
+ type: ShopPageSectionType.PLANS;
114
+ fixed: boolean;
115
+ editable: boolean;
116
+ };
117
+ export type SectionSinglePlan = {
118
+ id: string;
119
+ type: ShopPageSectionType.SINGLE_PLAN;
120
+ fixed: boolean;
121
+ editable: boolean;
122
+ };
123
+ export type Brand = {
124
+ slug: string;
125
+ image: string;
126
+ brandName: string;
127
+ };
128
+ export type SectionBrands = {
129
+ id: string;
130
+ type: ShopPageSectionType.BRANDS;
131
+ fixed: boolean;
132
+ editable: boolean;
133
+ brands: Brand[];
134
+ };
135
+ export type SectionNewsletter = {
136
+ id: string;
137
+ type: ShopPageSectionType.NEWSLETTER;
138
+ fixed: boolean;
139
+ editable: boolean;
140
+ };
@@ -1,5 +1,6 @@
1
1
  export * from './campaign-banner.repository';
2
2
  export * from './campaign.repository';
3
3
  export * from './home.repository';
4
+ export * from './shop-configs.repository';
4
5
  export * from './shop-menu.repository';
5
6
  export * from './shop-settings.repository';
@@ -0,0 +1,4 @@
1
+ import { ShopConfigs } from '../..';
2
+ import { CrudRepository } from '../../generic/repository';
3
+ export interface ShopConfigsRepository extends CrudRepository<ShopConfigs> {
4
+ }
@@ -1,4 +1,4 @@
1
1
  import { CrudRepository } from '../../generic/repository';
2
- import { ShopSettings } from '../models/shop-settings';
2
+ import { ShopSettings } from '../models/shop-page-settings';
3
3
  export interface ShopSettingsRepository extends CrudRepository<ShopSettings> {
4
4
  }
@@ -1,6 +1,9 @@
1
1
  export * from './antifraud-providers.enum';
2
2
  export * from './business-unit.enum';
3
3
  export * from './order-blocked.enum';
4
+ export * from './order-payment-status.enum';
4
5
  export * from './pagarme-payment-status.enum';
6
+ export * from './pagarme-v5-payment-status.enum';
5
7
  export * from './payment-methods.enum';
6
8
  export * from './payment-providers.enum';
9
+ export * from './transaction-payment-methods.enum';
@@ -0,0 +1,10 @@
1
+ export declare enum OrderPaymentStatus {
2
+ 'Em processamento' = "processing",
3
+ 'Autorizada' = "authorized",
4
+ 'Pago' = "paid",
5
+ 'Estornada' = "refunded",
6
+ 'Aguardando pagamento' = "waiting_payment",
7
+ 'Aguardando estorno' = "pending_refund",
8
+ 'Recusada/Não autorizada' = "refused",
9
+ 'Chargedback' = "chargedback"
10
+ }
@@ -0,0 +1,24 @@
1
+ export declare enum PagarMeV5PaymentStatus {
2
+ 'Em processamento' = "processing",
3
+ 'Gerado' = "generated",
4
+ 'Visualizado' = "viewed",
5
+ 'Pago a menor' = "underpaid",
6
+ 'Pago a maior' = "overpaid",
7
+ 'Aguardando pagamento' = "waiting_payment",
8
+ 'Pago' = "paid",
9
+ 'Aguardando estorno' = "pending_refund",
10
+ 'Autorizada pendente de captura' = "authorized_pending_capture",
11
+ 'Não autorizada' = "not_authorized",
12
+ 'Capturada' = "captured",
13
+ 'Aguardando captura' = "waiting_capture",
14
+ 'Com erro' = "with_error",
15
+ 'Estornado' = "refunded",
16
+ 'Cancelado' = "voided",
17
+ 'Falha' = "failed"
18
+ }
19
+ export declare enum PagarMeV5OrderStatus {
20
+ 'Pendente' = "pending",
21
+ 'Pago' = "paid",
22
+ 'Cancelado' = "canceled",
23
+ 'Falha' = "failed"
24
+ }