import 'dart:convert'; import 'package:flutter/services.dart'; import '../models/nutrient.dart'; class NutrientDataService { static final NutrientDataService _instance = NutrientDataService._internal(); factory NutrientDataService() { return _instance; } NutrientDataService._internal(); List? _nutrients; Future> get nutrients async { if (_nutrients != null) { return _nutrients!; } await _loadNutrientData(); return _nutrients!; } Future _loadNutrientData() async { try { final String response = await rootBundle.loadString('assets/canada_health.json'); final data = await json.decode(response); final nutrientsData = data['nutrients'] as Map; _nutrients = nutrientsData.entries.map((entry) { return Nutrient.fromJson(entry.key, entry.value); }).toList(); } catch (e) { print('Error loading nutrient data: $e'); _nutrients = []; } } }