@infrab4a/connect 5.3.0-beta.25 → 5.3.0-beta.27

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 (48) hide show
  1. package/index.cjs.js +406 -67
  2. package/index.esm.js +402 -68
  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-group.d.ts +1 -1
  6. package/src/domain/catalog/models/product-price-log.d.ts +1 -1
  7. package/src/domain/catalog/models/types/product-competitors-price.d.ts +3 -2
  8. package/src/domain/catalog/repositories/category-product.repository.d.ts +2 -0
  9. package/src/domain/shop-settings/enums/shop-page-name.enum.d.ts +2 -1
  10. package/src/domain/shop-settings/models/shop-page-settings.d.ts +4 -1
  11. package/src/domain/shop-settings/models/types/shop-page-section.type.d.ts +140 -0
  12. package/src/domain/shopping/models/enums/index.d.ts +3 -0
  13. package/src/domain/shopping/models/enums/order-status.enum.d.ts +2 -1
  14. package/src/domain/shopping/models/enums/shopping-recurrence-cycle.enum.d.ts +5 -0
  15. package/src/domain/shopping/models/enums/shopping-recurrence-edition-status.enum.d.ts +11 -0
  16. package/src/domain/shopping/models/enums/shopping-recurrence-status.enum.d.ts +7 -0
  17. package/src/domain/shopping/models/index.d.ts +1 -0
  18. package/src/domain/shopping/models/order-blocked.d.ts +5 -1
  19. package/src/domain/shopping/models/order.d.ts +12 -0
  20. package/src/domain/shopping/models/recurrence/index.d.ts +2 -0
  21. package/src/domain/shopping/models/recurrence/shopping-recurrence-edition.d.ts +18 -0
  22. package/src/domain/shopping/models/recurrence/shopping-recurrence.d.ts +45 -0
  23. package/src/domain/shopping/models/shipping-method.d.ts +2 -0
  24. package/src/domain/shopping/models/types/index.d.ts +1 -0
  25. package/src/domain/shopping/models/types/line-item-recurrence.type.d.ts +2 -0
  26. package/src/domain/shopping/repositories/index.d.ts +1 -0
  27. package/src/domain/shopping/repositories/order-blocked.repository.d.ts +5 -1
  28. package/src/domain/shopping/repositories/recurrence/index.d.ts +2 -0
  29. package/src/domain/shopping/repositories/recurrence/shopping-recurrence-edition.repository.d.ts +4 -0
  30. package/src/domain/shopping/repositories/recurrence/shopping-recurrence.repository.d.ts +9 -0
  31. package/src/domain/shopping/types/create-recurrency-payload.type.d.ts +8 -0
  32. package/src/domain/shopping/types/index.d.ts +1 -0
  33. package/src/domain/shopping/types/payment-card-info.type.d.ts +5 -3
  34. package/src/domain/users/models/user.d.ts +1 -0
  35. package/src/infra/firebase/firestore/repositories/shopping/index.d.ts +2 -0
  36. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-edition-firestore.repository.d.ts +7 -0
  37. package/src/infra/firebase/firestore/repositories/shopping/shopping-recurrence-firestore.repository.d.ts +10 -0
  38. package/src/infra/hasura-graphql/repositories/catalog/category-product-hasura-graphql.repository.d.ts +2 -0
  39. package/src/infra/mercado-pago/adapters/mercado-pago-base-axios.d.ts +11 -0
  40. package/src/infra/mercado-pago/adapters/mercado-pago-card-payment-axios.adapter.d.ts +5 -4
  41. package/src/infra/mercado-pago/adapters/mercado-pago-pix-payment-axios.adapter.d.ts +4 -3
  42. package/src/infra/mercado-pago/types/mercado-pago-response.type.d.ts +23 -0
  43. package/src/infra/pagarme/adapters/helpers/pagarme-blocked-order.helper.d.ts +1 -0
  44. package/src/infra/pagarme/adapters/v5/index.d.ts +1 -0
  45. package/src/infra/pagarme/adapters/v5/pagarmev5-base-axios.d.ts +11 -0
  46. package/src/infra/pagarme/adapters/v5/pagarmev5-card-payment-axios.adapter.d.ts +5 -4
  47. package/src/infra/pagarme/adapters/v5/pagarmev5-pix-payment-axios.adapter.d.ts +4 -3
  48. 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 = [
@@ -7774,7 +7993,7 @@ class ProductGroupHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasu
7774
7993
  { markupWithoutCompetitor: { columnName: 'markup_without_competitor' } },
7775
7994
  { discountCompetitor: { columnName: 'discount_competitor' } },
7776
7995
  { subscriberDiscountPercentage: { columnName: 'subscriber_discount_percentage' } },
7777
- { automaticPriceAdjustment: { columnName: 'automatic_price_adjustment' } },
7996
+ { dynamicPrecification: { columnName: 'dynamic_precification' } },
7778
7997
  { createdAt: { columnName: 'created_at' } },
7779
7998
  { updatedAt: { columnName: 'updated_at' } },
7780
7999
  ],
