/**
 * 生成唯一ID
 * @param prefix - 可选的ID前缀
 * @returns 唯一ID字符串
 */
export function generateUniqueId(prefix?: string): string {
    // 获取当前时间戳
    const timestamp = Date.now();

    // 生成随机数部分
    const randomPart = Math.random().toString(36).substring(2, 8);

    // 获取环境特定的额外随机性
    const environmentPart = typeof window !== 'undefined'
        ? window.crypto.getRandomValues(new Uint32Array(1))[0].toString(36)
        : require('crypto').randomBytes(4).toString('hex');

    // 组合所有部分
    const uniquePart = `${timestamp}${randomPart}${environmentPart}`;

    // 如果提供了前缀，则添加前缀
    return prefix ? `${prefix}_${uniquePart}` : uniquePart;
}