/**
 * 图片处理工具函数
 */

/**
 * 处理逗号分隔的图片URL
 * @param {string} imageUrl - 逗号分隔的图片URL字符串
 * @returns {Array} 图片URL数组
 */
export const getImageList = (imageUrl) => {
    if (!imageUrl || imageUrl.trim() === '') {
        return [];
    }
    // 按逗号分割并过滤空字符串
    return imageUrl.split(',').map(url => url.trim()).filter(url => url !== '');
};

/**
 * 获取代理图片URL（如果后端支持）
 * @param {string} originalUrl - 原始图片URL
 * @returns {string} 代理后的URL或原始URL
 */
export const getProxyImageUrl = (originalUrl) => {
    if (!originalUrl || !originalUrl.startsWith('http')) {
        return originalUrl;
    }
    // 使用后端代理访问图片，避免CORS问题
    // 注意：这里需要完整的URL路径
    return `/api/member/proxy/image?url=${encodeURIComponent(originalUrl)}`;
};

/**
 * 测试图片URL的可访问性
 * @param {string} imageUrl - 图片URL
 * @returns {Promise<boolean>} 是否可访问
 */
export const testImageUrl = async (imageUrl) => {
    try {
        console.log('测试图片URL:', imageUrl);
        const response = await fetch(imageUrl, { 
            method: 'HEAD',
            mode: 'cors'
        });
        console.log('图片URL测试结果:', {
            url: imageUrl,
            status: response.status,
            statusText: response.statusText,
            headers: Object.fromEntries(response.headers.entries())
        });
        return response.ok;
    } catch (error) {
        console.error('图片URL测试失败:', imageUrl, error);
        return false;
    }
};

/**
 * 处理图片加载错误
 * @param {string} imageUrl - 失败的图片URL
 * @param {number} index - 图片索引
 */
export const handleImageError = (imageUrl, index) => {
    // 如果是腾讯云COS图片，这是预期的CORS错误，不需要详细日志
    if (imageUrl.includes('cos.ap-guangzhou.myqcloud.com')) {
        console.log(`腾讯云COS图片加载失败 (索引: ${index}):`, imageUrl);
        console.log('这是预期的CORS错误，图片将显示占位符');
        return;
    }
    
    // 其他图片的错误才显示详细日志
    console.error(`图片加载失败 (索引: ${index}):`, imageUrl);
    console.error('可能的原因:');
    console.error('1. URL格式不正确');
    console.error('2. 服务器无法访问');
    console.error('3. CORS跨域问题');
    console.error('4. 网络连接问题');
    
    // 尝试手动验证URL
    try {
        const url = new URL(imageUrl);
        console.error('URL解析成功:', url.href);
        console.error('协议:', url.protocol);
        console.error('主机:', url.hostname);
        console.error('路径:', url.pathname);
    } catch (e) {
        console.error('URL格式无效:', e.message);
    }
};

/**
 * 获取图片列表（带代理支持）
 * @param {string} imageUrl - 逗号分隔的图片URL字符串
 * @param {boolean} useProxy - 是否使用代理
 * @returns {Array} 处理后的图片URL数组
 */
export const getImageListWithProxy = (imageUrl, useProxy = false) => {
    const urls = getImageList(imageUrl);
    
    if (useProxy) {
        return urls.map(url => getProxyImageUrl(url));
    }
    
    return urls;
};

/**
 * 智能图片URL处理 - 根据域名决定是否使用代理
 * @param {string} imageUrl - 逗号分隔的图片URL字符串
 * @returns {Array} 处理后的图片URL数组
 */
export const getImageListSmart = (imageUrl) => {
    const urls = getImageList(imageUrl);
    
    return urls.map(url => {
        // 如果是腾讯云COS的图片，暂时直接返回原始URL
        // 浏览器会显示占位符，但不会报错
        if (url.includes('cos.ap-guangzhou.myqcloud.com')) {
            console.log('检测到腾讯云COS图片，暂时使用原始URL（显示占位符）:', url);
            return url; // 暂时直接返回，让浏览器显示占位符
        }
        // 其他图片直接返回原始URL
        console.log('其他图片，直接使用原始URL:', url);
        return url;
    });
};
