Files
eatvio_app/lib/features/create_recipe/models/recipe_create_model.dart
2025-04-04 20:21:31 +07:00

38 lines
1.2 KiB
Dart

import 'package:eatvio_app/features/create_recipe/models/ingredient.dart';
import 'package:eatvio_app/features/create_recipe/models/step.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'recipe_create_model.freezed.dart';
part 'recipe_create_model.g.dart';
enum RecipeType {
@JsonKey(name: 'first_meals') firstMeals,
@JsonKey(name: 'second_meals') secondMeals,
salads,
snacks,
sweets,
drinks,
other
}
@freezed
class RecipeCreateModel with _$RecipeCreateModel {
const factory RecipeCreateModel({
required String title,
required String state,
@JsonKey(name: 'description_md') required String description,
required RecipeType type,
@JsonKey(name: 'video_url') String? videoUrl,
@JsonKey(name: 'cooking_time') String? cookingTime,
@JsonKey(name: 'active_time') String? activeTime,
required String servings,
@JsonKey(name: 'energy_per_serving') required String energyPerServing,
required List<String> tags,
required List<Ingredient> ingredients,
required List<Step> steps,
}) = _RecipeCreateModel;
factory RecipeCreateModel.fromJson(Map<String, Object?> json) => _$RecipeCreateModelFromJson(json);
}