@23blocks/block-sales 2.0.0 → 2.2.0

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 (60) hide show
  1. package/dist/index.esm.js +1376 -1
  2. package/dist/src/lib/mappers/customer.mapper.d.ts +4 -0
  3. package/dist/src/lib/mappers/customer.mapper.d.ts.map +1 -0
  4. package/dist/src/lib/mappers/entity.mapper.d.ts +4 -0
  5. package/dist/src/lib/mappers/entity.mapper.d.ts.map +1 -0
  6. package/dist/src/lib/mappers/flexible-order.mapper.d.ts +4 -0
  7. package/dist/src/lib/mappers/flexible-order.mapper.d.ts.map +1 -0
  8. package/dist/src/lib/mappers/index.d.ts +6 -0
  9. package/dist/src/lib/mappers/index.d.ts.map +1 -1
  10. package/dist/src/lib/mappers/order-tax.mapper.d.ts +4 -0
  11. package/dist/src/lib/mappers/order-tax.mapper.d.ts.map +1 -0
  12. package/dist/src/lib/mappers/subscription-model.mapper.d.ts +4 -0
  13. package/dist/src/lib/mappers/subscription-model.mapper.d.ts.map +1 -0
  14. package/dist/src/lib/mappers/user.mapper.d.ts +4 -0
  15. package/dist/src/lib/mappers/user.mapper.d.ts.map +1 -0
  16. package/dist/src/lib/sales.block.d.ts +10 -1
  17. package/dist/src/lib/sales.block.d.ts.map +1 -1
  18. package/dist/src/lib/services/customers.service.d.ts +13 -0
  19. package/dist/src/lib/services/customers.service.d.ts.map +1 -0
  20. package/dist/src/lib/services/entities.service.d.ts +14 -0
  21. package/dist/src/lib/services/entities.service.d.ts.map +1 -0
  22. package/dist/src/lib/services/flexible-orders.service.d.ts +24 -0
  23. package/dist/src/lib/services/flexible-orders.service.d.ts.map +1 -0
  24. package/dist/src/lib/services/index.d.ts +9 -0
  25. package/dist/src/lib/services/index.d.ts.map +1 -1
  26. package/dist/src/lib/services/mercadopago.service.d.ts +11 -0
  27. package/dist/src/lib/services/mercadopago.service.d.ts.map +1 -0
  28. package/dist/src/lib/services/order-taxes.service.d.ts +13 -0
  29. package/dist/src/lib/services/order-taxes.service.d.ts.map +1 -0
  30. package/dist/src/lib/services/stripe.service.d.ts +18 -0
  31. package/dist/src/lib/services/stripe.service.d.ts.map +1 -0
  32. package/dist/src/lib/services/subscription-models.service.d.ts +12 -0
  33. package/dist/src/lib/services/subscription-models.service.d.ts.map +1 -0
  34. package/dist/src/lib/services/users.service.d.ts +25 -0
  35. package/dist/src/lib/services/users.service.d.ts.map +1 -0
  36. package/dist/src/lib/services/vendor-payments.service.d.ts +21 -0
  37. package/dist/src/lib/services/vendor-payments.service.d.ts.map +1 -0
  38. package/dist/src/lib/types/customer.d.ts +47 -0
  39. package/dist/src/lib/types/customer.d.ts.map +1 -0
  40. package/dist/src/lib/types/entity.d.ts +60 -0
  41. package/dist/src/lib/types/entity.d.ts.map +1 -0
  42. package/dist/src/lib/types/flexible-order.d.ts +119 -0
  43. package/dist/src/lib/types/flexible-order.d.ts.map +1 -0
  44. package/dist/src/lib/types/index.d.ts +10 -0
  45. package/dist/src/lib/types/index.d.ts.map +1 -1
  46. package/dist/src/lib/types/mercadopago.d.ts +86 -0
  47. package/dist/src/lib/types/mercadopago.d.ts.map +1 -0
  48. package/dist/src/lib/types/order-tax.d.ts +27 -0
  49. package/dist/src/lib/types/order-tax.d.ts.map +1 -0
  50. package/dist/src/lib/types/report.d.ts +159 -0
  51. package/dist/src/lib/types/report.d.ts.map +1 -0
  52. package/dist/src/lib/types/stripe.d.ts +119 -0
  53. package/dist/src/lib/types/stripe.d.ts.map +1 -0
  54. package/dist/src/lib/types/subscription-model.d.ts +55 -0
  55. package/dist/src/lib/types/subscription-model.d.ts.map +1 -0
  56. package/dist/src/lib/types/user.d.ts +75 -0
  57. package/dist/src/lib/types/user.d.ts.map +1 -0
  58. package/dist/src/lib/types/vendor-payment.d.ts +65 -0
  59. package/dist/src/lib/types/vendor-payment.d.ts.map +1 -0
  60. package/package.json +1 -1
package/dist/index.esm.js CHANGED
@@ -243,6 +243,62 @@ function createOrderDetailsService(transport, _config) {
243
243
  };
244
244
  }
245
245
 
