interface Sale {
  getAllShoppingCard?: {
    cantProducts?: number
    priceProduct?: number
  }
}

export function calculatePriceTotal (sale: Sale): number {
  const cantProducts = sale?.getAllShoppingCard?.cantProducts ?? 0
  const priceProduct = sale?.getAllShoppingCard?.priceProduct ?? 0

  // Validación para asegurarse de que cantProducts y priceProduct sean números válidos
  if (typeof cantProducts !== 'number' || typeof priceProduct !== 'number') {
    throw new Error('Invalid sale object: cantProducts or priceProduct is not a number.')
  }

  // Validación adicional para asegurarse de que cantProducts y priceProduct sean mayores o iguales a cero
  if (cantProducts < 0 || priceProduct < 0) {
    throw new Error('Invalid sale object: cantProducts or priceProduct is negative.')
  }

  const priceTotal = cantProducts * priceProduct
  return priceTotal
}
