import '../../core/api/api_client.dart'; import '../../shared/models/product.dart'; /// Service for looking up catalog products by barcode or search query. /// Used in the diary flow to log pre-packaged foods. class FoodProductService { const FoodProductService(this._client); final ApiClient _client; /// Fetches catalog product by barcode. Returns null when not found. Future getByBarcode(String barcode) async { try { final data = await _client.get('/products/barcode/$barcode'); return CatalogProduct.fromJson(data); } catch (_) { return null; } } /// Searches catalog products by name query. Future> searchProducts(String query) async { if (query.isEmpty) return []; final list = await _client.getList( '/products/search', params: {'q': query, 'limit': '10'}, ); return list .map((e) => CatalogProduct.fromJson(e as Map)) .toList(); } }