package utils

import (
	"github.com/shopspring/decimal"
	"unicode"
)

//HasEnglish 判断字符串是否包含英文
func HasEnglish(s string) bool {
	for _, r := range s {
		if unicode.Is(unicode.Latin, r) {
			return true
		}
	}
	return false
}

//HasChinese 判断字符串是否包含中文
func HasChinese(s string) bool {
	for _, r := range s {
		if unicode.Is(unicode.Han, r) {
			return true
		}
	}
	return false
}

//HasEnglishAndChinese 判断字符串是否同时包含英文和中文
func HasEnglishAndChinese(s string) bool {
	return HasEnglish(s) && HasChinese(s)
}

//FirstIsBiggerOrEqualDec 比较两个string转化成数字对比大小
func FirstIsBiggerOrEqualDec(dec1, dec2 decimal.Decimal) (bool, error) {

	// 比较 decimal.Decimal 值
	if dec1.LessThan(dec2) {
		return false, nil
	}

	return true, nil

}

//FirstIsBiggerOrEqual 比较两个string转化成数字对比大小
func FirstIsBiggerOrEqual(dec1 decimal.Decimal, b string) (bool, error) {

	dec2, err := decimal.NewFromString(b)
	if err != nil {
		return false, err
	}

	// 比较 decimal.Decimal 值
	if dec1.LessThan(dec2) {
		return false, nil
	}

	return true, nil

}

//FirstIsBiggerOrEqualString 比较两个string转化成数字对比大小
func FirstIsBiggerOrEqualString(a, b string) (bool, error) {

	dec1, err := decimal.NewFromString(a)
	if err != nil {
		return false, err
	}

	dec2, err := decimal.NewFromString(b)
	if err != nil {
		return false, err
	}

	// 比较 decimal.Decimal 值
	if dec1.LessThan(dec2) {
		return false, nil
	}

	return true, nil

}