import 'package:get/get.dart'; import '../../../data/models/goods.dart'; String _localeTag() { final l = Get.locale; if (l == null) return 'zh-CN'; final cc = l.countryCode; return cc != null && cc.isNotEmpty ? '${l.languageCode}-${cc.toUpperCase()}' : l.languageCode; } String localizedGoodsName(DBGoods item) { final info = item.localInfo(_localeTag()); final ln = (info['name'] as String?)?.trim() ?? ''; if (ln.isNotEmpty) return ln; final id = item.id.trim(); switch (id) { case 'ai_001': return 'ai_001_name'.tr; case 'ai_002': return 'ai_002_name'.tr; case 'ai_003': return 'ai_003_name'.tr; case 'meet_001': return 'meet_001_name'.tr; case 'meet_002': return 'meet_002_name'.tr; case 'meet_003': return 'meet_003_name'.tr; case 'trade_001': return 'trans_001_name'.tr; case 'trade_002': return 'trans_002_name'.tr; case 'trade_003': return 'trans_003_name'.tr; default: final name = item.name.trim(); return name.isNotEmpty ? name : 'unknown'.tr; } } String localizedGoodsDesc(DBGoods item) { final id = item.id.trim(); switch (id) { case 'ai_001': return 'ai_001_desc'.tr; case 'ai_002': return 'ai_002_desc'.tr; case 'ai_003': return 'ai_003_desc'.tr; case 'meet_001': return 'meet_001_desc'.tr; case 'meet_002': return 'meet_002_desc'.tr; case 'meet_003': return 'meet_003_desc'.tr; case 'trade_001': return 'trans_001_desc'.tr; case 'trade_002': return 'trans_002_desc'.tr; case 'trade_003': return 'trans_003_desc'.tr; default: return ''; } } String goodsDisplayPrice(DBGoods item) { final info = item.localInfo(_localeTag()); final cur = (info['currency'] as String?)?.trim(); final p = info['price']; final symbol = (cur != null && cur.isNotEmpty) ? cur : '¥'; double v; if (p is num) { v = p.toDouble(); } else { v = item.priceYuan; } return '$symbol${v.toStringAsFixed(2)}'; }