classifyPackage method
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';
}