package points

import "math"

// CentsToPoints converts monetary value (in cents) to points based on the exchange rate (X Points per 1 Yuan).
// Now: 1 Yuan = 100 Cents.
// If Rate = 1 (1 Point = 1 Yuan), then 100 Cents = 1 Point.
// Formula: points = (cents * rate) / 100
func CentsToPoints(cents int64, rate float64) int64 {
	if rate <= 0 {
		rate = 1
	}
	// Use rounding to avoid precision loss on division
	return int64(math.Round((float64(cents) * rate) / 100.0))
}

// PointsToCents converts points to monetary value (in cents).
// If Rate = 1 (1 Point = 1 Yuan), then 1 Point = 100 Cents.
// Formula: cents = (points * 100) / rate
func PointsToCents(points int64, rate float64) int64 {
	if rate <= 0 {
		rate = 1
	}
	return int64(math.Round((float64(points) * 100.0) / rate))
}
