@infrab4a/connect 5.3.0-beta.26 → 5.3.0-beta.28

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 (43) hide show
  1. package/index.cjs.js +405 -66
  2. package/index.esm.js +401 -67
  3. package/package.json +1 -1
  4. package/src/domain/catalog/models/enums/shops.enum.d.ts +2 -0
  5. package/src/domain/catalog/models/product-base.d.ts +1 -0
  6. package/src/domain/catalog/models/types/product-competitors-price.d.ts +3 -2
  7. package/src/domain/catalog/repositories/category-product.repository.d.ts +2 -0
  8. package/src/domain/shop-settings/enums/shop-page-name.enum.d.ts +2 -1
  9. package/src/domain/shop-settings/models/shop-page-settings.d.ts +4 -1
  10. package/src/domain/shop-settings/models/types/shop-page-section.type.d.ts +140 -0
  11. package/src/domain/shopping/models/enums/index.d.ts +3 -0
  12. package/src/domain/shopping/models/enums/order-status.enum.d.ts +2 -1
  13. package/src/domain/shopping/models/enums/shopping-recurrence-cycle.enum.d.ts +5 -0
  14. package/src/domain/shopping/models/enums/shopping-recurrence-edition-status.enum.d.ts +11 -0
  15. package/src/domain/shopping/models/enums/shopping-recurrence-status.enum.d.ts +7 -0
  16. package/src/domain/shopping/models/index.d.ts +1 -0
  17. package/src/domain/shopping/models/order.d.ts +12 -0
  18. package/src/domain/shopping/models/recurrence/index.d.ts +2 -0
  19. package/src/domain/shopping/models/recurrence/shopping-recurrence-edition.d.ts +18 -0
  20. package/src/domain/shopping/models/recurrence/shopping-recurrence.d.ts +45 -0
  21. package/src/domain/shopping/models/shipping-method.d.ts +2 -0
  22. package/src/domain/shopping/models/types/index.d.ts +1 -0
  23. package/src/domain/shopping/models/types/line-item-recurrence.type.d.ts +2 -0
  24. package/src/domain/shopping/repositories/index.d.ts +1 -0
  25. package/src/domain/shopping/repositories/recurrence/index.d.ts +2 -0
  26. package/src/domain/shopping/repositories/recurrence/shopping-recurrence-edition.repository.d.ts +4 -0
  27. package/src/domain/shopping/repositories/recurrence/shopping-recurrence.repository.d.ts +9 -0
  28. package/src/domain/shopping/types/create-recurrency-payload.type.d.ts +8 -0
  29. package/src/domain/shopping/types/index.d.ts +1 -0
  30. package/src/domain/shopping/types/payment-card-info.type.d.ts +5 -3
  31. package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +2 -0
  32. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-edition-firestore.repository.d.ts +7 -0
  33. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-firestore.repository.d.ts +10 -0
  34. package/src/infra/hasura-graphql/repositories/catalog/category-product-hasura-graphql.repository.d.ts +2 -0
  35. package/src/infra/mercado-pago/adapters/mercado-pago-base-axios.d.ts +11 -0
  36. package/src/infra/mercado-pago/adapters/mercado-pago-card-payment-axios.adapter.d.ts +5 -4
  37. package/src/infra/mercado-pago/adapters/mercado-pago-pix-payment-axios.adapter.d.ts +4 -3
  38. package/src/infra/mercado-pago/types/mercado-pago-response.type.d.ts +23 -0
  39. package/src/infra/pagarme/adapters/v5/index.d.ts +1 -0
  40. package/src/infra/pagarme/adapters/v5/pagarmev5-base-axios.d.ts +11 -0
  41. package/src/infra/pagarme/adapters/v5/pagarmev5-card-payment-axios.adapter.d.ts +5 -4
  42. package/src/infra/pagarme/adapters/v5/pagarmev5-pix-payment-axios.adapter.d.ts +4 -3
  43. package/src/infra/pagarme/types/v5/pagarmev5-order-response.type.d.ts +115 -0
package/index.cjs.js CHANGED
@@ -715,6 +715,8 @@ exports.Shops = void 0;
715
715
  Shops["MENSMARKET"] = "mensmarket";
716
716
  Shops["GLAMSHOP"] = "Glamshop";
717
717
  Shops["GLAMPOINTS"] = "Glampoints";
718
+ Shops["GLAMBEAUTY"] = "Glambeauty";
719
+ Shops["ELLA"] = "ella";
718
720
  Shops["ALL"] = "ALL";
719
721
  })(exports.Shops || (exports.Shops = {}));
720
722
 
@@ -1691,8 +1693,38 @@ exports.OrderStatus = void 0;
1691
1693
  OrderStatus["ENTREGUE"] = "Entregue";
1692
1694
  OrderStatus["CANCELADO"] = "Cancelado";
1693
1695
  OrderStatus["PENDENTE_REENVIO"] = "Pendente reenvio";
1696
+ OrderStatus["AGUARDANDO_STOCK_REENVIO"] = "Aguardando stock para reenvio";
1694
1697
  })(exports.OrderStatus || (exports.OrderStatus = {}));
1695
1698
 
