getWardrobeStats static method
获取衣橱统计信息
Implementation
static Future<Map<String, dynamic>> getWardrobeStats() async {
final items = await getAllClothingItems();
// 按分类统计
final categoryStats = <String, int>{};
for (var item in items) {
categoryStats[item.category] = (categoryStats[item.category] ?? 0) + 1;
}
// 按风格统计
final styleStats = <String, int>{};
for (var item in items) {
styleStats[item.style] = (styleStats[item.style] ?? 0) + 1;
}
// 按颜色统计
final colorStats = <String, int>{};
for (var item in items) {
for (var color in item.colors) {
colorStats[color] = (colorStats[color] ?? 0) + 1;
}
}
// 最常穿的衣物
final sortedByWear = items.toList()
..sort((a, b) => b.wearCount.compareTo(a.wearCount));
final mostWorn = sortedByWear.take(5).toList();
// 冷门衣物(从未穿过或很少穿)
final leastWorn = items.where((item) => item.wearCount <= 1).toList();
return {
'totalItems': items.length,
'categoryStats': categoryStats,
'styleStats': styleStats,
'colorStats': colorStats,
'mostWorn': mostWorn,
'leastWorn': leastWorn,
};
}