package utils

import (
	"crypto/rand"
	"encoding/hex"
	"time"
)

// GenerateID 生成唯一ID
func GenerateID() string {
	timestamp := time.Now().UnixNano()
	randomBytes := make([]byte, 4)
	rand.Read(randomBytes)
	return hex.EncodeToString([]byte{
		byte(timestamp >> 56),
		byte(timestamp >> 48),
		byte(timestamp >> 40),
		byte(timestamp >> 32),
		byte(timestamp >> 24),
		byte(timestamp >> 16),
		byte(timestamp >> 8),
		byte(timestamp),
	}) + hex.EncodeToString(randomBytes)
}

// GenerateShortID 生成短ID
func GenerateShortID() string {
	randomBytes := make([]byte, 6)
	rand.Read(randomBytes)
	return hex.EncodeToString(randomBytes)
}
