classifyPackage method

Future<String> classifyPackage(
  1. String packageName
)

Classify a package and return its primary category Order: local cache → API

Implementation

Future<String> classifyPackage(String packageName) async {
  // Step 1: Check local cache first
  final PackageCategory? cached = cacheService.get(packageName);
  if (cached != null && cacheService.isValid(cached)) {
    return cached.primaryCategory;
  }

  // Step 2: Fetch from API (API has built-in heuristic fallback)
  final PackageCategory? apiCategory =
      await apiService.fetchPackage(packageName);
  if (apiCategory != null) {
    await cacheService.save(packageName, apiCategory);
    return apiCategory.primaryCategory;
  }

  // Fallback if API fails
  return 'Miscellaneous';
}