import 'meal_plan_recipe.dart';

class MealPlanEntry {
  final int id;
  final DateTime date;
  final int? servings;
  final MealPlanRecipe recipe;

  const MealPlanEntry({
    required this.id,
    required this.date,
    required this.recipe,
    this.servings,
  });

  factory MealPlanEntry.fromJson(Map<String, dynamic> json) {
    final rawId = json['id'];
    final rawServings = json['servings'];

    return MealPlanEntry(
      id: rawId is num ? rawId.toInt() : int.parse(rawId.toString()),
      date: DateTime.parse(json['date'].toString()),
      servings: rawServings == null
          ? null
          : rawServings is num
              ? rawServings.toInt()
              : int.tryParse(rawServings.toString()),
      recipe: MealPlanRecipe.fromJson(json['recipe'] as Map<String, dynamic>),
    );
  }
}