@@ -9561,7 +9780,7 @@ class MercadoPagoRequestHelper {
9561
9780
  checkoutId: checkout.id,
9562
9781
  },
9563
9782
  payer: this.buildPayer(checkout, card),
9564
- statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'Glam' : 'Mens Market',
9783
+ statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'loja glam' : 'mens market',
9565
9784
  additional_info: {
9566
9785
  items: this.buildItems(checkout),
9567
9786
  },
@@ -9777,8 +9996,113 @@ class MercadoPagoBankSlipAxiosAdapter {
9777
9996
  }
9778
9997
  }
9779
9998
 
9780
- class MercadoPagoCardAxiosAdapter {
9999
+ exports.MercadoPagoStatusDetailEnum = void 0;
10000
+ (function (MercadoPagoStatusDetailEnum) {
10001
+ MercadoPagoStatusDetailEnum["accredited"] = "accredited";
10002
+ MercadoPagoStatusDetailEnum["partially_refunded"] = "partially_refunded";
10003
+ MercadoPagoStatusDetailEnum["pending_capture"] = "pending_capture";
10004
+ MercadoPagoStatusDetailEnum["offline_process"] = "offline_process";
10005
+ MercadoPagoStatusDetailEnum["pending_contingency"] = "pending_contingency";
10006
+ MercadoPagoStatusDetailEnum["pending_review_manual"] = "pending_review_manual";
10007
+ MercadoPagoStatusDetailEnum["pending_waiting_transfer"] = "pending_waiting_transfer";
10008
+ MercadoPagoStatusDetailEnum["pending_waiting_payment"] = "pending_waiting_payment";
10009
+ MercadoPagoStatusDetailEnum["pending_challenge"] = "pending_challenge";
10010
+ MercadoPagoStatusDetailEnum["bank_error"] = "bank_error";
10011
+ MercadoPagoStatusDetailEnum["cc_rejected_3ds_mandatory"] = "cc_rejected_3ds_mandatory";
10012
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_card_number"] = "cc_rejected_bad_filled_card_number";
10013
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_date"] = "cc_rejected_bad_filled_date";
10014
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_other"] = "cc_rejected_bad_filled_other";
10015
+ MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_security_code"] = "cc_rejected_bad_filled_security_code";
10016
+ MercadoPagoStatusDetailEnum["cc_rejected_blacklist"] = "cc_rejected_blacklist";
10017
+ MercadoPagoStatusDetailEnum["cc_rejected_call_for_authorize"] = "cc_rejected_call_for_authorize";
10018
+ MercadoPagoStatusDetailEnum["cc_rejected_card_disabled"] = "cc_rejected_card_disabled";
10019
+ MercadoPagoStatusDetailEnum["cc_rejected_card_error"] = "cc_rejected_card_error";
10020
+ MercadoPagoStatusDetailEnum["cc_rejected_duplicated_payment"] = "cc_rejected_duplicated_payment";
10021
+ MercadoPagoStatusDetailEnum["cc_rejected_high_risk"] = "cc_rejected_high_risk";
10022
+ MercadoPagoStatusDetailEnum["cc_rejected_insufficient_amount"] = "cc_rejected_insufficient_amount";
10023
+ MercadoPagoStatusDetailEnum["cc_rejected_invalid_installments"] = "cc_rejected_invalid_installments";
10024
+ MercadoPagoStatusDetailEnum["cc_rejected_max_attempts"] = "cc_rejected_max_attempts";
10025
+ MercadoPagoStatusDetailEnum["cc_rejected_other_reason"] = "cc_rejected_other_reason";
10026
+ MercadoPagoStatusDetailEnum["cc_amount_rate_limit_exceeded"] = "cc_amount_rate_limit_exceeded";
10027
+ MercadoPagoStatusDetailEnum["rejected_insufficient_data"] = "rejected_insufficient_data";
10028
+ MercadoPagoStatusDetailEnum["rejected_by_bank"] = "rejected_by_bank";
10029
+ MercadoPagoStatusDetailEnum["rejected_by_regulations"] = "rejected_by_regulations";
10030
+ MercadoPagoStatusDetailEnum["insufficient_amount"] = "insufficient_amount";
10031
+ MercadoPagoStatusDetailEnum["cc_rejected_card_type_not_allowed"] = "cc_rejected_card_type_not_allowed";
10032
+ })(exports.MercadoPagoStatusDetailEnum || (exports.MercadoPagoStatusDetailEnum = {}));
10033
+
10034
+ exports.MercadoPagoStatusEnum = void 0;
10035
+ (function (MercadoPagoStatusEnum) {
10036
+ MercadoPagoStatusEnum["approved"] = "approved";
10037
+ MercadoPagoStatusEnum["authorized"] = "authorized";
10038
+ MercadoPagoStatusEnum["pending"] = "pending";
10039
+ MercadoPagoStatusEnum["in_process"] = "in_process";
10040
+ MercadoPagoStatusEnum["rejected"] = "rejected";
10041
+ MercadoPagoStatusEnum["cancelled"] = "cancelled";
10042
+ MercadoPagoStatusEnum["refunded"] = "refunded";
10043
+ MercadoPagoStatusEnum["charged_back"] = "charged_back";
10044
+ })(exports.MercadoPagoStatusEnum || (exports.MercadoPagoStatusEnum = {}));
10045
+
10046
+ class MercadoPagoBaseAxiosAdapter {
10047
+ constructor(credentials, paymentRepository) {
10048
+ this.credentials = credentials;
10049
+ this.paymentRepository = paymentRepository;
10050
+ }
10051
+ async refund(order, amount) {
10052
+ const { data } = await axios__default["default"]({
10053
+ method: 'POST',
10054
+ url: `${this.credentials.url}/v1/payments/${order.payment.id}/refunds`,
10055
+ headers: {
10056
+ 'X-Idempotency-Key': `${order.payment.charger_id}-${new Date().getTime()}`,
10057
+ Authorization: `Bearer ${this.credentials.api_key}`,
10058
+ 'Content-Type': 'application/json',
10059
+ },
10060
+ data: {
10061
+ amount: +amount.toFixed(2),
10062
+ },
10063
+ });
10064
+ await this.paymentRepository.create({
10065
+ createdAt: new Date(),
10066
+ updatedAt: new Date(),
10067
+ userId: order.user.id,
10068
+ orderId: order.id,
10069
+ totalPrice: amount,
10070
+ paymentProvider: exports.PaymentProviders.MERCADOPAGO,
10071
+ mercadoPagoId: data.id,
10072
+ transaction: data,
10073
+ });
10074
+ console.warn('[RESPONSE MERCADO PAGO REFUND]', JSON.stringify(data));
10075
+ return {
10076
+ status: this.getRefundStatus(data.status),
10077
+ success: [
10078
+ exports.MercadoPagoStatusEnum.approved,
10079
+ exports.MercadoPagoStatusEnum.refunded,
10080
+ exports.MercadoPagoStatusEnum.cancelled,
10081
+ exports.MercadoPagoStatusEnum.authorized,
10082
+ ].includes(data.status)
10083
+ ? true
10084
+ : false,
10085
+ };
10086
+ }
10087
+ getRefundStatus(status) {
10088
+ if ([exports.MercadoPagoStatusEnum.in_process, exports.MercadoPagoStatusEnum.pending].includes(status)) {
10089
+ return 'processing';
10090
+ }
10091
+ if ([
10092
+ exports.MercadoPagoStatusEnum.approved,
10093
+ exports.MercadoPagoStatusEnum.refunded,
10094
+ exports.MercadoPagoStatusEnum.cancelled,
10095
+ exports.MercadoPagoStatusEnum.authorized,
10096
+ ].includes(status)) {
10097
+ return 'success';
10098
+ }
10099
+ return 'unknown';
10100
+ }
10101
+ }
10102
+
10103
+ class MercadoPagoCardAxiosAdapter extends MercadoPagoBaseAxiosAdapter {
9781
10104
  constructor(credentials, paymentRepository, orderBlockedRepository) {
10105
+ super(credentials, paymentRepository);
9782
10106
  this.credentials = credentials;
9783
10107
  this.paymentRepository = paymentRepository;
9784
10108
  this.orderBlockedRepository = orderBlockedRepository;
@@ -9797,6 +10121,7 @@ class MercadoPagoCardAxiosAdapter {
9797
10121
  limiteRange: 'day',
9798
10122
  card,
9799
10123
  gatewayInfo: {
10124
+ gateway: exports.PaymentProviders.MERCADOPAGO,
9800
10125
  status: data.status,
9801
10126
  statusDetail: data.status_detail,
9802
10127
  },
@@ -9906,8 +10231,9 @@ class MercadoPagoCardAxiosAdapter {
9906
10231
  }
9907
10232
  }
9908
10233
 
9909
- class MercadoPagoPixAxiosAdapter {
10234
+ class MercadoPagoPixAxiosAdapter extends MercadoPagoBaseAxiosAdapter {
9910
10235
  constructor(credentials, paymentRepository) {
10236
+ super(credentials, paymentRepository);
9911
10237
  this.credentials = credentials;
9912
10238
  this.paymentRepository = paymentRepository;
9913
10239
  }
@@ -9946,53 +10272,6 @@ class MercadoPagoPixAxiosAdapter {
9946
10272
  }
9947
10273
  }
9948
10274
 
9949
- exports.MercadoPagoStatusDetailEnum = void 0;
9950
- (function (MercadoPagoStatusDetailEnum) {
9951
- MercadoPagoStatusDetailEnum["accredited"] = "accredited";
9952
- MercadoPagoStatusDetailEnum["partially_refunded"] = "partially_refunded";
9953
- MercadoPagoStatusDetailEnum["pending_capture"] = "pending_capture";
9954
- MercadoPagoStatusDetailEnum["offline_process"] = "offline_process";
9955
- MercadoPagoStatusDetailEnum["pending_contingency"] = "pending_contingency";
9956
- MercadoPagoStatusDetailEnum["pending_review_manual"] = "pending_review_manual";
9957
- MercadoPagoStatusDetailEnum["pending_waiting_transfer"] = "pending_waiting_transfer";
9958
- MercadoPagoStatusDetailEnum["pending_waiting_payment"] = "pending_waiting_payment";
9959
- MercadoPagoStatusDetailEnum["pending_challenge"] = "pending_challenge";
9960
- MercadoPagoStatusDetailEnum["bank_error"] = "bank_error";
9961
- MercadoPagoStatusDetailEnum["cc_rejected_3ds_mandatory"] = "cc_rejected_3ds_mandatory";
9962
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_card_number"] = "cc_rejected_bad_filled_card_number";
9963
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_date"] = "cc_rejected_bad_filled_date";
9964
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_other"] = "cc_rejected_bad_filled_other";
9965
- MercadoPagoStatusDetailEnum["cc_rejected_bad_filled_security_code"] = "cc_rejected_bad_filled_security_code";
9966
- MercadoPagoStatusDetailEnum["cc_rejected_blacklist"] = "cc_rejected_blacklist";
9967
- MercadoPagoStatusDetailEnum["cc_rejected_call_for_authorize"] = "cc_rejected_call_for_authorize";
9968
- MercadoPagoStatusDetailEnum["cc_rejected_card_disabled"] = "cc_rejected_card_disabled";
9969
- MercadoPagoStatusDetailEnum["cc_rejected_card_error"] = "cc_rejected_card_error";
9970
- MercadoPagoStatusDetailEnum["cc_rejected_duplicated_payment"] = "cc_rejected_duplicated_payment";
9971
- MercadoPagoStatusDetailEnum["cc_rejected_high_risk"] = "cc_rejected_high_risk";
9972
- MercadoPagoStatusDetailEnum["cc_rejected_insufficient_amount"] = "cc_rejected_insufficient_amount";
9973
- MercadoPagoStatusDetailEnum["cc_rejected_invalid_installments"] = "cc_rejected_invalid_installments";
9974
- MercadoPagoStatusDetailEnum["cc_rejected_max_attempts"] = "cc_rejected_max_attempts";
9975
- MercadoPagoStatusDetailEnum["cc_rejected_other_reason"] = "cc_rejected_other_reason";
9976
- MercadoPagoStatusDetailEnum["cc_amount_rate_limit_exceeded"] = "cc_amount_rate_limit_exceeded";
9977
- MercadoPagoStatusDetailEnum["rejected_insufficient_data"] = "rejected_insufficient_data";
9978
- MercadoPagoStatusDetailEnum["rejected_by_bank"] = "rejected_by_bank";
9979
- MercadoPagoStatusDetailEnum["rejected_by_regulations"] = "rejected_by_regulations";
9980
- MercadoPagoStatusDetailEnum["insufficient_amount"] = "insufficient_amount";
9981
- MercadoPagoStatusDetailEnum["cc_rejected_card_type_not_allowed"] = "cc_rejected_card_type_not_allowed";
9982
- })(exports.MercadoPagoStatusDetailEnum || (exports.MercadoPagoStatusDetailEnum = {}));
9983
-
9984
- exports.MercadoPagoStatusEnum = void 0;
9985
- (function (MercadoPagoStatusEnum) {
9986
- MercadoPagoStatusEnum["approved"] = "approved";
9987
- MercadoPagoStatusEnum["authorized"] = "authorized";
9988
- MercadoPagoStatusEnum["pending"] = "pending";
9989
- MercadoPagoStatusEnum["in_process"] = "in_process";
9990
- MercadoPagoStatusEnum["rejected"] = "rejected";
9991
- MercadoPagoStatusEnum["cancelled"] = "cancelled";
9992
- MercadoPagoStatusEnum["refunded"] = "refunded";
9993
- MercadoPagoStatusEnum["charged_back"] = "charged_back";
9994
- })(exports.MercadoPagoStatusEnum || (exports.MercadoPagoStatusEnum = {}));
9995
-
9996
10275
  class PagarmeBankSlipAxiosAdapter {
9997
10276
  constructor(credentials, paymentRepository) {
9998
10277
  this.credentials = credentials;
@@ -10120,6 +10399,14 @@ class PagarMeErrorHelper {
10120
10399
  case '1070':
10121
10400
  case '2001':
10122
10401
  case '2004':
10402
+ case '5025':
10403
+ case '9124':
10404
+ return exports.ErrorsCode.invalidCardError;
10405
+ // Dados obrigatórios ausentes
10406
+ case '1044':
10407
+ case '5034':
10408
+ case '5047':
10409
+ case '5061':
10123
10410
  return exports.ErrorsCode.invalidCardError;
10124
10411
  // Suspeita de fraude, prevenção do banco
10125
10412
  case '1002':
@@ -10131,6 +10418,7 @@ class PagarMeErrorHelper {
10131
10418
  case '2008':
10132
10419
  case '2009':
10133
10420
  case '2010':
10421
+ case '9201':
10134
10422
  return exports.ErrorsCode.fraudPreventionExternal;
10135
10423
  // Recusado pelo banco/emissor
10136
10424
  case '1007':
@@ -10148,19 +10436,10 @@ class PagarMeErrorHelper {
10148
10436
  case '5087':
10149
10437
  return exports.ErrorsCode.insufficientFundsError;
10150
10438
  // Valor solicitado inválido
10439
+ case '5094':
10151
10440
  case '5016':
10152
10441
  case '5092':
10153
10442
  return exports.ErrorsCode.paymentError;
10154
- // Código de segurança inválido ou não enviado
10155
- case '5025':
10156
- case '9124':
10157
- return exports.ErrorsCode.paymentError;
10158
- // Dados obrigatórios ausentes
10159
- case '1044':
10160
- case '5034':
10161
- case '5047':
10162
- case '5061':
10163
- return exports.ErrorsCode.paymentError;
10164
10443
  // Erros internos ou genéricos
10165
10444
  case '5000':
10166
10445
  case '5001':
@@ -10250,10 +10529,9 @@ class PagarMeErrorHelper {
10250
10529
  // Transação não suportada para o banco/emissor
10251
10530
  case '1061':
10252
10531
  return exports.ErrorsCode.paymentError;
10253
- case '5094':
10254
10532
  case '1010':
10255
10533
  case '1046':
10256
- return exports.ErrorsCode.businessError;
10534
+ return exports.ErrorsCode.invalidCheckoutError;
10257
10535
  default:
10258
10536
  return exports.ErrorsCode.paymentError;
10259
10537
  }
@@ -10390,7 +10668,7 @@ class PagarMeV5RequestHelper {
10390
10668
  static getCardOrder(checkout, card) {
10391
10669
  return {
10392
10670
  installments: card.installments,
10393
- statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'Glam' : 'Mens Market',
10671
+ statement_descriptor: checkout.shop === exports.Shops.GLAMSHOP ? 'loja glam' : 'mens market',
10394
10672
  card_id: card.cardId,
10395
10673
  card: {
10396
10674
  cvv: card.cardCvv,
@@ -10431,7 +10709,7 @@ class PagarMeV5ResponseHelper {
10431
10709
  const charger = response.charges.at(0);
10432
10710
  const transaction = charger.last_transaction;
10433
10711
  return PaymentTransaction.toInstance({
10434
- acquirer_name: 'pagar_me',
10712
+ acquirer_name: exports.PaymentProviders.PAGARME,
10435
10713
  amount: charger.amount,
10436
10714
  currency: charger.currency,
10437
10715
  gateway_id: charger.gateway_id,
@@ -10783,8 +11061,62 @@ class PagarmeV5BankSlipAxiosAdapter {
10783
11061
  }
10784
11062
  }
10785
11063
 
10786
- class PagarmeV5CardAxiosAdapter {
11064
+ class PagarmeV5BaseAxiosAdapter {
11065
+ constructor(credentials, paymentRepository) {
11066
+ this.credentials = credentials;
11067
+ this.paymentRepository = paymentRepository;
11068
+ }
11069
+ async refund(order, amount) {
11070
+ try {
11071
+ console.warn('[PAGARME REFUND] Starting refund process for order', order.id, order.payment, 'with amount', amount);
11072
+ const amountToSend = +amount.toFixed(2) * 100;
11073
+ console.warn('[PAGARME REFUND] Amount to send in cents', amountToSend);
11074
+ const { data } = await axios__default["default"]({
11075
+ method: 'DELETE',
11076
+ url: `${this.credentials.URL}/charges/${order.payment.charger_id}`,
11077
+ headers: {
11078
+ Authorization: 'Basic ' + Buffer.from(`${this.credentials.API_KEY}:`).toString('base64'),
11079
+ 'Content-Type': 'application/json',
11080
+ },
11081
+ data: {
11082
+ amount: amountToSend,
11083
+ },
11084
+ });
11085
+ console.warn('[RESPONSE PAGARME REFUND]', JSON.stringify(data));
11086
+ await this.paymentRepository.create({
11087
+ createdAt: new Date(),
11088
+ updatedAt: new Date(),
11089
+ userId: order.user.id,
11090
+ orderId: order.id,
11091
+ totalPrice: amount,
11092
+ paymentProvider: exports.PaymentProviders.PAGARME,
11093
+ pagarMeOrderId: data.id,
11094
+ transaction: data,
11095
+ });
11096
+ return {
11097
+ status: this.getRefundStatus(data.status),
11098
+ success: [exports.PagarMeV5OrderStatus.Pago, exports.PagarMeV5OrderStatus.Cancelado].includes(data.status) ? true : false,
11099
+ };
11100
+ }
11101
+ catch (error) {
11102
+ console.error('Error during refund process for order', order.id, 'with error', error);
11103
+ throw error;
11104
+ }
11105
+ }
11106
+ getRefundStatus(status) {
11107
+ if ([exports.PagarMeV5PaymentStatus['Em processamento']].includes(status)) {
11108
+ return 'processing';
11109
+ }
11110
+ if ([exports.PagarMeV5OrderStatus.Pago, exports.PagarMeV5OrderStatus.Cancelado].includes(status)) {
11111
+ return 'success';
11112
+ }
11113
+ return 'unknown';
11114
+ }
11115
+ }
11116
+
11117
+ class PagarmeV5CardAxiosAdapter extends PagarmeV5BaseAxiosAdapter {
10787
11118
  constructor(credentials, paymentRepository, orderBlockedRepository) {
11119
+ super(credentials, paymentRepository);
10788
11120
  this.credentials = credentials;
10789
11121
  this.paymentRepository = paymentRepository;
10790
11122
  this.orderBlockedRepository = orderBlockedRepository;
@@ -10812,6 +11144,7 @@ class PagarmeV5CardAxiosAdapter {
10812
11144
  card,
10813
11145
  orderBlockedRepository: this.orderBlockedRepository,
10814
11146
  gatewayInfo: {
11147
+ gateway: exports.PaymentProviders.PAGARME,
10815
11148
  status: charge.status,
10816
11149
  statusDetail: charge.last_transaction?.status,
10817
11150
  },
@@ -10953,8 +11286,9 @@ class PagarmeV5CardAxiosAdapter {
10953
11286
  }
10954
11287
  }
10955
11288
 
10956
- class PagarmeV5PixAxiosAdapter {
11289
+ class PagarmeV5PixAxiosAdapter extends PagarmeV5BaseAxiosAdapter {
10957
11290
  constructor(credentials, paymentRepository) {
11291
+ super(credentials, paymentRepository);
10958
11292
  this.credentials = credentials;
10959
11293
  this.paymentRepository = paymentRepository;
10960
11294
  }
@@ -11370,6 +11704,7 @@ exports.PagarmeCardAxiosAdapter = PagarmeCardAxiosAdapter;
11370
11704
  exports.PagarmePaymentMethodFactory = PagarmePaymentMethodFactory;
11371
11705
  exports.PagarmePixAxiosAdapter = PagarmePixAxiosAdapter;
11372
11706
  exports.PagarmeV5BankSlipAxiosAdapter = PagarmeV5BankSlipAxiosAdapter;
11707
+ exports.PagarmeV5BaseAxiosAdapter = PagarmeV5BaseAxiosAdapter;
11373
11708
  exports.PagarmeV5CardAxiosAdapter = PagarmeV5CardAxiosAdapter;
11374
11709
  exports.PagarmeV5PixAxiosAdapter = PagarmeV5PixAxiosAdapter;
11375
11710
  exports.Payment = Payment;
@@ -11416,6 +11751,10 @@ exports.ShopMenu = ShopMenu;
11416
11751
  exports.ShopMenuFirestoreRepository = ShopMenuFirestoreRepository;
11417
11752
  exports.ShopSettings = ShopSettings;
11418
11753
  exports.ShopSettingsFirestoreRepository = ShopSettingsFirestoreRepository;
11754
+ exports.ShoppingRecurrence = ShoppingRecurrence;
11755
+ exports.ShoppingRecurrenceEdition = ShoppingRecurrenceEdition;
11756
+ exports.ShoppingRecurrenceEditionFirestoreRepository = ShoppingRecurrenceEditionFirestoreRepository;
11757
+ exports.ShoppingRecurrenceFirestoreRepository = ShoppingRecurrenceFirestoreRepository;
11419
11758
  exports.SignOut = SignOut;
11420
11759
  exports.StockLimitError = StockLimitError;
11421
11760
  exports.StockOutError = StockOutError;