class MealPlanRecipe {
  final int id;
  final String title;
  final String? imageUrl;
  final int? servings;

  const MealPlanRecipe({
    required this.id,
    required this.title,
    this.imageUrl,
    this.servings,
  });

  factory MealPlanRecipe.fromJson(Map<String, dynamic> json) {
    final rawId = json['id'];
    final rawTitle = json['title'] ?? json['name'];
    final rawServings = json['servings'];
    final rawImageUrl = json['imageUrl']?.toString().trim();

    return MealPlanRecipe(
      id: rawId is num ? rawId.toInt() : int.parse(rawId.toString()),
      title: (rawTitle ?? '').toString(),
      imageUrl: rawImageUrl == null || rawImageUrl.isEmpty ? null : rawImageUrl,
      servings: rawServings == null
          ? null
          : rawServings is num
              ? rawServings.toInt()
              : int.tryParse(rawServings.toString()),
    );
  }
}