246
+ const orderTaxMapper = {
247
+ type: 'OrderTax',
248
+ map: (resource)=>({
249
+ id: resource.id,
250
+ uniqueId: parseString(resource.attributes['unique_id']) || resource.id,
251
+ createdAt: parseDate(resource.attributes['created_at']) || new Date(),
252
+ updatedAt: parseDate(resource.attributes['updated_at']) || new Date(),
253
+ orderUniqueId: parseString(resource.attributes['order_unique_id']) || '',
254
+ name: parseString(resource.attributes['name']) || '',
255
+ rate: parseNumber(resource.attributes['rate']),
256
+ amount: parseNumber(resource.attributes['amount']),
257
+ type: parseString(resource.attributes['type']) || '',
258
+ payload: resource.attributes['payload']
259
+ })
260
+ };
261
+
262
+ function createOrderTaxesService(transport, _config) {
263
+ return {
264
+ async list (orderUniqueId) {
265
+ const response = await transport.get(`/orders/${orderUniqueId}/taxes`);
266
+ return decodeMany(response, orderTaxMapper);
267
+ },
268
+ async get (orderUniqueId, uniqueId) {
269
+ const response = await transport.get(`/orders/${orderUniqueId}/taxes/${uniqueId}`);
270
+ return decodeOne(response, orderTaxMapper);
271
+ },
272
+ async create (orderUniqueId, data) {
273
+ const response = await transport.post(`/orders/${orderUniqueId}/taxes`, {
274
+ order_tax: {
275
+ name: data.name,
276
+ rate: data.rate,
277
+ amount: data.amount,
278
+ type: data.type,
279
+ payload: data.payload
280
+ }
281
+ });
282
+ return decodeOne(response, orderTaxMapper);
283
+ },
284
+ async update (orderUniqueId, uniqueId, data) {
285
+ const response = await transport.put(`/orders/${orderUniqueId}/taxes/${uniqueId}`, {
286
+ order_tax: {
287
+ name: data.name,
288
+ rate: data.rate,
289
+ amount: data.amount,
290
+ type: data.type,
291
+ payload: data.payload
292
+ }
293
+ });
294
+ return decodeOne(response, orderTaxMapper);
295
+ },
296
+ async delete (orderUniqueId, uniqueId) {
297
+ await transport.delete(`/orders/${orderUniqueId}/taxes/${uniqueId}`);
298
+ }
299
+ };
300
+ }
301
+
246
302
  const paymentMapper = {
247
303
  type: 'Payment',
248
304
  map: (resource)=>({
@@ -415,12 +471,1331 @@ function createSubscriptionsService(transport, _config) {
415
471
  };
416
472
  }
417
473
 
474
+ const subscriptionModelMapper = {
475
+ type: 'subscription_model',
476
+ map: (resource)=>{
477
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9, _resource_attributes10, _resource_attributes11, _resource_attributes12, _resource_attributes13, _resource_attributes14, _resource_attributes15;
478
+ return {
479
+ id: resource.id,
480
+ uniqueId: (_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['unique_id'],
481
+ code: (_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['code'],
482
+ name: (_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['name'],
483
+ description: (_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['description'],
484
+ price: (_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['price'],
485
+ currency: (_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['currency'],
486
+ interval: (_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['interval'],
487
+ intervalCount: (_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['interval_count'],
488
+ trialDays: (_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['trial_days'],
489
+ features: (_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['features'],
490
+ limits: (_resource_attributes10 = resource.attributes) == null ? void 0 : _resource_attributes10['limits'],
491
+ enabled: (_resource_attributes11 = resource.attributes) == null ? void 0 : _resource_attributes11['enabled'],
492
+ status: (_resource_attributes12 = resource.attributes) == null ? void 0 : _resource_attributes12['status'],
493
+ payload: (_resource_attributes13 = resource.attributes) == null ? void 0 : _resource_attributes13['payload'],
494
+ createdAt: parseDate((_resource_attributes14 = resource.attributes) == null ? void 0 : _resource_attributes14['created_at']),
495
+ updatedAt: parseDate((_resource_attributes15 = resource.attributes) == null ? void 0 : _resource_attributes15['updated_at'])
496
+ };
497
+ }
498
+ };
499
+
500
+ function createSubscriptionModelsService(transport, _config) {
501
+ return {
502
+ async list (params) {
503
+ const queryParams = {};
504
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
505
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
506
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
507
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
508
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
509
+ const response = await transport.get('/subscription_models', {
510
+ params: queryParams
511
+ });
512
+ return decodePageResult(response, subscriptionModelMapper);
513
+ },
514
+ async get (uniqueId) {
515
+ const response = await transport.get(`/subscription_models/${uniqueId}`);
516
+ return decodeOne(response, subscriptionModelMapper);
517
+ },
518
+ async create (data) {
519
+ const response = await transport.post('/subscription_models', {
520
+ subscription_model: {
521
+ code: data.code,
522
+ name: data.name,
523
+ description: data.description,
524
+ price: data.price,
525
+ currency: data.currency,
526
+ interval: data.interval,
527
+ interval_count: data.intervalCount,
528
+ trial_days: data.trialDays,
529
+ features: data.features,
530
+ limits: data.limits,
531
+ payload: data.payload
532
+ }
533
+ });
534
+ return decodeOne(response, subscriptionModelMapper);
535
+ },
536
+ async update (uniqueId, data) {
537
+ const response = await transport.put(`/subscription_models/${uniqueId}`, {
538
+ subscription_model: {
539
+ name: data.name,
540
+ description: data.description,
541
+ price: data.price,
542
+ currency: data.currency,
543
+ interval: data.interval,
544
+ interval_count: data.intervalCount,
545
+ trial_days: data.trialDays,
546
+ features: data.features,
547
+ limits: data.limits,
548
+ enabled: data.enabled,
549
+ status: data.status,
550
+ payload: data.payload
551
+ }
552
+ });
553
+ return decodeOne(response, subscriptionModelMapper);
554
+ }
555
+ };
556
+ }
557
+
558
+ const salesEntityMapper = {
559
+ type: 'entity',
560
+ map: (resource)=>{
561
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8;
562
+ return {
563
+ id: resource.id,
564
+ uniqueId: (_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['unique_id'],
565
+ code: (_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['code'],
566
+ name: (_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['name'],
567
+ email: (_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['email'],
568
+ phone: (_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['phone'],
569
+ status: (_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['status'],
570
+ payload: (_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['payload'],
571
+ createdAt: parseDate((_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['created_at']),
572
+ updatedAt: parseDate((_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['updated_at'])
573
+ };
574
+ }
575
+ };
576
+
577
+ function createSalesEntitiesService(transport, _config) {
578
+ return {
579
+ async list (params) {
580
+ const queryParams = {};
581
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
582
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
583
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
584
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
585
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
586
+ const response = await transport.get('/entities', {
587
+ params: queryParams
588
+ });
589
+ return decodePageResult(response, salesEntityMapper);
590
+ },
591
+ async get (uniqueId) {
592
+ const response = await transport.get(`/entities/${uniqueId}`);
593
+ return decodeOne(response, salesEntityMapper);
594
+ },
595
+ async register (uniqueId, data) {
596
+ const response = await transport.post(`/entities/${uniqueId}/register`, {
597
+ entity: {
598
+ code: data == null ? void 0 : data.code,
599
+ name: data == null ? void 0 : data.name,
600
+ email: data == null ? void 0 : data.email,
601
+ phone: data == null ? void 0 : data.phone,
602
+ payload: data == null ? void 0 : data.payload
603
+ }
604
+ });
605
+ return decodeOne(response, salesEntityMapper);
606
+ },
607
+ async update (uniqueId, data) {
608
+ const response = await transport.put(`/entities/${uniqueId}`, {
609
+ entity: {
610
+ name: data.name,
611
+ email: data.email,
612
+ phone: data.phone,
613
+ status: data.status,
614
+ payload: data.payload
615
+ }
616
+ });
617
+ return decodeOne(response, salesEntityMapper);
618
+ },
619
+ async createSubscription (uniqueId, data) {
620
+ const response = await transport.post(`/entities/${uniqueId}/subscriptions`, {
621
+ subscription: {
622
+ subscription_model_unique_id: data.subscriptionModelUniqueId,
623
+ start_date: data.startDate,
624
+ trial_end_date: data.trialEndDate,
625
+ payload: data.payload
626
+ }
627
+ });
628
+ return {
629
+ id: response.id,
630
+ uniqueId: response.unique_id,
631
+ entityUniqueId: response.entity_unique_id,
632
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
633
+ status: response.status,
634
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
635
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
636
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
637
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
638
+ payload: response.payload,
639
+ createdAt: new Date(response.created_at),
640
+ updatedAt: new Date(response.updated_at)
641
+ };
642
+ },
643
+ async updateSubscription (uniqueId, subscriptionUniqueId, data) {
644
+ const response = await transport.put(`/entities/${uniqueId}/subscriptions/${subscriptionUniqueId}`, {
645
+ subscription: {
646
+ status: data.status,
647
+ end_date: data.endDate,
648
+ payload: data.payload
649
+ }
650
+ });
651
+ return {
652
+ id: response.id,
653
+ uniqueId: response.unique_id,
654
+ entityUniqueId: response.entity_unique_id,
655
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
656
+ status: response.status,
657
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
658
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
659
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
660
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
661
+ payload: response.payload,
662
+ createdAt: new Date(response.created_at),
663
+ updatedAt: new Date(response.updated_at)
664
+ };
665
+ }
666
+ };
667
+ }
668
+
669
+ const salesUserMapper = {
670
+ type: 'user',
671
+ map: (resource)=>{
672
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7;
673
+ return {
674
+ id: resource.id,
675
+ uniqueId: (_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['unique_id'],
676
+ email: (_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['email'],
677
+ name: (_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['name'],
678
+ phone: (_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['phone'],
679
+ status: (_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['status'],
680
+ payload: (_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['payload'],
681
+ createdAt: parseDate((_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['created_at']),
682
+ updatedAt: parseDate((_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['updated_at'])
683
+ };
684
+ }
685
+ };
686
+
687
+ function createSalesUsersService(transport, _config) {
688
+ return {
689
+ async list (params) {
690
+ const queryParams = {};
691
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
692
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
693
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
694
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
695
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
696
+ const response = await transport.get('/users', {
697
+ params: queryParams
698
+ });
699
+ return decodePageResult(response, salesUserMapper);
700
+ },
701
+ async get (uniqueId) {
702
+ const response = await transport.get(`/users/${uniqueId}`);
703
+ return decodeOne(response, salesUserMapper);
704
+ },
705
+ async register (uniqueId, data) {
706
+ const response = await transport.post(`/users/${uniqueId}/register`, {
707
+ user: {
708
+ email: data == null ? void 0 : data.email,
709
+ name: data == null ? void 0 : data.name,
710
+ phone: data == null ? void 0 : data.phone,
711
+ payload: data == null ? void 0 : data.payload
712
+ }
713
+ });
714
+ return decodeOne(response, salesUserMapper);
715
+ },
716
+ async update (uniqueId, data) {
717
+ const response = await transport.put(`/users/${uniqueId}`, {
718
+ user: {
719
+ name: data.name,
720
+ phone: data.phone,
721
+ status: data.status,
722
+ payload: data.payload
723
+ }
724
+ });
725
+ return decodeOne(response, salesUserMapper);
726
+ },
727
+ async listOrders (uniqueId, params) {
728
+ const queryParams = {};
729
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
730
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
731
+ const response = await transport.get(`/users/${uniqueId}/orders`, {
732
+ params: queryParams
733
+ });
734
+ return decodePageResult(response, orderMapper);
735
+ },
736
+ async getOrder (uniqueId, orderUniqueId) {
737
+ const response = await transport.get(`/users/${uniqueId}/orders/${orderUniqueId}`);
738
+ return decodeOne(response, orderMapper);
739
+ },
740
+ async listSubscriptions (uniqueId, params) {
741
+ var _response_meta, _response_meta1, _response_meta2, _response_meta3;
742
+ const queryParams = {};
743
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
744
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
745
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
746
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
747
+ const response = await transport.get(`/users/${uniqueId}/subscriptions`, {
748
+ params: queryParams
749
+ });
750
+ const data = response.data || [];
751
+ return {
752
+ data: data.map((s)=>({
753
+ id: s.id,
754
+ uniqueId: s.unique_id,
755
+ userUniqueId: s.user_unique_id,
756
+ subscriptionModelUniqueId: s.subscription_model_unique_id,
757
+ status: s.status,
758
+ startDate: s.start_date ? new Date(s.start_date) : undefined,
759
+ endDate: s.end_date ? new Date(s.end_date) : undefined,
760
+ trialEndDate: s.trial_end_date ? new Date(s.trial_end_date) : undefined,
761
+ cancelledAt: s.cancelled_at ? new Date(s.cancelled_at) : undefined,
762
+ consumptions: (s.consumptions || []).map((c)=>({
763
+ id: c.id,
764
+ quantity: c.quantity,
765
+ description: c.description,
766
+ consumedAt: new Date(c.consumed_at)
767
+ })),
768
+ payload: s.payload,
769
+ createdAt: new Date(s.created_at),
770
+ updatedAt: new Date(s.updated_at)
771
+ })),
772
+ meta: {
773
+ totalCount: ((_response_meta = response.meta) == null ? void 0 : _response_meta.total_count) || data.length,
774
+ page: ((_response_meta1 = response.meta) == null ? void 0 : _response_meta1.page) || 1,
775
+ perPage: ((_response_meta2 = response.meta) == null ? void 0 : _response_meta2.per_page) || data.length,
776
+ totalPages: ((_response_meta3 = response.meta) == null ? void 0 : _response_meta3.total_pages) || 1
777
+ }
778
+ };
779
+ },
780
+ async getSubscription (uniqueId, subscriptionUniqueId) {
781
+ const response = await transport.get(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}`);
782
+ return {
783
+ id: response.id,
784
+ uniqueId: response.unique_id,
785
+ userUniqueId: response.user_unique_id,
786
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
787
+ status: response.status,
788
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
789
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
790
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
791
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
792
+ consumptions: (response.consumptions || []).map((c)=>({
793
+ id: c.id,
794
+ quantity: c.quantity,
795
+ description: c.description,
796
+ consumedAt: new Date(c.consumed_at)
797
+ })),
798
+ payload: response.payload,
799
+ createdAt: new Date(response.created_at),
800
+ updatedAt: new Date(response.updated_at)
801
+ };
802
+ },
803
+ async createSubscription (uniqueId, subscriptionUniqueId, data) {
804
+ const response = await transport.post(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}`, {
805
+ subscription: {
806
+ start_date: data == null ? void 0 : data.startDate,
807
+ trial_end_date: data == null ? void 0 : data.trialEndDate,
808
+ payload: data == null ? void 0 : data.payload
809
+ }
810
+ });
811
+ return {
812
+ id: response.id,
813
+ uniqueId: response.unique_id,
814
+ userUniqueId: response.user_unique_id,
815
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
816
+ status: response.status,
817
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
818
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
819
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
820
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
821
+ payload: response.payload,
822
+ createdAt: new Date(response.created_at),
823
+ updatedAt: new Date(response.updated_at)
824
+ };
825
+ },
826
+ async updateSubscription (uniqueId, subscriptionUniqueId, data) {
827
+ const response = await transport.put(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}`, {
828
+ subscription: {
829
+ status: data.status,
830
+ end_date: data.endDate,
831
+ payload: data.payload
832
+ }
833
+ });
834
+ return {
835
+ id: response.id,
836
+ uniqueId: response.unique_id,
837
+ userUniqueId: response.user_unique_id,
838
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
839
+ status: response.status,
840
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
841
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
842
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
843
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
844
+ payload: response.payload,
845
+ createdAt: new Date(response.created_at),
846
+ updatedAt: new Date(response.updated_at)
847
+ };
848
+ },
849
+ async addConsumption (uniqueId, subscriptionUniqueId, data) {
850
+ const response = await transport.post(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}/consumption`, {
851
+ consumption: {
852
+ quantity: data.quantity,
853
+ description: data.description,
854
+ payload: data.payload
855
+ }
856
+ });
857
+ return {
858
+ id: response.id,
859
+ uniqueId: response.unique_id,
860
+ userUniqueId: response.user_unique_id,
861
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
862
+ status: response.status,
863
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
864
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
865
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
866
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
867
+ consumptions: (response.consumptions || []).map((c)=>({
868
+ id: c.id,
869
+ quantity: c.quantity,
870
+ description: c.description,
871
+ consumedAt: new Date(c.consumed_at)
872
+ })),
873
+ payload: response.payload,
874
+ createdAt: new Date(response.created_at),
875
+ updatedAt: new Date(response.updated_at)
876
+ };
877
+ },
878
+ async cancelSubscription (uniqueId, subscriptionUniqueId) {
879
+ const response = await transport.put(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}/cancel`, {});
880
+ return {
881
+ id: response.id,
882
+ uniqueId: response.unique_id,
883
+ userUniqueId: response.user_unique_id,
884
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
885
+ status: response.status,
886
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
887
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
888
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
889
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
890
+ payload: response.payload,
891
+ createdAt: new Date(response.created_at),
892
+ updatedAt: new Date(response.updated_at)
893
+ };
894
+ },
895
+ async deleteSubscription (uniqueId, subscriptionUniqueId) {
896
+ await transport.delete(`/users/${uniqueId}/subscriptions/${subscriptionUniqueId}`);
897
+ }
898
+ };
899
+ }
900
+
901
+ const salesCustomerMapper = {
902
+ type: 'customer',
903
+ map: (resource)=>{
904
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9;
905
+ return {
906
+ id: resource.id,
907
+ uniqueId: (_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['unique_id'],
908
+ email: (_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['email'],
909
+ name: (_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['name'],
910
+ phone: (_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['phone'],
911
+ stripeCustomerId: (_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['stripe_customer_id'],
912
+ mercadopagoCustomerId: (_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['mercadopago_customer_id'],
913
+ status: (_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['status'],
914
+ payload: (_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['payload'],
915
+ createdAt: parseDate((_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['created_at']),
916
+ updatedAt: parseDate((_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['updated_at'])
917
+ };
918
+ }
919
+ };
920
+
921
+ function createSalesCustomersService(transport, _config) {
922
+ return {
923
+ async get (uniqueId) {
924
+ const response = await transport.get(`/customers/${uniqueId}`);
925
+ return decodeOne(response, salesCustomerMapper);
926
+ },
927
+ async register (uniqueId, data) {
928
+ const response = await transport.post(`/customers/${uniqueId}/register`, {
929
+ customer: {
930
+ email: data == null ? void 0 : data.email,
931
+ name: data == null ? void 0 : data.name,
932
+ phone: data == null ? void 0 : data.phone,
933
+ stripe_customer_id: data == null ? void 0 : data.stripeCustomerId,
934
+ mercadopago_customer_id: data == null ? void 0 : data.mercadopagoCustomerId,
935
+ payload: data == null ? void 0 : data.payload
936
+ }
937
+ });
938
+ return decodeOne(response, salesCustomerMapper);
939
+ },
940
+ async getSubscription (uniqueId, subscriptionUniqueId) {
941
+ const response = await transport.get(`/customers/${uniqueId}/subscriptions/${subscriptionUniqueId}`);
942
+ return {
943
+ id: response.id,
944
+ uniqueId: response.unique_id,
945
+ customerUniqueId: response.customer_unique_id,
946
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
947
+ status: response.status,
948
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
949
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
950
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
951
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
952
+ payload: response.payload,
953
+ createdAt: new Date(response.created_at),
954
+ updatedAt: new Date(response.updated_at)
955
+ };
956
+ },
957
+ async createSubscription (uniqueId, data) {
958
+ const response = await transport.post(`/customers/${uniqueId}/subscriptions`, {
959
+ subscription: {
960
+ subscription_model_unique_id: data.subscriptionModelUniqueId,
961
+ start_date: data.startDate,
962
+ trial_end_date: data.trialEndDate,
963
+ payload: data.payload
964
+ }
965
+ });
966
+ return {
967
+ id: response.id,
968
+ uniqueId: response.unique_id,
969
+ customerUniqueId: response.customer_unique_id,
970
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
971
+ status: response.status,
972
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
973
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
974
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
975
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
976
+ payload: response.payload,
977
+ createdAt: new Date(response.created_at),
978
+ updatedAt: new Date(response.updated_at)
979
+ };
980
+ },
981
+ async updateSubscription (uniqueId, subscriptionUniqueId, data) {
982
+ const response = await transport.put(`/customers/${uniqueId}/subscriptions/${subscriptionUniqueId}`, {
983
+ subscription: {
984
+ status: data.status,
985
+ end_date: data.endDate,
986
+ payload: data.payload
987
+ }
988
+ });
989
+ return {
990
+ id: response.id,
991
+ uniqueId: response.unique_id,
992
+ customerUniqueId: response.customer_unique_id,
993
+ subscriptionModelUniqueId: response.subscription_model_unique_id,
994
+ status: response.status,
995
+ startDate: response.start_date ? new Date(response.start_date) : undefined,
996
+ endDate: response.end_date ? new Date(response.end_date) : undefined,
997
+ trialEndDate: response.trial_end_date ? new Date(response.trial_end_date) : undefined,
998
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
999
+ payload: response.payload,
1000
+ createdAt: new Date(response.created_at),
1001
+ updatedAt: new Date(response.updated_at)
1002
+ };
1003
+ }
1004
+ };
1005
+ }
1006
+
1007
+ const flexibleOrderMapper = {
1008
+ type: 'flexible_order',
1009
+ map: (resource)=>{
1010
+ var _resource_attributes, _resource_attributes1, _resource_attributes2, _resource_attributes3, _resource_attributes4, _resource_attributes5, _resource_attributes6, _resource_attributes7, _resource_attributes8, _resource_attributes9, _resource_attributes10, _resource_attributes11, _resource_attributes12, _resource_attributes13, _resource_attributes14, _resource_attributes15, _resource_attributes16, _resource_attributes17, _resource_attributes18, _resource_attributes19, _resource_attributes20, _resource_attributes21, _resource_attributes22, _resource_attributes23, _resource_attributes24, _resource_attributes25, _resource_attributes26, _resource_attributes27;
1011
+ return {
1012
+ id: resource.id,
1013
+ uniqueId: (_resource_attributes = resource.attributes) == null ? void 0 : _resource_attributes['unique_id'],
1014
+ customerUniqueId: (_resource_attributes1 = resource.attributes) == null ? void 0 : _resource_attributes1['customer_unique_id'],
1015
+ userUniqueId: (_resource_attributes2 = resource.attributes) == null ? void 0 : _resource_attributes2['user_unique_id'],
1016
+ entityUniqueId: (_resource_attributes3 = resource.attributes) == null ? void 0 : _resource_attributes3['entity_unique_id'],
1017
+ orderNumber: (_resource_attributes4 = resource.attributes) == null ? void 0 : _resource_attributes4['order_number'],
1018
+ subtotal: (_resource_attributes5 = resource.attributes) == null ? void 0 : _resource_attributes5['subtotal'],
1019
+ tax: (_resource_attributes6 = resource.attributes) == null ? void 0 : _resource_attributes6['tax'],
1020
+ tips: (_resource_attributes7 = resource.attributes) == null ? void 0 : _resource_attributes7['tips'],
1021
+ total: (_resource_attributes8 = resource.attributes) == null ? void 0 : _resource_attributes8['total'],
1022
+ currency: (_resource_attributes9 = resource.attributes) == null ? void 0 : _resource_attributes9['currency'],
1023
+ status: (_resource_attributes10 = resource.attributes) == null ? void 0 : _resource_attributes10['status'],
1024
+ details: (((_resource_attributes11 = resource.attributes) == null ? void 0 : _resource_attributes11['details']) || []).map((d)=>({
1025
+ id: d.id,
1026
+ uniqueId: d.unique_id,
1027
+ name: d.name,
1028
+ description: d.description,
1029
+ quantity: d.quantity,
1030
+ unitPrice: d.unit_price,
1031
+ subtotal: d.subtotal,
1032
+ tax: d.tax,
1033
+ total: d.total,
1034
+ status: d.status,
1035
+ logistics: d.logistics ? {
1036
+ carrier: d.logistics.carrier,
1037
+ trackingNumber: d.logistics.tracking_number,
1038
+ trackingUrl: d.logistics.tracking_url,
1039
+ shippedAt: d.logistics.shipped_at ? parseDate(d.logistics.shipped_at) : undefined,
1040
+ deliveredAt: d.logistics.delivered_at ? parseDate(d.logistics.delivered_at) : undefined,
1041
+ estimatedDelivery: d.logistics.estimated_delivery ? parseDate(d.logistics.estimated_delivery) : undefined,
1042
+ address: d.logistics.address,
1043
+ payload: d.logistics.payload
1044
+ } : undefined,
1045
+ payload: d.payload
1046
+ })),
1047
+ payments: (((_resource_attributes12 = resource.attributes) == null ? void 0 : _resource_attributes12['payments']) || []).map((p)=>({
1048
+ id: p.id,
1049
+ uniqueId: p.unique_id,
1050
+ amount: p.amount,
1051
+ currency: p.currency,
1052
+ method: p.method,
1053
+ status: p.status,
1054
+ confirmedAt: p.confirmed_at ? parseDate(p.confirmed_at) : undefined,
1055
+ payload: p.payload
1056
+ })),
1057
+ logistics: ((_resource_attributes13 = resource.attributes) == null ? void 0 : _resource_attributes13['logistics']) ? {
1058
+ carrier: ((_resource_attributes14 = resource.attributes) == null ? void 0 : _resource_attributes14['logistics']).carrier,
1059
+ trackingNumber: ((_resource_attributes15 = resource.attributes) == null ? void 0 : _resource_attributes15['logistics']).tracking_number,
1060
+ trackingUrl: ((_resource_attributes16 = resource.attributes) == null ? void 0 : _resource_attributes16['logistics']).tracking_url,
1061
+ shippedAt: ((_resource_attributes17 = resource.attributes) == null ? void 0 : _resource_attributes17['logistics']).shipped_at ? parseDate(((_resource_attributes18 = resource.attributes) == null ? void 0 : _resource_attributes18['logistics']).shipped_at) : undefined,
1062
+ deliveredAt: ((_resource_attributes19 = resource.attributes) == null ? void 0 : _resource_attributes19['logistics']).delivered_at ? parseDate(((_resource_attributes20 = resource.attributes) == null ? void 0 : _resource_attributes20['logistics']).delivered_at) : undefined,
1063
+ estimatedDelivery: ((_resource_attributes21 = resource.attributes) == null ? void 0 : _resource_attributes21['logistics']).estimated_delivery ? parseDate(((_resource_attributes22 = resource.attributes) == null ? void 0 : _resource_attributes22['logistics']).estimated_delivery) : undefined,
1064
+ address: ((_resource_attributes23 = resource.attributes) == null ? void 0 : _resource_attributes23['logistics']).address,
1065
+ payload: ((_resource_attributes24 = resource.attributes) == null ? void 0 : _resource_attributes24['logistics']).payload
1066
+ } : undefined,
1067
+ payload: (_resource_attributes25 = resource.attributes) == null ? void 0 : _resource_attributes25['payload'],
1068
+ createdAt: parseDate((_resource_attributes26 = resource.attributes) == null ? void 0 : _resource_attributes26['created_at']),
1069
+ updatedAt: parseDate((_resource_attributes27 = resource.attributes) == null ? void 0 : _resource_attributes27['updated_at'])
1070
+ };
1071
+ }
1072
+ };
1073
+
1074
+ function createFlexibleOrdersService(transport, _config) {
1075
+ return {
1076
+ async list (params) {
1077
+ const queryParams = {};
1078
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1079
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1080
+ if (params == null ? void 0 : params.customerUniqueId) queryParams['customer_unique_id'] = params.customerUniqueId;
1081
+ if (params == null ? void 0 : params.userUniqueId) queryParams['user_unique_id'] = params.userUniqueId;
1082
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
1083
+ if (params == null ? void 0 : params.search) queryParams['search'] = params.search;
1084
+ if (params == null ? void 0 : params.sortBy) queryParams['sort'] = params.sortOrder === 'desc' ? `-${params.sortBy}` : params.sortBy;
1085
+ const response = await transport.get('/flexible_orders', {
1086
+ params: queryParams
1087
+ });
1088
+ return decodePageResult(response, flexibleOrderMapper);
1089
+ },
1090
+ async get (uniqueId) {
1091
+ const response = await transport.get(`/flexible_orders/${uniqueId}`);
1092
+ return decodeOne(response, flexibleOrderMapper);
1093
+ },
1094
+ async create (data) {
1095
+ const response = await transport.post('/flexible_orders', {
1096
+ flexible_order: {
1097
+ customer_unique_id: data.customerUniqueId,
1098
+ user_unique_id: data.userUniqueId,
1099
+ entity_unique_id: data.entityUniqueId,
1100
+ currency: data.currency,
1101
+ payload: data.payload
1102
+ }
1103
+ });
1104
+ return decodeOne(response, flexibleOrderMapper);
1105
+ },
1106
+ async update (uniqueId, data) {
1107
+ const response = await transport.put(`/flexible_orders/${uniqueId}`, {
1108
+ flexible_order: {
1109
+ status: data.status,
1110
+ payload: data.payload
1111
+ }
1112
+ });
1113
+ return decodeOne(response, flexibleOrderMapper);
1114
+ },
1115
+ async addDetails (uniqueId, data) {
1116
+ const response = await transport.post(`/flexible_orders/${uniqueId}/details`, {
1117
+ detail: {
1118
+ name: data.name,
1119
+ description: data.description,
1120
+ quantity: data.quantity,
1121
+ unit_price: data.unitPrice,
1122
+ tax: data.tax,
1123
+ payload: data.payload
1124
+ }
1125
+ });
1126
+ return decodeOne(response, flexibleOrderMapper);
1127
+ },
1128
+ async addTips (uniqueId, data) {
1129
+ const response = await transport.post(`/flexible_orders/${uniqueId}/tips/add`, {
1130
+ amount: data.amount,
1131
+ payload: data.payload
1132
+ });
1133
+ return decodeOne(response, flexibleOrderMapper);
1134
+ },
1135
+ async addPaymentMethod (uniqueId, data) {
1136
+ const response = await transport.post(`/flexible_orders/${uniqueId}/payments/method`, {
1137
+ method: data.method,
1138
+ payload: data.payload
1139
+ });
1140
+ return decodeOne(response, flexibleOrderMapper);
1141
+ },
1142
+ async addPayment (uniqueId, data) {
1143
+ const response = await transport.post(`/flexible_orders/${uniqueId}/payments`, {
1144
+ payment: {
1145
+ amount: data.amount,
1146
+ method: data.method,
1147
+ payload: data.payload
1148
+ }
1149
+ });
1150
+ return decodeOne(response, flexibleOrderMapper);
1151
+ },
1152
+ async confirmPayment (uniqueId, paymentUniqueId) {
1153
+ const response = await transport.put(`/flexible_orders/${uniqueId}/payments/${paymentUniqueId}/confirm`, {});
1154
+ return decodeOne(response, flexibleOrderMapper);
1155
+ },
1156
+ async updateStatus (uniqueId, status) {
1157
+ const response = await transport.put(`/flexible_orders/${uniqueId}/status`, {
1158
+ status
1159
+ });
1160
+ return decodeOne(response, flexibleOrderMapper);
1161
+ },
1162
+ async updateDetailStatus (uniqueId, detailUniqueId, status) {
1163
+ const response = await transport.put(`/flexible_orders/${uniqueId}/details/${detailUniqueId}/status`, {
1164
+ status
1165
+ });
1166
+ return decodeOne(response, flexibleOrderMapper);
1167
+ },
1168
+ async cancel (uniqueId) {
1169
+ await transport.delete(`/flexible_orders/${uniqueId}/cancel`);
1170
+ },
1171
+ async updateLogistics (uniqueId, data) {
1172
+ const response = await transport.put(`/flexible_orders/${uniqueId}/logistics`, {
1173
+ logistics: {
1174
+ carrier: data.carrier,
1175
+ tracking_number: data.trackingNumber,
1176
+ tracking_url: data.trackingUrl,
1177
+ shipped_at: data.shippedAt,
1178
+ delivered_at: data.deliveredAt,
1179
+ estimated_delivery: data.estimatedDelivery,
1180
+ address: data.address,
1181
+ payload: data.payload
1182
+ }
1183
+ });
1184
+ return decodeOne(response, flexibleOrderMapper);
1185
+ },
1186
+ async updateDetailLogistics (uniqueId, detailUniqueId, data) {
1187
+ const response = await transport.put(`/flexible_orders/${uniqueId}/details/${detailUniqueId}/logistics`, {
1188
+ logistics: {
1189
+ carrier: data.carrier,
1190
+ tracking_number: data.trackingNumber,
1191
+ tracking_url: data.trackingUrl,
1192
+ shipped_at: data.shippedAt,
1193
+ delivered_at: data.deliveredAt,
1194
+ estimated_delivery: data.estimatedDelivery,
1195
+ address: data.address,
1196
+ payload: data.payload
1197
+ }
1198
+ });
1199
+ return decodeOne(response, flexibleOrderMapper);
1200
+ },
1201
+ async getPayments (uniqueId) {
1202
+ const response = await transport.get(`/flexible_orders/${uniqueId}/payments`);
1203
+ return decodePageResult(response, paymentMapper);
1204
+ }
1205
+ };
1206
+ }
1207
+
1208
+ function createStripeService(transport, _config) {
1209
+ return {
1210
+ async createCustomer (data) {
1211
+ const response = await transport.post('/stripe/customers', {
1212
+ email: data.email,
1213
+ name: data.name,
1214
+ phone: data.phone,
1215
+ metadata: data.metadata
1216
+ });
1217
+ return {
1218
+ customerId: response.customer_id,
1219
+ customer: {
1220
+ id: response.customer.id,
1221
+ stripeId: response.customer.stripe_id,
1222
+ email: response.customer.email,
1223
+ name: response.customer.name,
1224
+ defaultPaymentMethod: response.customer.default_payment_method,
1225
+ metadata: response.customer.metadata,
1226
+ createdAt: new Date(response.customer.created_at)
1227
+ }
1228
+ };
1229
+ },
1230
+ async createCheckoutSession (data) {
1231
+ var _data_lineItems;
1232
+ const response = await transport.post('/stripe/sessions', {
1233
+ customer_unique_id: data.customerUniqueId,
1234
+ stripe_customer_id: data.stripeCustomerId,
1235
+ success_url: data.successUrl,
1236
+ cancel_url: data.cancelUrl,
1237
+ mode: data.mode,
1238
+ line_items: (_data_lineItems = data.lineItems) == null ? void 0 : _data_lineItems.map((item)=>({
1239
+ price_id: item.priceId,
1240
+ quantity: item.quantity,
1241
+ price_data: item.priceData ? {
1242
+ currency: item.priceData.currency,
1243
+ unit_amount: item.priceData.unitAmount,
1244
+ product_data: item.priceData.productData,
1245
+ recurring: item.priceData.recurring
1246
+ } : undefined
1247
+ })),
1248
+ subscription_data: data.subscriptionData ? {
1249
+ trial_period_days: data.subscriptionData.trialPeriodDays,
1250
+ metadata: data.subscriptionData.metadata
1251
+ } : undefined,
1252
+ metadata: data.metadata
1253
+ });
1254
+ return {
1255
+ id: response.id,
1256
+ url: response.url,
1257
+ status: response.status,
1258
+ expiresAt: response.expires_at ? new Date(response.expires_at) : undefined
1259
+ };
1260
+ },
1261
+ async createPaymentIntent (data) {
1262
+ const response = await transport.post('/stripe/payments', {
1263
+ amount: data.amount,
1264
+ currency: data.currency,
1265
+ customer_unique_id: data.customerUniqueId,
1266
+ stripe_customer_id: data.stripeCustomerId,
1267
+ payment_method_types: data.paymentMethodTypes,
1268
+ metadata: data.metadata
1269
+ });
1270
+ return {
1271
+ id: response.id,
1272
+ clientSecret: response.client_secret,
1273
+ status: response.status,
1274
+ amount: response.amount,
1275
+ currency: response.currency
1276
+ };
1277
+ },
1278
+ async createCustomerPortal (uniqueId, data) {
1279
+ const response = await transport.post(`/stripe/customers/${uniqueId}/portal`, {
1280
+ return_url: data.returnUrl
1281
+ });
1282
+ return {
1283
+ id: response.id,
1284
+ url: response.url
1285
+ };
1286
+ },
1287
+ async listSubscriptions (params) {
1288
+ var _response_meta, _response_meta1, _response_meta2, _response_meta3;
1289
+ const queryParams = {};
1290
+ if (params == null ? void 0 : params.page) queryParams['page'] = String(params.page);
1291
+ if (params == null ? void 0 : params.perPage) queryParams['records'] = String(params.perPage);
1292
+ if (params == null ? void 0 : params.customerId) queryParams['customer_id'] = params.customerId;
1293
+ if (params == null ? void 0 : params.status) queryParams['status'] = params.status;
1294
+ const response = await transport.get('/stripe/subscriptions', {
1295
+ params: queryParams
1296
+ });
1297
+ const data = response.data || [];
1298
+ return {
1299
+ data: data.map((s)=>({
1300
+ id: s.id,
1301
+ stripeId: s.stripe_id,
1302
+ customerId: s.customer_id,
1303
+ status: s.status,
1304
+ currentPeriodStart: s.current_period_start ? new Date(s.current_period_start) : undefined,
1305
+ currentPeriodEnd: s.current_period_end ? new Date(s.current_period_end) : undefined,
1306
+ cancelAtPeriodEnd: s.cancel_at_period_end,
1307
+ cancelledAt: s.cancelled_at ? new Date(s.cancelled_at) : undefined,
1308
+ metadata: s.metadata
1309
+ })),
1310
+ meta: {
1311
+ totalCount: ((_response_meta = response.meta) == null ? void 0 : _response_meta.total_count) || data.length,
1312
+ page: ((_response_meta1 = response.meta) == null ? void 0 : _response_meta1.page) || 1,
1313
+ perPage: ((_response_meta2 = response.meta) == null ? void 0 : _response_meta2.per_page) || data.length,
1314
+ totalPages: ((_response_meta3 = response.meta) == null ? void 0 : _response_meta3.total_pages) || 1
1315
+ }
1316
+ };
1317
+ },
1318
+ async createSubscription (data) {
1319
+ const response = await transport.post('/stripe/subscriptions', {
1320
+ customer_unique_id: data.customerUniqueId,
1321
+ stripe_customer_id: data.stripeCustomerId,
1322
+ price_id: data.priceId,
1323
+ quantity: data.quantity,
1324
+ trial_period_days: data.trialPeriodDays,
1325
+ metadata: data.metadata
1326
+ });
1327
+ return {
1328
+ id: response.id,
1329
+ stripeId: response.stripe_id,
1330
+ customerId: response.customer_id,
1331
+ status: response.status,
1332
+ currentPeriodStart: response.current_period_start ? new Date(response.current_period_start) : undefined,
1333
+ currentPeriodEnd: response.current_period_end ? new Date(response.current_period_end) : undefined,
1334
+ cancelAtPeriodEnd: response.cancel_at_period_end,
1335
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
1336
+ metadata: response.metadata
1337
+ };
1338
+ },
1339
+ async updateSubscription (stripeSubscriptionId, data) {
1340
+ const response = await transport.put(`/stripe/subscriptions/${stripeSubscriptionId}`, {
1341
+ price_id: data.priceId,
1342
+ quantity: data.quantity,
1343
+ cancel_at_period_end: data.cancelAtPeriodEnd,
1344
+ metadata: data.metadata
1345
+ });
1346
+ return {
1347
+ id: response.id,
1348
+ stripeId: response.stripe_id,
1349
+ customerId: response.customer_id,
1350
+ status: response.status,
1351
+ currentPeriodStart: response.current_period_start ? new Date(response.current_period_start) : undefined,
1352
+ currentPeriodEnd: response.current_period_end ? new Date(response.current_period_end) : undefined,
1353
+ cancelAtPeriodEnd: response.cancel_at_period_end,
1354
+ cancelledAt: response.cancelled_at ? new Date(response.cancelled_at) : undefined,
1355
+ metadata: response.metadata
1356
+ };
1357
+ },
1358
+ async cancelSubscription (stripeSubscriptionId) {
1359
+ await transport.delete(`/stripe/subscriptions/${stripeSubscriptionId}`);
1360
+ },
1361
+ async listWebhooks () {
1362
+ const response = await transport.get('/stripe/webhooks');
1363
+ return (response.webhooks || response || []).map((w)=>({
1364
+ id: w.id,
1365
+ url: w.url,
1366
+ enabledEvents: w.enabled_events,
1367
+ status: w.status,
1368
+ createdAt: new Date(w.created_at)
1369
+ }));
1370
+ },
1371
+ async createWebhook (data) {
1372
+ const response = await transport.post('/stripe/webhooks', {
1373
+ url: data.url,
1374
+ enabled_events: data.enabledEvents
1375
+ });
1376
+ return {
1377
+ id: response.id,
1378
+ url: response.url,
1379
+ enabledEvents: response.enabled_events,
1380
+ status: response.status,
1381
+ createdAt: new Date(response.created_at)
1382
+ };
1383
+ }
1384
+ };
1385
+ }
1386
+
1387
+ function createMercadoPagoService(transport, _config) {
1388
+ return {
1389
+ async listPaymentMethods () {
1390
+ const response = await transport.get('/mercadopago');
1391
+ return (response.payment_methods || response || []).map((pm)=>({
1392
+ id: pm.id,
1393
+ name: pm.name,
1394
+ paymentTypeId: pm.payment_type_id,
1395
+ status: pm.status,
1396
+ secureThumbnail: pm.secure_thumbnail,
1397
+ thumbnail: pm.thumbnail,
1398
+ deferredCapture: pm.deferred_capture,
1399
+ settings: pm.settings,
1400
+ additionalInfoNeeded: pm.additional_info_needed,
1401
+ minAllowedAmount: pm.min_allowed_amount,
1402
+ maxAllowedAmount: pm.max_allowed_amount,
1403
+ processingModes: pm.processing_modes
1404
+ }));
1405
+ },
1406
+ async createPaymentIntent (data) {
1407
+ var _data_additionalInfo_items;
1408
+ const response = await transport.post('/mercadopago/payments', {
1409
+ transaction_amount: data.transactionAmount,
1410
+ description: data.description,
1411
+ payment_method_id: data.paymentMethodId,
1412
+ payer: {
1413
+ email: data.payerEmail
1414
+ },
1415
+ installments: data.installments,
1416
+ token: data.token,
1417
+ issuer_id: data.issuerId,
1418
+ external_reference: data.externalReference,
1419
+ statement_descriptor: data.statementDescriptor,
1420
+ notification_url: data.notificationUrl,
1421
+ additional_info: data.additionalInfo ? {
1422
+ items: (_data_additionalInfo_items = data.additionalInfo.items) == null ? void 0 : _data_additionalInfo_items.map((item)=>({
1423
+ id: item.id,
1424
+ title: item.title,
1425
+ description: item.description,
1426
+ picture_url: item.pictureUrl,
1427
+ category_id: item.categoryId,
1428
+ quantity: item.quantity,
1429
+ unit_price: item.unitPrice
1430
+ })),
1431
+ payer: data.additionalInfo.payer ? {
1432
+ first_name: data.additionalInfo.payer.firstName,
1433
+ last_name: data.additionalInfo.payer.lastName,
1434
+ email: data.additionalInfo.payer.email,
1435
+ phone: data.additionalInfo.payer.phone,
1436
+ identification: data.additionalInfo.payer.identification,
1437
+ address: data.additionalInfo.payer.address ? {
1438
+ zip_code: data.additionalInfo.payer.address.zipCode,
1439
+ street_name: data.additionalInfo.payer.address.streetName,
1440
+ street_number: data.additionalInfo.payer.address.streetNumber
1441
+ } : undefined
1442
+ } : undefined
1443
+ } : undefined,
1444
+ metadata: data.metadata
1445
+ });
1446
+ return {
1447
+ id: response.id,
1448
+ status: response.status,
1449
+ statusDetail: response.status_detail,
1450
+ externalReference: response.external_reference,
1451
+ transactionAmount: response.transaction_amount,
1452
+ currencyId: response.currency_id,
1453
+ paymentMethodId: response.payment_method_id,
1454
+ paymentTypeId: response.payment_type_id,
1455
+ installments: response.installments,
1456
+ initPoint: response.init_point,
1457
+ qrCodeBase64: response.qr_code_base64,
1458
+ ticketUrl: response.ticket_url,
1459
+ dateCreated: new Date(response.date_created),
1460
+ dateApproved: response.date_approved ? new Date(response.date_approved) : undefined
1461
+ };
1462
+ },
1463
+ async createPSEIntent (data) {
1464
+ const response = await transport.post('/mercadopago/payments/pse', {
1465
+ transaction_amount: data.transactionAmount,
1466
+ description: data.description,
1467
+ payer: {
1468
+ email: data.payerEmail,
1469
+ identification: {
1470
+ type: data.payerDocumentType,
1471
+ number: data.payerDocumentNumber
1472
+ }
1473
+ },
1474
+ transaction_details: {
1475
+ financial_institution: data.financialInstitution
1476
+ },
1477
+ callback_url: data.callbackUrl,
1478
+ external_reference: data.externalReference,
1479
+ metadata: data.metadata
1480
+ });
1481
+ return {
1482
+ id: response.id,
1483
+ status: response.status,
1484
+ statusDetail: response.status_detail,
1485
+ externalReference: response.external_reference,
1486
+ transactionAmount: response.transaction_amount,
1487
+ currencyId: response.currency_id,
1488
+ paymentMethodId: response.payment_method_id,
1489
+ paymentTypeId: response.payment_type_id,
1490
+ initPoint: response.init_point,
1491
+ ticketUrl: response.ticket_url,
1492
+ dateCreated: new Date(response.date_created),
1493
+ dateApproved: response.date_approved ? new Date(response.date_approved) : undefined
1494
+ };
1495
+ }
1496
+ };
1497
+ }
1498
+
1499
+ function createVendorPaymentsService(transport, _config) {
1500
+ return {
1501
+ async get (paymentUniqueId) {
1502
+ const response = await transport.get(`/payables/${paymentUniqueId}`);
1503
+ return {
1504
+ id: response.id,
1505
+ uniqueId: response.unique_id,
1506
+ orderUniqueId: response.order_unique_id,
1507
+ detailUniqueId: response.detail_unique_id,
1508
+ vendorUniqueId: response.vendor_unique_id,
1509
+ amount: response.amount,
1510
+ currency: response.currency,
1511
+ status: response.status,
1512
+ paidAt: response.paid_at ? new Date(response.paid_at) : undefined,
1513
+ reference: response.reference,
1514
+ notes: response.notes,
1515
+ payload: response.payload,
1516
+ createdAt: new Date(response.created_at),
1517
+ updatedAt: new Date(response.updated_at)
1518
+ };
1519
+ },
1520
+ async create (orderUniqueId, detailUniqueId, vendorUniqueId, data) {
1521
+ const response = await transport.post(`/orders/${orderUniqueId}/details/${detailUniqueId}/vendors/${vendorUniqueId}/payments`, {
1522
+ payment: {
1523
+ amount: data.amount,
1524
+ currency: data.currency,
1525
+ reference: data.reference,
1526
+ notes: data.notes,
1527
+ payload: data.payload
1528
+ }
1529
+ });
1530
+ return {
1531
+ id: response.id,
1532
+ uniqueId: response.unique_id,
1533
+ orderUniqueId: response.order_unique_id,
1534
+ detailUniqueId: response.detail_unique_id,
1535
+ vendorUniqueId: response.vendor_unique_id,
1536
+ amount: response.amount,
1537
+ currency: response.currency,
1538
+ status: response.status,
1539
+ paidAt: response.paid_at ? new Date(response.paid_at) : undefined,
1540
+ reference: response.reference,
1541
+ notes: response.notes,
1542
+ payload: response.payload,
1543
+ createdAt: new Date(response.created_at),
1544
+ updatedAt: new Date(response.updated_at)
1545
+ };
1546
+ },
1547
+ async update (orderUniqueId, detailUniqueId, vendorUniqueId, paymentUniqueId, data) {
1548
+ const response = await transport.put(`/orders/${orderUniqueId}/details/${detailUniqueId}/vendors/${vendorUniqueId}/payments/${paymentUniqueId}`, {
1549
+ payment: {
1550
+ amount: data.amount,
1551
+ reference: data.reference,
1552
+ notes: data.notes,
1553
+ status: data.status,
1554
+ payload: data.payload
1555
+ }
1556
+ });
1557
+ return {
1558
+ id: response.id,
1559
+ uniqueId: response.unique_id,
1560
+ orderUniqueId: response.order_unique_id,
1561
+ detailUniqueId: response.detail_unique_id,
1562
+ vendorUniqueId: response.vendor_unique_id,
1563
+ amount: response.amount,
1564
+ currency: response.currency,
1565
+ status: response.status,
1566
+ paidAt: response.paid_at ? new Date(response.paid_at) : undefined,
1567
+ reference: response.reference,
1568
+ notes: response.notes,
1569
+ payload: response.payload,
1570
+ createdAt: new Date(response.created_at),
1571
+ updatedAt: new Date(response.updated_at)
1572
+ };
1573
+ },
1574
+ async pay (orderUniqueId, detailUniqueId, vendorUniqueId, paymentUniqueId) {
1575
+ const response = await transport.put(`/orders/${orderUniqueId}/details/${detailUniqueId}/vendors/${vendorUniqueId}/payments/${paymentUniqueId}/pay`, {});
1576
+ return {
1577
+ id: response.id,
1578
+ uniqueId: response.unique_id,
1579
+ orderUniqueId: response.order_unique_id,
1580
+ detailUniqueId: response.detail_unique_id,
1581
+ vendorUniqueId: response.vendor_unique_id,
1582
+ amount: response.amount,
1583
+ currency: response.currency,
1584
+ status: response.status,
1585
+ paidAt: response.paid_at ? new Date(response.paid_at) : undefined,
1586
+ reference: response.reference,
1587
+ notes: response.notes,
1588
+ payload: response.payload,
1589
+ createdAt: new Date(response.created_at),
1590
+ updatedAt: new Date(response.updated_at)
1591
+ };
1592
+ },
1593
+ async delete (orderUniqueId, detailUniqueId, vendorUniqueId, paymentUniqueId) {
1594
+ await transport.delete(`/orders/${orderUniqueId}/details/${detailUniqueId}/vendors/${vendorUniqueId}/payments/${paymentUniqueId}`);
1595
+ },
1596
+ async createProvider (orderUniqueId, orderDetailUniqueId, data) {
1597
+ const response = await transport.post(`/orders/${orderUniqueId}/details/${orderDetailUniqueId}/providers`, {
1598
+ provider: {
1599
+ vendor_unique_id: data.vendorUniqueId,
1600
+ amount: data.amount,
1601
+ commission: data.commission,
1602
+ payload: data.payload
1603
+ }
1604
+ });
1605
+ return {
1606
+ id: response.id,
1607
+ uniqueId: response.unique_id,
1608
+ orderDetailUniqueId: response.order_detail_unique_id,
1609
+ vendorUniqueId: response.vendor_unique_id,
1610
+ vendorName: response.vendor_name,
1611
+ amount: response.amount,
1612
+ commission: response.commission,
1613
+ status: response.status,
1614
+ payload: response.payload,
1615
+ createdAt: new Date(response.created_at),
1616
+ updatedAt: new Date(response.updated_at)
1617
+ };
1618
+ },
1619
+ async createProviderBySource (sourceId, data) {
1620
+ const response = await transport.post(`/sources/${sourceId}/providers`, {
1621
+ provider: {
1622
+ vendor_unique_id: data.vendorUniqueId,
1623
+ order_unique_id: data.orderUniqueId,
1624
+ order_detail_unique_id: data.orderDetailUniqueId,
1625
+ amount: data.amount,
1626
+ commission: data.commission,
1627
+ payload: data.payload
1628
+ }
1629
+ });
1630
+ return {
1631
+ id: response.id,
1632
+ uniqueId: response.unique_id,
1633
+ sourceId: response.source_id,
1634
+ orderDetailUniqueId: response.order_detail_unique_id,
1635
+ vendorUniqueId: response.vendor_unique_id,
1636
+ vendorName: response.vendor_name,
1637
+ amount: response.amount,
1638
+ commission: response.commission,
1639
+ status: response.status,
1640
+ payload: response.payload,
1641
+ createdAt: new Date(response.created_at),
1642
+ updatedAt: new Date(response.updated_at)
1643
+ };
1644
+ },
1645
+ async updateProvider (orderUniqueId, orderDetailUniqueId, providerUniqueId, data) {
1646
+ const response = await transport.put(`/orders/${orderUniqueId}/details/${orderDetailUniqueId}/providers/${providerUniqueId}`, {
1647
+ provider: {
1648
+ amount: data.amount,
1649
+ commission: data.commission,
1650
+ status: data.status,
1651
+ payload: data.payload
1652
+ }
1653
+ });
1654
+ return {
1655
+ id: response.id,
1656
+ uniqueId: response.unique_id,
1657
+ orderDetailUniqueId: response.order_detail_unique_id,
1658
+ vendorUniqueId: response.vendor_unique_id,
1659
+ vendorName: response.vendor_name,
1660
+ amount: response.amount,
1661
+ commission: response.commission,
1662
+ status: response.status,
1663
+ payload: response.payload,
1664
+ createdAt: new Date(response.created_at),
1665
+ updatedAt: new Date(response.updated_at)
1666
+ };
1667
+ },
1668
+ async reportList (params) {
1669
+ const response = await transport.post('/reports/vendors/payments/list', {
1670
+ start_date: params.startDate,
1671
+ end_date: params.endDate,
1672
+ vendor_unique_id: params.vendorUniqueId,
1673
+ status: params.status,
1674
+ page: params.page,
1675
+ per_page: params.perPage
1676
+ });
1677
+ return {
1678
+ payments: (response.payments || []).map((p)=>({
1679
+ uniqueId: p.unique_id,
1680
+ orderUniqueId: p.order_unique_id,
1681
+ vendorName: p.vendor_name,
1682
+ amount: p.amount,
1683
+ status: p.status,
1684
+ paidAt: p.paid_at ? new Date(p.paid_at) : undefined,
1685
+ createdAt: new Date(p.created_at)
1686
+ })),
1687
+ summary: {
1688
+ totalPayments: response.summary.total_payments,
1689
+ totalAmount: response.summary.total_amount,
1690
+ totalPending: response.summary.total_pending,
1691
+ totalPaid: response.summary.total_paid,
1692
+ paymentsByStatus: response.summary.payments_by_status,
1693
+ currency: response.summary.currency,
1694
+ period: {
1695
+ startDate: new Date(response.summary.period.start_date),
1696
+ endDate: new Date(response.summary.period.end_date)
1697
+ }
1698
+ },
1699
+ meta: {
1700
+ totalCount: response.meta.total_count,
1701
+ page: response.meta.page,
1702
+ perPage: response.meta.per_page,
1703
+ totalPages: response.meta.total_pages
1704
+ }
1705
+ };
1706
+ },
1707
+ async reportSummary (params) {
1708
+ const response = await transport.post('/reports/vendors/payments/summary', {
1709
+ start_date: params.startDate,
1710
+ end_date: params.endDate,
1711
+ vendor_unique_id: params.vendorUniqueId,
1712
+ status: params.status
1713
+ });
1714
+ return {
1715
+ totalPayments: response.total_payments,
1716
+ totalAmount: response.total_amount,
1717
+ totalPending: response.total_pending,
1718
+ totalPaid: response.total_paid,
1719
+ paymentsByStatus: response.payments_by_status,
1720
+ currency: response.currency,
1721
+ period: {
1722
+ startDate: new Date(response.period.start_date),
1723
+ endDate: new Date(response.period.end_date)
1724
+ }
1725
+ };
1726
+ },
1727
+ async providerReportList (params) {
1728
+ const response = await transport.post('/reports/orders/providers/list', {
1729
+ start_date: params.startDate,
1730
+ end_date: params.endDate,
1731
+ vendor_unique_id: params.vendorUniqueId,
1732
+ status: params.status,
1733
+ page: params.page,
1734
+ per_page: params.perPage
1735
+ });
1736
+ return {
1737
+ providers: (response.providers || []).map((p)=>({
1738
+ uniqueId: p.unique_id,
1739
+ vendorName: p.vendor_name,
1740
+ amount: p.amount,
1741
+ commission: p.commission,
1742
+ status: p.status,
1743
+ createdAt: new Date(p.created_at)
1744
+ })),
1745
+ summary: {
1746
+ totalProviders: response.summary.total_providers,
1747
+ totalAmount: response.summary.total_amount,
1748
+ totalCommission: response.summary.total_commission,
1749
+ providersByStatus: response.summary.providers_by_status,
1750
+ period: {
1751
+ startDate: new Date(response.summary.period.start_date),
1752
+ endDate: new Date(response.summary.period.end_date)
1753
+ }
1754
+ },
1755
+ meta: {
1756
+ totalCount: response.meta.total_count,
1757
+ page: response.meta.page,
1758
+ perPage: response.meta.per_page,
1759
+ totalPages: response.meta.total_pages
1760
+ }
1761
+ };
1762
+ },
1763
+ async providerReportSummary (params) {
1764
+ const response = await transport.post('/reports/orders/providers/summary', {
1765
+ start_date: params.startDate,
1766
+ end_date: params.endDate,
1767
+ vendor_unique_id: params.vendorUniqueId,
1768
+ status: params.status
1769
+ });
1770
+ return {
1771
+ totalProviders: response.total_providers,
1772
+ totalAmount: response.total_amount,
1773
+ totalCommission: response.total_commission,
1774
+ providersByStatus: response.providers_by_status,
1775
+ period: {
1776
+ startDate: new Date(response.period.start_date),
1777
+ endDate: new Date(response.period.end_date)
1778
+ }
1779
+ };
1780
+ }
1781
+ };
1782
+ }
1783
+
418
1784
  function createSalesBlock(transport, config) {
419
1785
  return {
420
1786
  orders: createOrdersService(transport),
421
1787
  orderDetails: createOrderDetailsService(transport),
1788
+ orderTaxes: createOrderTaxesService(transport),
422
1789
  payments: createPaymentsService(transport),
423
- subscriptions: createSubscriptionsService(transport)
1790
+ subscriptions: createSubscriptionsService(transport),
1791
+ subscriptionModels: createSubscriptionModelsService(transport),
1792
+ entities: createSalesEntitiesService(transport),
1793
+ users: createSalesUsersService(transport),
1794
+ customers: createSalesCustomersService(transport),
1795
+ flexibleOrders: createFlexibleOrdersService(transport),
1796
+ stripe: createStripeService(transport),
1797
+ mercadopago: createMercadoPagoService(transport),
1798
+ vendorPayments: createVendorPaymentsService(transport)
424
1799
  };
425
1800
  }
426
1801
  const salesBlockMetadata = {