import 'recipe_ingredient.dart'; class Recipe { final int id; final String title; final String? description; final String? imageUrl; final int? servings; final String? instructions; final List ingredients; const Recipe({ required this.id, required this.title, this.description, this.imageUrl, this.servings, this.instructions, this.ingredients = const [], }); factory Recipe.fromJson(Map json) { final dynamic rawId = json['id']; final dynamic rawTitle = json['title'] ?? json['name']; final dynamic rawDescription = json['description']; final dynamic rawImageUrl = json['imageUrl']; final dynamic rawServings = json['servings']; final rawIngredients = json['ingredients'] as List? ?? []; return Recipe( id: rawId is num ? rawId.toInt() : int.parse(rawId.toString()), title: (rawTitle ?? '').toString(), description: rawDescription == null ? null : rawDescription.toString(), imageUrl: rawImageUrl == null ? null : rawImageUrl.toString(), servings: rawServings == null ? null : (rawServings is num ? rawServings.toInt() : int.tryParse(rawServings.toString())), instructions: json['instructions'] as String?, ingredients: rawIngredients .map((i) => RecipeIngredient.fromJson(i as Map)) .toList(), ); } }