1699
+ exports.ShoppingRecurrenceCycle = void 0;
1700
+ (function (ShoppingRecurrenceCycle) {
1701
+ ShoppingRecurrenceCycle[ShoppingRecurrenceCycle["MONTHLY"] = 1] = "MONTHLY";
1702
+ ShoppingRecurrenceCycle[ShoppingRecurrenceCycle["BIMONTHLY"] = 2] = "BIMONTHLY";
1703
+ ShoppingRecurrenceCycle[ShoppingRecurrenceCycle["QUARTERLY"] = 3] = "QUARTERLY";
1704
+ })(exports.ShoppingRecurrenceCycle || (exports.ShoppingRecurrenceCycle = {}));
1705
+
1706
+ exports.ShoppingRecurrenceEditionStatus = void 0;
1707
+ (function (ShoppingRecurrenceEditionStatus) {
1708
+ ShoppingRecurrenceEditionStatus["SCHEDULED"] = "scheduled";
1709
+ ShoppingRecurrenceEditionStatus["PAUSED"] = "paused";
1710
+ ShoppingRecurrenceEditionStatus["SKIPPED"] = "skipped";
1711
+ ShoppingRecurrenceEditionStatus["PROCESSING"] = "processing";
1712
+ ShoppingRecurrenceEditionStatus["FINISHED"] = "finished";
1713
+ ShoppingRecurrenceEditionStatus["PAYMENT_FAIL"] = "payment_fail";
1714
+ ShoppingRecurrenceEditionStatus["AWAITING_PAYMENT"] = "awaiting_payment";
1715
+ ShoppingRecurrenceEditionStatus["STOCK_VALIDATION"] = "stock_validation";
1716
+ ShoppingRecurrenceEditionStatus["CANCELLED"] = "cancelled";
1717
+ })(exports.ShoppingRecurrenceEditionStatus || (exports.ShoppingRecurrenceEditionStatus = {}));
1718
+
1719
+ exports.ShoppingRecurrenceStatus = void 0;
1720
+ (function (ShoppingRecurrenceStatus) {
1721
+ ShoppingRecurrenceStatus["ACTIVE"] = "active";
1722
+ ShoppingRecurrenceStatus["PAUSED"] = "paused";
1723
+ ShoppingRecurrenceStatus["CANCELLED"] = "cancelled";
1724
+ ShoppingRecurrenceStatus["PAYMENT_FAILED"] = "payment_failed";
1725
+ ShoppingRecurrenceStatus["WAITING_STOCK"] = "waiting_stock";
1726
+ })(exports.ShoppingRecurrenceStatus || (exports.ShoppingRecurrenceStatus = {}));
1727
+
1696
1728
  class Order extends Checkout {
1697
1729
  }
