getWardrobeStats static method

Future<Map<String, dynamic>> getWardrobeStats()

获取衣橱统计信息

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,
  };
}