class RecipeIngredient { final int id; final int productId; final String productName; final double quantity; final String unit; final String? note; const RecipeIngredient({ required this.id, required this.productId, required this.productName, required this.quantity, required this.unit, this.note, }); factory RecipeIngredient.fromJson(Map json) { final product = json['product'] as Map?; final rawQty = json['quantity']; return RecipeIngredient( id: (json['id'] as num).toInt(), productId: (json['productId'] as num).toInt(), productName: product?['name'] as String? ?? '', quantity: rawQty is num ? rawQty.toDouble() : double.tryParse(rawQty?.toString() ?? '') ?? 0, unit: json['unit'] as String? ?? '', note: json['note'] as String?, ); } }