package utils

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"time"

	"github.com/google/uuid"
)

func GetYMDMHS() string {
	// 获取当前时间
	currentTime := time.Now()

	// 格式化时间为 "年-月-日 时:分:秒"
	formattedTime := currentTime.Format("2006-01-02 15:04:05")

	return formattedTime
}

func ReadFile(filePath string) (string, error) {
	data, err := ioutil.ReadFile(filePath)
	if err != nil {
		return "", fmt.Errorf("读取身份信息失败：%v", err)
	}
	return string(data), nil
}

func FileExists(path, filename string) (bool, error) {
	// 构造完整的文件路径
	filePath := filepath.Join(path, filename)

	// 使用 os.Stat 检查文件是否存在
	_, err := os.Stat(filePath)
	if err != nil {
		// 如果错误是 "文件不存在"，则返回 false
		if os.IsNotExist(err) {
			return false, nil
		}
		// 如果其他错误，返回错误信息
		return false, err
	}

	// 如果没有错误，文件存在
	return true, nil
}

// 检查文件路径是否存在
func CheckFileExists(path string) bool {
	_, err := os.Stat(path)
	return !os.IsNotExist(err)
}

func WirteFile(filePath, content string) {
	// // 要写入的文件路径
	// filePath := "example.txt"
	// // 要写入的内容
	// content := "Hello, Go! This is a test."

	// 创建/打开文件，覆盖写入
	file, err := os.Create(filePath) // 这里会覆盖原有内容，如果文件不存在会创建新文件
	if err != nil {
		fmt.Println("文件创建失败:", err)
		return
	}
	defer file.Close() // 确保文件在写入后关闭

	// 写入内容
	_, err = file.WriteString(content)
	if err != nil {
		fmt.Println("写入文件失败:", err)
		return
	}

	fmt.Println("文件写入成功")
}

func GenerateUUID() string {
	// 生成一个新的 UUID
	id := uuid.New()
	return id.String()
}

// func CheckMiningMsg(msg message.ConfigurationMiningMsg) bool{
// 	coin, algo, pool := msg.Coin, msg.Algo, msg.Pool

// }