1698
1730
  tslib.__decorate([
@@ -1706,6 +1738,38 @@ class OrderBlocked extends BaseModel {
1706
1738
  }
1707
1739
  }
1708
1740
 
1741
+ class ShoppingRecurrence extends BaseModel {
1742
+ static get identifiersFields() {
1743
+ return ['id'];
1744
+ }
1745
+ }
1746
+ tslib.__decorate([
1747
+ classTransformer.Type(() => User),
1748
+ tslib.__metadata("design:type", User)
1749
+ ], ShoppingRecurrence.prototype, "user", void 0);
1750
+ tslib.__decorate([
1751
+ classTransformer.Type(() => UserAddress),
1752
+ tslib.__metadata("design:type", UserAddress)
1753
+ ], ShoppingRecurrence.prototype, "shippingAddress", void 0);
1754
+ tslib.__decorate([
1755
+ classTransformer.Type(() => UserAddress),
1756
+ tslib.__metadata("design:type", UserAddress)
1757
+ ], ShoppingRecurrence.prototype, "billingAddress", void 0);
1758
+ tslib.__decorate([
1759
+ classTransformer.Type(() => ShippingMethod),
1760
+ tslib.__metadata("design:type", ShippingMethod)
1761
+ ], ShoppingRecurrence.prototype, "shipping", void 0);
1762
+ tslib.__decorate([
1763
+ classTransformer.Type(() => Coupon),
1764
+ tslib.__metadata("design:type", Coupon)
1765
+ ], ShoppingRecurrence.prototype, "coupon", void 0);
1766
+
1767
+ class ShoppingRecurrenceEdition extends BaseModel {
1768
+ static get identifiersFields() {
1769
+ return ['id'];
1770
+ }
1771
+ }
1772
+
1709
1773
  class CheckoutSubscription extends BaseModel {
1710
1774
  static get identifiersFields() {
1711
1775
  return ['id'];
@@ -2340,6 +2404,7 @@ exports.ShopPageName = void 0;
2340
2404
  ShopPageName["LP_GLAMQUEENS"] = "LP_GLAMQUEENS";
2341
2405
  ShopPageName["LP_INVITE"] = "LP_INVITE";
2342
2406
  ShopPageName["LP_LIVELO"] = "LP_LIVELO";
2407
+ ShopPageName["GLAM_NEW_HOME"] = "GLAM_NEW_HOME";
2343
2408
  })(exports.ShopPageName || (exports.ShopPageName = {}));
2344
2409
 
2345
2410
  class BeautyQuestionsHelper {
@@ -2417,10 +2482,88 @@ class ShopMenu extends BaseModel {
2417
2482
  }
2418
2483
  }
2419
2484
 
2485
+ var ShopPageSectionType;
2486
+ (function (ShopPageSectionType) {
2487
+ ShopPageSectionType["LIVE"] = "LIVE";
2488
+ ShopPageSectionType["CAROUSEL"] = "CAROUSEL";
2489
+ ShopPageSectionType["BANNER"] = "BANNER";
2490
+ ShopPageSectionType["INFOBARS"] = "INFOBARS";
2491
+ ShopPageSectionType["HIGHLIGHTS"] = "HIGHLIGHTS";
2492
+ ShopPageSectionType["SUBSCRIBER_INFO"] = "SUBSCRIBER_INFO";
2493
+ ShopPageSectionType["COLLECTION"] = "COLLECTION";
2494
+ ShopPageSectionType["BEAUTY_PROFILE_COLLECTION"] = "BEAUTY_PROFILE_COLLECTION";
2495
+ ShopPageSectionType["PLANS"] = "PLANS";
2496
+ ShopPageSectionType["SINGLE_PLAN"] = "SINGLE_PLAN";
2497
+ ShopPageSectionType["BRANDS"] = "BRANDS";
2498
+ ShopPageSectionType["NEWSLETTER"] = "NEWSLETTER";
2499
+ })(ShopPageSectionType || (ShopPageSectionType = {}));
2500
+
2501
+ /* eslint-disable max-lines-per-function */
2420
2502
  class ShopSettings extends BaseModel {
2421
2503
  static get identifiersFields() {
2422
2504
  return ['id'];
2423
2505
  }
2506
+ getPageSections(displayRules) {
2507
+ const now = new Date();
2508
+ return (Array.isArray(this.sections) ? this.sections : [])
2509
+ .map((section) => {
2510
+ // Filtra banners dentro de carrousel
2511
+ if (section.type === ShopPageSectionType.CAROUSEL && Array.isArray(section.banners)) {
2512
+ const filteredBanners = section.banners.filter((banner) => {
2513
+ // Filtra por displayRules
2514
+ const rulesMatch = banner.displayRules.length
2515
+ ? banner.displayRules.some((rule) => Object.keys(rule).every((key) => rule[key] === displayRules[key]))
2516
+ : true;
2517
+ // Filtra por publishDate e expirationDate
2518
+ const publishOk = !banner.publishDate || now >= new Date(banner.publishDate);
2519
+ const expireOk = !banner.expirationDate || now <= new Date(banner.expirationDate);
2520
+ return rulesMatch && publishOk && expireOk;
2521
+ });
2522
+ return { ...section, banners: filteredBanners };
2523
+ }
2524
+ // Filtra highlights
2525
+ if (section.type === ShopPageSectionType.HIGHLIGHTS && Array.isArray(section.highlights)) {
2526
+ const filteredHighlights = section.highlights.filter((highlight) => {
2527
+ // Filtra por displayRules
2528
+ const rulesMatch = highlight.displayRules.length
2529
+ ? highlight.displayRules.some((rule) => Object.keys(rule).every((key) => rule[key] === displayRules[key]))
2530
+ : true;
2531
+ return rulesMatch;
2532
+ });
2533
+ const sortedHighlights = !displayRules.beautyProfile
2534
+ ? filteredHighlights.sort((a, b) => (a.starred === b.starred ? 0 : a.starred ? -1 : 1))
2535
+ : filteredHighlights;
2536
+ return { ...section, highlights: sortedHighlights };
2537
+ }
2538
+ // Filtra collections
2539
+ if (section.type === ShopPageSectionType.COLLECTION) {
2540
+ const rulesMatch = section.displayRules.length
2541
+ ? section.displayRules.some((rule) => Object.keys(rule).every((key) => rule[key] === displayRules[key]))
2542
+ : true;
2543
+ const publishOk = !section.publishDate || now >= new Date(section.publishDate);
2544
+ const expireOk = !section.expirationDate || now <= new Date(section.expirationDate);
2545
+ return rulesMatch && publishOk && expireOk ? section : null;
2546
+ }
2547
+ // Filtra banners
2548
+ if (section.type === ShopPageSectionType.BANNER) {
2549
+ const rulesMatch = section.displayRules.length
2550
+ ? section.displayRules.some((rule) => Object.keys(rule).every((key) => rule[key] === displayRules[key]))
2551
+ : true;
2552
+ const publishOk = !section.publishDate || now >= new Date(section.publishDate);
2553
+ const expireOk = !section.expirationDate || now <= new Date(section.expirationDate);
2554
+ return rulesMatch && publishOk && expireOk ? section : null;
2555
+ }
2556
+ if (section.type === ShopPageSectionType.LIVE) {
2557
+ return section.active ? section : null;
2558
+ }
2559
+ if (section.type === ShopPageSectionType.PLANS || section.type === ShopPageSectionType.SINGLE_PLAN) {
2560
+ return displayRules.notSubscriber ? section : null;
2561
+ }
2562
+ // Demais seções retornam normalmente
2563
+ return section;
2564
+ })
2565
+ .filter(Boolean);
2566
+ }
2424
2567
  }
2425
2568
 
2426
2569
  class AdyenBlockedOrderHelper {
@@ -5427,6 +5570,62 @@ class PaymentFirestoreRepository extends withCrudFirestore(withHelpers(withFires
5427
5570
  }
5428
5571
  }
5429
5572
 
5573
+ class ShoppingRecurrenceEditionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
5574
+ constructor({ firestore, interceptors, cache, }) {
5575
+ super({
5576
+ firestore,
5577
+ collectionName: 'shoppingRecurrenceEditions',
5578
+ model: ShoppingRecurrenceEdition,
5579
+ interceptors,
5580
+ cache,
5581
+ });
5582
+ }
5583
+ }
5584
+
5585
+ class ShoppingRecurrenceFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
5586
+ constructor({ firestore, interceptors, cache, }) {
5587
+ super({
5588
+ firestore,
5589
+ collectionName: 'shoppingRecurrences',
5590
+ model: ShoppingRecurrence,
5591
+ interceptors,
5592
+ cache,
5593
+ });
5594
+ }
5595
+ async findByUserId(userId) {
5596
+ const result = await this.find({
5597
+ filters: {
5598
+ user: {
5599
+ id: userId,
5600
+ },
5601
+ },
5602
+ });
5603
+ return result.data;
5604
+ }
5605
+ async findByUserIdAndStatus(userId, status) {
5606
+ const result = await this.find({
5607
+ filters: {
5608
+ user: {
5609
+ id: userId,
5610
+ },
5611
+ status,
5612
+ },
5613
+ });
5614
+ return result.data;
5615
+ }
5616
+ async findByUserAndShop(userId, shop) {
5617
+ const result = await this.find({
5618
+ filters: {
5619
+ user: {
5620
+ id: userId,
5621
+ },
5622
+ shop,
5623
+ },
5624
+ });
5625
+ return result.data;
5626
+ }
5627
+ }
5628
+
5430
5629
  class SubscriptionPlanFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
