import PropTypes from 'prop-types';
import FoodRangeCategory from '../../../data/enum/FoodRangeCategory';
import healthyExtraShape from './healthyExtra';
import imageShape from './image';
/** @module */
/**
* Reusable object to use in `propTypes` for a `recipe` prop in a detail page.
* @type {Object}
* @category templating
*/
const recipeDetailShape = {
slug: PropTypes.string,
characteristics: PropTypes.number,
cuisine: PropTypes.number,
description: PropTypes.string,
contentGroup: PropTypes.string,
image: PropTypes.shape(imageShape),
ingredients: PropTypes.arrayOf(PropTypes.string),
subSections: PropTypes.arrayOf(
PropTypes.shape({
title: PropTypes.string,
ingredients: PropTypes.arrayOf(PropTypes.string),
}),
),
healthyExtras: PropTypes.arrayOf(PropTypes.shape(healthyExtraShape)),
mealType: PropTypes.number,
method: PropTypes.arrayOf(PropTypes.string),
palette: PropTypes.string,
preparationTime: PropTypes.number,
cookingTime: PropTypes.number,
likeCount: PropTypes.number,
totalTime: PropTypes.number,
additionalTimeInMinutes: PropTypes.number,
additionalTimeSuffix: PropTypes.string,
seasonal: PropTypes.number,
servings: PropTypes.number,
syns: PropTypes.number,
tip: PropTypes.string,
title: PropTypes.string,
_source: PropTypes.shape({
actionType: PropTypes.string.isRequired,
}),
related: PropTypes.arrayOf(
PropTypes.shape({
characteristics: PropTypes.number,
id: PropTypes.string,
image: PropTypes.shape(imageShape),
isFoodRange: PropTypes.bool,
link: PropTypes.string,
palette: PropTypes.string,
servings: PropTypes.number,
syns: PropTypes.number,
title: PropTypes.string,
totalTime: PropTypes.number,
}),
),
isPublic: PropTypes.bool,
isFoodRange: PropTypes.bool,
foodRangeCategoryId: PropTypes.oneOf(Object.values(FoodRangeCategory)),
id: PropTypes.string,
};
export default recipeDetailShape;