using System.ComponentModel.DataAnnotations; namespace MealPlan.Api.DTOs.Recipe; /// Payload for creating or updating a recipe with nested ingredients and steps. public class CreateRecipeDto { [Required] [MaxLength(255)] public string Name { get; set; } = string.Empty; /// 0 = Breakfast, 1 = SecondBreakfast, 2 = Lunch, 3 = Dinner. [Range(0, 3)] public int MealCategory { get; set; } [Range(0, 100000)] public int? Calories { get; set; } [Range(0, 10000)] public decimal? Protein { get; set; } [Range(0, 10000)] public decimal? Fat { get; set; } [Range(0, 10000)] public decimal? Carbs { get; set; } [Range(0, 100000)] public int? PrepTimeMinutes { get; set; } public List Ingredients { get; set; } = new(); public List Steps { get; set; } = new(); } public class CreateIngredientDto { [Required] [MaxLength(255)] public string Name { get; set; } = string.Empty; [Range(0, 100000)] public decimal? AmountGrams { get; set; } [MaxLength(50)] public string? Unit { get; set; } public int? CatalogItemId { get; set; } public int SortOrder { get; set; } } public class CreateRecipeStepDto { [Range(1, 1000)] public int StepNumber { get; set; } [Required] public string Description { get; set; } = string.Empty; }