5431
5630
  constructor({ firestore, interceptors, cache, }) {
5432
5631
  super({
@@ -7231,6 +7430,26 @@ class CategoryProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withH
7231
7430
  },
7232
7431
  });
7233
7432
  }
7433
+ async removeProductFromAllCategories(productId) {
7434
+ this.logger = DebugHelper.from(this, 'removeProductFromAllCategories');
7435
+ await this.mutation('delete_category_product', ['affected_rows'], {
7436
+ where: {
7437
+ type: 'category_product_bool_exp',
7438
+ required: true,
7439
+ value: { product_id: { _eq: productId } },
7440
+ },
7441
+ });
7442
+ }
7443
+ async removeCategoryFromAllProducts(categoryId) {
7444
+ this.logger = DebugHelper.from(this, 'removeCategoryFromAllProducts');
7445
+ await this.mutation('delete_category_product', ['affected_rows'], {
7446
+ where: {
7447
+ type: 'category_product_bool_exp',
7448
+ required: true,
7449
+ value: { category_id: { _eq: categoryId } },
7450
+ },
7451
+ });
7452
+ }
7234
7453
  }
7235
7454
 
7236
7455
  const fieldsConfiguration$3 = [
@@ -7950,6 +8169,7 @@ const commonFields = [
7950
8169
  'validity',
7951
8170
  { tagsCollection: { columnName: 'tags_collection', type: HasuraGraphQLColumnType.Jsonb } },
7952
8171
  { tagsProfile: { columnName: 'tags_profile', type: HasuraGraphQLColumnType.Jsonb } },
8172
+ { tagsSupply: { columnName: 'tags_supply', type: HasuraGraphQLColumnType.Jsonb } },
7953
8173
  { daysOfUse: { columnName: 'days_of_use' } },
7954
8174
  { showVariants: { columnName: 'show_variants' } },
7955
8175
  { variantSlug: { columnName: 'variant_slug' } },
@@ -8950,6 +9170,7 @@ const fieldsConfiguration$1 = [
8950
9170
  'published',
8951
9171
  { tagsCollection: { columnName: 'tags_collection', type: HasuraGraphQLColumnType.Jsonb } },
8952
9172
  { tagsProfile: { columnName: 'tags_profile', type: HasuraGraphQLColumnType.Jsonb } },
9173
+ { tagsSupply: { columnName: 'tags_supply', type: HasuraGraphQLColumnType.Jsonb } },
8953
9174
  { daysOfUse: { columnName: 'days_of_use' } },
8954
9175
  {
8955
9176
  images: {
@@ -9561,7 +9782,7 @@ class MercadoPagoRequestHelper {
9561
9782
  checkoutId: checkout.id,
9562
9783
  },
9563
9784
  payer: this.buildPayer(checkout, card),
9564
- statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'Glam' : 'Mens Market',
9785
+ statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'loja glam' : 'mens market',
9565
9786
  additional_info: {
9566
9787
  items: this.buildItems(checkout),
9567
9788
  },
@@ -9777,8 +9998,113 @@ class MercadoPagoBankSlipAxiosAdapter {
9777
9998
  }
9778
9999
  }
9779
10000
 
9780
- class MercadoPagoCardAxiosAdapter {
10001
+ exports.MercadoPagoStatusDetailEnum = void 0;
10002
+ (function (MercadoPagoStatusDetailEnum) {
10003
+ MercadoPagoStatusDetailEnum["accredited"] = "accredited";
10004
+ MercadoPagoStatusDetailEnum["partially_refunded"] = "partially_refunded";
10005
+ MercadoPagoStatusDetailEnum["pending_capture"] = "pending_capture";
10006
+ MercadoPagoStatusDetailEnum["offline_process"] = "offline_process";
10007
+ MercadoPagoStatusDetailEnum["pending_contingency"] = "pending_contingency";
10008
+ MercadoPagoStatusDetailEnum["pending_review_manual"] = "pending_review_manual";
10009
+ MercadoPagoStatusDetailEnum["pending_waiting_transfer"] = "pending_waiting_transfer";
10010
+ MercadoPagoStatusDetailEnum["pending_waiting_payment"] = "pending_waiting_payment";
10011
+ MercadoPagoStatusDetailEnum["pending_challenge"] = "pending_challenge";
10012
+ MercadoPagoStatusDetailEnum["bank_error"] = "bank_error";
10013
+ MercadoPagoStatusDetailEnum["cc_rejected_3ds_mandatory"] = "cc_rejected_3ds_mandatory";
10014
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_card_number"] = "cc_rejected_bad_filled_card_number";
10015
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_date"] = "cc_rejected_bad_filled_date";
10016
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_other"] = "cc_rejected_bad_filled_other";
10017
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_security_code"] = "cc_rejected_bad_filled_security_code";
10018
+ MercadoPagoStatusDetailEnum["cc_rejected_blacklist"] = "cc_rejected_blacklist";
10019
+ MercadoPagoStatusDetailEnum["cc_rejected_call_for_authorize"] = "cc_rejected_call_for_authorize";
10020
+ MercadoPagoStatusDetailEnum["cc_rejected_card_disabled"] = "cc_rejected_card_disabled";
10021
+ MercadoPagoStatusDetailEnum["cc_rejected_card_error"] = "cc_rejected_card_error";
10022
+ MercadoPagoStatusDetailEnum["cc_rejected_duplicated_payment"] = "cc_rejected_duplicated_payment";
10023
+ MercadoPagoStatusDetailEnum["cc_rejected_high_risk"] = "cc_rejected_high_risk";
10024
+ MercadoPagoStatusDetailEnum["cc_rejected_insufficient_amount"] = "cc_rejected_insufficient_amount";
10025
+ MercadoPagoStatusDetailEnum["cc_rejected_invalid_installments"] = "cc_rejected_invalid_installments";
10026
+ MercadoPagoStatusDetailEnum["cc_rejected_max_attempts"] = "cc_rejected_max_attempts";
10027
+ MercadoPagoStatusDetailEnum["cc_rejected_other_reason"] = "cc_rejected_other_reason";
10028
+ MercadoPagoStatusDetailEnum["cc_amount_rate_limit_exceeded"] = "cc_amount_rate_limit_exceeded";
10029
+ MercadoPagoStatusDetailEnum["rejected_insufficient_data"] = "rejected_insufficient_data";
10030
+ MercadoPagoStatusDetailEnum["rejected_by_bank"] = "rejected_by_bank";
10031
+ MercadoPagoStatusDetailEnum["rejected_by_regulations"] = "rejected_by_regulations";
10032
+ MercadoPagoStatusDetailEnum["insufficient_amount"] = "insufficient_amount";
10033
+ MercadoPagoStatusDetailEnum["cc_rejected_card_type_not_allowed"] = "cc_rejected_card_type_not_allowed";
10034
+ })(exports.MercadoPagoStatusDetailEnum || (exports.MercadoPagoStatusDetailEnum = {}));
10035
+
10036
+ exports.MercadoPagoStatusEnum = void 0;
10037
+ (function (MercadoPagoStatusEnum) {
10038
+ MercadoPagoStatusEnum["approved"] = "approved";
10039
+ MercadoPagoStatusEnum["authorized"] = "authorized";
10040
+ MercadoPagoStatusEnum["pending"] = "pending";
10041
+ MercadoPagoStatusEnum["in_process"] = "in_process";
10042
+ MercadoPagoStatusEnum["rejected"] = "rejected";
10043
+ MercadoPagoStatusEnum["cancelled"] = "cancelled";
10044
+ MercadoPagoStatusEnum["refunded"] = "refunded";
10045
+ MercadoPagoStatusEnum["charged_back"] = "charged_back";
10046
+ })(exports.MercadoPagoStatusEnum || (exports.MercadoPagoStatusEnum = {}));
10047
+
10048
+ class MercadoPagoBaseAxiosAdapter {
10049
+ constructor(credentials, paymentRepository) {
10050
+ this.credentials = credentials;
10051
+ this.paymentRepository = paymentRepository;
10052
+ }
10053
+ async refund(order, amount) {
10054
+ const { data } = await axios__default["default"]({
10055
+ method: 'POST',
10056
+ url: `${this.credentials.url}/v1/payments/${order.payment.id}/refunds`,
10057
+ headers: {
10058
+ 'X-Idempotency-Key': `${order.payment.charger_id}-${new Date().getTime()}`,
10059
+ Authorization: `Bearer ${this.credentials.api_key}`,
10060
+ 'Content-Type': 'application/json',
10061
+ },
10062
+ data: {
10063
+ amount: +amount.toFixed(2),
10064
+ },
10065
+ });
10066
+ await this.paymentRepository.create({
10067
+ createdAt: new Date(),
10068
+ updatedAt: new Date(),
10069
+ userId: order.user.id,
10070
+ orderId: order.id,
10071
+ totalPrice: amount,
10072
+ paymentProvider: exports.PaymentProviders.MERCADOPAGO,
10073
+ mercadoPagoId: data.id,
10074
+ transaction: data,
10075
+ });
10076
+ console.warn('[RESPONSE MERCADO PAGO REFUND]', JSON.stringify(data));
10077
+ return {
10078
+ status: this.getRefundStatus(data.status),
10079
+ success: [
10080
+ exports.MercadoPagoStatusEnum.approved,
10081
+ exports.MercadoPagoStatusEnum.refunded,
10082
+ exports.MercadoPagoStatusEnum.cancelled,
10083
+ exports.MercadoPagoStatusEnum.authorized,
10084
+ ].includes(data.status)
10085
+ ? true
10086
+ : false,
10087
+ };
10088
+ }
10089
+ getRefundStatus(status) {
10090
+ if ([exports.MercadoPagoStatusEnum.in_process, exports.MercadoPagoStatusEnum.pending].includes(status)) {
10091
+ return 'processing';
10092
+ }
10093
+ if ([
10094
+ exports.MercadoPagoStatusEnum.approved,
10095
+ exports.MercadoPagoStatusEnum.refunded,
10096
+ exports.MercadoPagoStatusEnum.cancelled,
10097
+ exports.MercadoPagoStatusEnum.authorized,
10098
+ ].includes(status)) {
10099
+ return 'success';
10100
+ }
10101
+ return 'unknown';
10102
+ }
10103
+ }
10104
+
10105
+ class MercadoPagoCardAxiosAdapter extends MercadoPagoBaseAxiosAdapter {
9781
10106
  constructor(credentials, paymentRepository, orderBlockedRepository) {
10107
+ super(credentials, paymentRepository);
9782
10108
  this.credentials = credentials;
9783
10109
  this.paymentRepository = paymentRepository;
9784
10110
  this.orderBlockedRepository = orderBlockedRepository;
@@ -9907,8 +10233,9 @@ class MercadoPagoCardAxiosAdapter {
9907
10233
  }
9908
10234
  }
9909
10235
 
9910
- class MercadoPagoPixAxiosAdapter {
10236
+ class MercadoPagoPixAxiosAdapter extends MercadoPagoBaseAxiosAdapter {
9911
10237
  constructor(credentials, paymentRepository) {
10238
+ super(credentials, paymentRepository);
9912
10239
  this.credentials = credentials;
9913
10240
  this.paymentRepository = paymentRepository;
9914
10241
  }
@@ -9947,53 +10274,6 @@ class MercadoPagoPixAxiosAdapter {
9947
10274
  }
9948
10275
  }
9949
10276
 
9950
- exports.MercadoPagoStatusDetailEnum = void 0;
9951
- (function (MercadoPagoStatusDetailEnum) {
9952
- MercadoPagoStatusDetailEnum["accredited"] = "accredited";
9953
- MercadoPagoStatusDetailEnum["partially_refunded"] = "partially_refunded";
9954
- MercadoPagoStatusDetailEnum["pending_capture"] = "pending_capture";
9955
- MercadoPagoStatusDetailEnum["offline_process"] = "offline_process";
9956
- MercadoPagoStatusDetailEnum["pending_contingency"] = "pending_contingency";
9957
- MercadoPagoStatusDetailEnum["pending_review_manual"] = "pending_review_manual";
9958
- MercadoPagoStatusDetailEnum["pending_waiting_transfer"] = "pending_waiting_transfer";
9959
- MercadoPagoStatusDetailEnum["pending_waiting_payment"] = "pending_waiting_payment";
9960
- MercadoPagoStatusDetailEnum["pending_challenge"] = "pending_challenge";
9961
- MercadoPagoStatusDetailEnum["bank_error"] = "bank_error";
9962
- MercadoPagoStatusDetailEnum["cc_rejected_3ds_mandatory"] = "cc_rejected_3ds_mandatory";
9963
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_card_number"] = "cc_rejected_bad_filled_card_number";
9964
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_date"] = "cc_rejected_bad_filled_date";
9965
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_other"] = "cc_rejected_bad_filled_other";
9966
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_security_code"] = "cc_rejected_bad_filled_security_code";
9967
- MercadoPagoStatusDetailEnum["cc_rejected_blacklist"] = "cc_rejected_blacklist";
9968
- MercadoPagoStatusDetailEnum["cc_rejected_call_for_authorize"] = "cc_rejected_call_for_authorize";
9969
- MercadoPagoStatusDetailEnum["cc_rejected_card_disabled"] = "cc_rejected_card_disabled";
9970
- MercadoPagoStatusDetailEnum["cc_rejected_card_error"] = "cc_rejected_card_error";
9971
- MercadoPagoStatusDetailEnum["cc_rejected_duplicated_payment"] = "cc_rejected_duplicated_payment";
9972
- MercadoPagoStatusDetailEnum["cc_rejected_high_risk"] = "cc_rejected_high_risk";
9973
- MercadoPagoStatusDetailEnum["cc_rejected_insufficient_amount"] = "cc_rejected_insufficient_amount";
9974
- MercadoPagoStatusDetailEnum["cc_rejected_invalid_installments"] = "cc_rejected_invalid_installments";
9975
- MercadoPagoStatusDetailEnum["cc_rejected_max_attempts"] = "cc_rejected_max_attempts";
9976
- MercadoPagoStatusDetailEnum["cc_rejected_other_reason"] = "cc_rejected_other_reason";
9977
- MercadoPagoStatusDetailEnum["cc_amount_rate_limit_exceeded"] = "cc_amount_rate_limit_exceeded";
9978
- MercadoPagoStatusDetailEnum["rejected_insufficient_data"] = "rejected_insufficient_data";
9979
- MercadoPagoStatusDetailEnum["rejected_by_bank"] = "rejected_by_bank";
9980
- MercadoPagoStatusDetailEnum["rejected_by_regulations"] = "rejected_by_regulations";
9981
- MercadoPagoStatusDetailEnum["insufficient_amount"] = "insufficient_amount";
9982
- MercadoPagoStatusDetailEnum["cc_rejected_card_type_not_allowed"] = "cc_rejected_card_type_not_allowed";
9983
- })(exports.MercadoPagoStatusDetailEnum || (exports.MercadoPagoStatusDetailEnum = {}));
9984
-
9985
- exports.MercadoPagoStatusEnum = void 0;
9986
- (function (MercadoPagoStatusEnum) {
9987
- MercadoPagoStatusEnum["approved"] = "approved";
9988
- MercadoPagoStatusEnum["authorized"] = "authorized";
9989
- MercadoPagoStatusEnum["pending"] = "pending";
9990
- MercadoPagoStatusEnum["in_process"] = "in_process";
9991
- MercadoPagoStatusEnum["rejected"] = "rejected";
9992
- MercadoPagoStatusEnum["cancelled"] = "cancelled";
9993
- MercadoPagoStatusEnum["refunded"] = "refunded";
9994
- MercadoPagoStatusEnum["charged_back"] = "charged_back";
9995
- })(exports.MercadoPagoStatusEnum || (exports.MercadoPagoStatusEnum = {}));
9996
-
9997
10277
  class PagarmeBankSlipAxiosAdapter {
9998
10278
  constructor(credentials, paymentRepository) {
9999
10279
  this.credentials = credentials;
@@ -10121,6 +10401,14 @@ class PagarMeErrorHelper {
10121
10401
  case '1070':
10122
10402
  case '2001':
10123
10403
  case '2004':
10404
+ case '5025':
10405
+ case '9124':
10406
+ return exports.ErrorsCode.invalidCardError;
10407
+ // Dados obrigatórios ausentes
10408
+ case '1044':
10409
+ case '5034':
10410
+ case '5047':
10411
+ case '5061':
10124
10412
  return exports.ErrorsCode.invalidCardError;
10125
10413
  // Suspeita de fraude, prevenção do banco
10126
10414
  case '1002':
@@ -10132,6 +10420,7 @@ class PagarMeErrorHelper {
10132
10420
  case '2008':
10133
10421
  case '2009':
10134
10422
  case '2010':
10423
+ case '9201':
10135
10424
  return exports.ErrorsCode.fraudPreventionExternal;
10136
10425
  // Recusado pelo banco/emissor
10137
10426
  case '1007':
@@ -10149,19 +10438,10 @@ class PagarMeErrorHelper {
10149
10438
  case '5087':
10150
10439
  return exports.ErrorsCode.insufficientFundsError;
10151
10440
  // Valor solicitado inválido
10441
+ case '5094':
10152
10442
  case '5016':
10153
10443
  case '5092':
10154
10444
  return exports.ErrorsCode.paymentError;
10155
- // Código de segurança inválido ou não enviado
10156
- case '5025':
10157
- case '9124':
10158
- return exports.ErrorsCode.paymentError;
10159
- // Dados obrigatórios ausentes
10160
- case '1044':
10161
- case '5034':
10162
- case '5047':
10163
- case '5061':
10164
- return exports.ErrorsCode.paymentError;
10165
10445
  // Erros internos ou genéricos
10166
10446
  case '5000':
10167
10447
  case '5001':
@@ -10251,10 +10531,9 @@ class PagarMeErrorHelper {
10251
10531
  // Transação não suportada para o banco/emissor
10252
10532
  case '1061':
10253
10533
  return exports.ErrorsCode.paymentError;
10254
- case '5094':
10255
10534
  case '1010':
10256
10535
  case '1046':
10257
- return exports.ErrorsCode.businessError;
10536
+ return exports.ErrorsCode.invalidCheckoutError;
10258
10537
  default:
10259
10538
  return exports.ErrorsCode.paymentError;
10260
10539
  }
@@ -10391,7 +10670,7 @@ class PagarMeV5RequestHelper {
10391
10670
  static getCardOrder(checkout, card) {
10392
10671
  return {
10393
10672
  installments: card.installments,
10394
- statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'Glam' : 'Mens Market',
10673
+ statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'loja glam' : 'mens market',
10395
10674
  card_id: card.cardId,
10396
10675
  card: {
10397
10676
  cvv: card.cardCvv,
@@ -10432,7 +10711,7 @@ class PagarMeV5ResponseHelper {
10432
10711
  const charger = response.charges.at(0);
10433
10712
  const transaction = charger.last_transaction;
10434
10713
  return PaymentTransaction.toInstance({
10435
- acquirer_name: 'pagar_me',
10714
+ acquirer_name: exports.PaymentProviders.PAGARME,
10436
10715
  amount: charger.amount,
10437
10716
  currency: charger.currency,
10438
10717
  gateway_id: charger.gateway_id,
@@ -10784,8 +11063,62 @@ class PagarmeV5BankSlipAxiosAdapter {
10784
11063
  }
10785
11064
  }
10786
11065
 
10787
- class PagarmeV5CardAxiosAdapter {
11066
+ class PagarmeV5BaseAxiosAdapter {
11067
+ constructor(credentials, paymentRepository) {
11068
+ this.credentials = credentials;
11069
+ this.paymentRepository = paymentRepository;
11070
+ }
11071
+ async refund(order, amount) {
11072
+ try {
11073
+ console.warn('[PAGARME REFUND] Starting refund process for order', order.id, order.payment, 'with amount', amount);
11074
+ const amountToSend = +amount.toFixed(2) * 100;
11075
+ console.warn('[PAGARME REFUND] Amount to send in cents', amountToSend);
11076
+ const { data } = await axios__default["default"]({
11077
+ method: 'DELETE',
11078
+ url: `${this.credentials.URL}/charges/${order.payment.charger_id}`,
11079
+ headers: {
11080
+ Authorization: 'Basic ' + Buffer.from(`${this.credentials.API_KEY}:`).toString('base64'),
11081
+ 'Content-Type': 'application/json',
11082
+ },
11083
+ data: {
11084
+ amount: amountToSend,
11085
+ },
11086
+ });
11087
+ console.warn('[RESPONSE PAGARME REFUND]', JSON.stringify(data));
11088
+ await this.paymentRepository.create({
11089
+ createdAt: new Date(),
11090
+ updatedAt: new Date(),
11091
+ userId: order.user.id,
11092
+ orderId: order.id,
11093
+ totalPrice: amount,
11094
+ paymentProvider: exports.PaymentProviders.PAGARME,
11095
+ pagarMeOrderId: data.id,
11096
+ transaction: data,
11097
+ });
11098
+ return {
11099
+ status: this.getRefundStatus(data.status),
11100
+ success: [exports.PagarMeV5OrderStatus.Pago, exports.PagarMeV5OrderStatus.Cancelado].includes(data.status) ? true : false,
11101
+ };
11102
+ }
11103
+ catch (error) {
11104
+ console.error('Error during refund process for order', order.id, 'with error', error);
11105
+ throw error;
11106
+ }
11107
+ }
11108
+ getRefundStatus(status) {
11109
+ if ([exports.PagarMeV5PaymentStatus['Em processamento']].includes(status)) {
11110
+ return 'processing';
11111
+ }
11112
+ if ([exports.PagarMeV5OrderStatus.Pago, exports.PagarMeV5OrderStatus.Cancelado].includes(status)) {
11113
+ return 'success';
11114
+ }
11115
+ return 'unknown';
11116
+ }
11117
+ }
11118
+
11119
+ class PagarmeV5CardAxiosAdapter extends PagarmeV5BaseAxiosAdapter {
10788
11120
  constructor(credentials, paymentRepository, orderBlockedRepository) {
11121
+ super(credentials, paymentRepository);
10789
11122
  this.credentials = credentials;
10790
11123
  this.paymentRepository = paymentRepository;
10791
11124
  this.orderBlockedRepository = orderBlockedRepository;
@@ -10955,8 +11288,9 @@ class PagarmeV5CardAxiosAdapter {
10955
11288
  }
10956
11289
  }
10957
11290
 
10958
- class PagarmeV5PixAxiosAdapter {
11291
+ class PagarmeV5PixAxiosAdapter extends PagarmeV5BaseAxiosAdapter {
10959
11292
  constructor(credentials, paymentRepository) {
11293
+ super(credentials, paymentRepository);
10960
11294
  this.credentials = credentials;
10961
11295
  this.paymentRepository = paymentRepository;
10962
11296
  }
@@ -11372,6 +11706,7 @@ exports.PagarmeCardAxiosAdapter = PagarmeCardAxiosAdapter;
11372
11706
  exports.PagarmePaymentMethodFactory = PagarmePaymentMethodFactory;
11373
11707
  exports.PagarmePixAxiosAdapter = PagarmePixAxiosAdapter;
11374
11708
  exports.PagarmeV5BankSlipAxiosAdapter = PagarmeV5BankSlipAxiosAdapter;
11709
+ exports.PagarmeV5BaseAxiosAdapter = PagarmeV5BaseAxiosAdapter;
11375
11710
  exports.PagarmeV5CardAxiosAdapter = PagarmeV5CardAxiosAdapter;
11376
11711
  exports.PagarmeV5PixAxiosAdapter = PagarmeV5PixAxiosAdapter;
11377
11712
  exports.Payment = Payment;
@@ -11418,6 +11753,10 @@ exports.ShopMenu = ShopMenu;
11418
11753
  exports.ShopMenuFirestoreRepository = ShopMenuFirestoreRepository;
11419
11754
  exports.ShopSettings = ShopSettings;
11420
11755
  exports.ShopSettingsFirestoreRepository = ShopSettingsFirestoreRepository;
11756
+ exports.ShoppingRecurrence = ShoppingRecurrence;
11757
+ exports.ShoppingRecurrenceEdition = ShoppingRecurrenceEdition;
11758
+ exports.ShoppingRecurrenceEditionFirestoreRepository = ShoppingRecurrenceEditionFirestoreRepository;
11759
+ exports.ShoppingRecurrenceFirestoreRepository = ShoppingRecurrenceFirestoreRepository;
11421
11760
  exports.SignOut = SignOut;
11422
11761
  exports.StockLimitError = StockLimitError;
11423
11762
  exports.StockOutError = StockOutError;