/**
 * 微信小程序 v-for :key 仅支持简单属性访问，不支持模板表达式。
 * 在 JS 中为列表项预生成 _wxKey 后，模板使用 :key="item._wxKey"
 */
export function withWxKey(list, idField = 'id', fallbackPrefix = 'i') {
	return (list || []).map((item, index) => ({
		...item,
		_wxKey: item[idField] != null && item[idField] !== ''
			? String(item[idField])
			: `${fallbackPrefix}${index}`,
	}))
}

/** 单条消息/列表项补全 _wxKey（用于 push、$set 等增量更新） */
export function ensureWxKey(item, idField = 'id', fallback) {
	if (!item || typeof item !== 'object') return item
	if (item._wxKey != null && item._wxKey !== '') return item
	const id = item[idField]
	return {
		...item,
		_wxKey: id != null && id !== '' ? String(id) : String(fallback),
	}
}
