29 lines
1013 B
Dart
29 lines
1013 B
Dart
import 'package:leonteva_pmu/data/dtos/recipes_dto.dart';
|
|
import 'package:leonteva_pmu/domain/models/card.dart';
|
|
|
|
const String imagePlaceholder =
|
|
'https://cdn-icons-png.flaticon.com/512/4036/4036418.png';
|
|
|
|
extension RecipeDataDtoToModel on RecipeDataDto {
|
|
CardData toDomain() => CardData(
|
|
recipe?.label ?? 'UNKNOWN', // Используем поле label из recipe.
|
|
imageUrl: recipe?.image ?? imagePlaceholder, // Используем поле image.
|
|
descriptionText: _makeDescriptionText(
|
|
recipe?.calories?.toString(), // Преобразуем double в строку.
|
|
recipe?.url, // Используем поле url.
|
|
),
|
|
);
|
|
|
|
String _makeDescriptionText(String? calories, String? url) {
|
|
if (calories != null && url != null) {
|
|
return 'Calories: $calories\nURL: $url';
|
|
} else if (calories != null) {
|
|
return 'Calories: $calories';
|
|
} else if (url != null) {
|
|
return 'URL: $url';
|
|
} else {
|
|
return 'No description available';
|
|
}
|
|
}
|
|
}
|