package utils

import "fmt"

func BatteryPercent(level any) string {
	if level == nil {
		return "0"
	}

	var value float64

	switch v := level.(type) {
	case int:
		value = float64(v)
	case int32:
		value = float64(v)
	case int64:
		value = float64(v)
	case float32:
		value = float64(v)
	case float64:
		value = v
	case *int:
		if v == nil {
			return "0"
		}
		value = float64(*v)
	case *int32:
		if v == nil {
			return "0"
		}
		value = float64(*v)
	case *int64:
		if v == nil {
			return "0"
		}
		value = float64(*v)
	default:
		return "0"
	}

	if value < 0 {
		return "0"
	}

	percent := (value / 6) * 100
	return fmt.Sprintf("%.2f", percent)
}
