package util

import "strings"

// CleanGoodsTitle 清洗电商商品标题，保留品牌+核心商品名称+规格
// 整合美团、京东、天猫平台的清洗规则，提取商品关键信息
// 示例："【限时优惠】苹果 iPhone 14 Pro 256G 金色！" → "iPhone 14 Pro 金色 256G"
func CleanGoodsTitle(title string) string {
	// 创建标题清洗器实例，复用现有清洗规则
	cleaner := NewTitleCleaner()
	
	// 1. 基础清洗：移除促销词、店铺类型、特殊符号等冗余信息
	cleanedTitle := cleaner.Clean(title)
	if cleanedTitle == "" {
		return title // 清洗失败时返回原始标题
	}
	
	// 2. 提取规格信息（如500g、256G、5斤装等）
	spec := cleaner.ExtractSpec(cleanedTitle)
	
	// 3. 提取核心商品名称（已移除规格部分）
	coreName := cleaner.ExtractProductName(cleanedTitle)
	
	// 4. 组合品牌+核心名称+规格，确保格式正确
	var result strings.Builder
	result.WriteString(coreName)
	if spec != "" {
		// 确保规格前有空格分隔
		if result.Len() > 0 {
			result.WriteString(" ")
		}
		result.WriteString(spec)
	}
	
	// 5. 最终清理多余空格
	finalResult := strings.TrimSpace(result.String())
	
	// 6. 降级处理：如果结果为空则返回基础清洗后的标题
	if finalResult == "" {
		return cleanedTitle
	}
	
	return finalResult
}
