paymentPlatformFees.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. export const scheduleUsesCartDiscount = (schedule) =>
  2. Number(schedule?.cart_items_count ?? schedule?.cartItemsCount ?? schedule?.cart?.items_count ?? 0) >= 3
  3. export const getSchedulePlatformFeeRate = (schedule, paymentType, platformFees) => {
  4. const fees = platformFees?.value ?? platformFees ?? {}
  5. if (scheduleUsesCartDiscount(schedule) && fees.cart_min_3_schedules !== null && fees.cart_min_3_schedules !== undefined) {
  6. return fees.cart_min_3_schedules
  7. }
  8. return fees[paymentType]
  9. }
  10. export const getSchedulePaymentType = (schedule, fallback = 'pix') => {
  11. const raw = schedule?.payment_method
  12. ?? schedule?.paymentMethod
  13. ?? schedule?.payment?.payment_method
  14. ?? schedule?.payment?.method
  15. ?? fallback
  16. const value = String(raw ?? fallback).toLowerCase()
  17. if (value.includes('credit') || value.includes('card')) return 'credit_card'
  18. if (value.includes('pix')) return 'pix'
  19. return fallback
  20. }
  21. export const getScheduleTotalWithPlatformFee = (schedule, paymentType, platformFees) => {
  22. const base = Number(schedule?.total_amount) || 0
  23. const feeRate = getSchedulePlatformFeeRate(schedule, paymentType, platformFees)
  24. return parseFloat((base * (1 + (feeRate ?? 0))).toFixed(2))
  25. }