oppskrift/doc/Models.md
2019-03-05 08:42:35 +01:00

128 lines
3.8 KiB
Markdown

# Models specifications
## Recipe
### estimatedTime
`Array` of different estimated times : cookTime, prepTime, performTime, totalTime, waitTime
cookTime
- https://schema.org/Duration
- The time it takes to actually cook the dish
prepTime
- https://schema.org/Duration
- The length of time it takes to prepare the items to be used in instructions or a direction
performTime
- https://schema.org/Duration
- The length of time it takes to perform instructions or a direction (not including time to prepare the supplies)
totalTime
- https://schema.org/Duration
- The total time required to perform instructions or a direction (including time to prepare the supplies)
waitTime
- https://schema.org/Duration
- The total time needed to wait between steps, in ISO 8601 duration format
- waitTime is not in the schema : https://github.com/schemaorg/schemaorg/issues/2164
### cookingMethod
→ Maybe just not use it, or analyse the text to excerpt it
The method of cooking, such as Frying, Steaming,...
Maybe have a checklist of methods ?
### recipeCategory
`String (255)`
The category of the recipe—for example, appetizer, entree, etc.
### recipeCuisine
`String (255)`
The cuisine of the recipe (for example, French or Ethiopian).
### recipeIngredient
`String[]`
List of ingredients in text format
A single ingredient used in the recipe, e.g. sugar, flour or garlic.
### recipeInstructions
`String[]`
A step in making the recipe, in the form of a single item (document, video, etc.) or an ordered list with HowToStep and/or HowToSection items.
The number of the step should never be the text.
### recipeYield
`String (50)`
The quantity produced by the recipe (for example, number of people served, number of servings, etc).
### suitableForDiet
`Array` of selected keywords (DiabeticDiet, GlutenFreeDiet, HalalDiet, HinduDiet, KosherDiet, LowCalorieDiet, LowFatDiet, LowLactoseDiet, LowSaltDiet, VeganDiet, VegetarianDiet)
Indicates a dietary restriction or guideline for which this recipe or menu item is suitable, e.g. diabetic, halal etc.
TODO : Decide the best way to store the list... maybe in the model
---
### tool
`String[]`
A sub property of instrument. An object used (but not consumed) when performing instructions or a direction.
### author
`ManyToOne:User`
The author, a user
Microdata, JSON-LD : Person with name, url (profile) and image.
### comment
`OneToMany:Note`
A list of Note received from the fediverse
TODO : define a comment
### commentCount
`Integer`
A property to be shown in microdata/json-ld but in the model
### contributor
Maybe add this later. One of the future features is to let someone edit his own version of a recipe. The original author can know about it, accept the changes and add the contributor to the list. But maybe it's too much...
### dateModified-
`DateTime`
The most recent modification date
### datePublished
`DateTime`
The date the first time the recipe appeared online
### dicussionUrl
schema.org value for microdata & JSON-LD linking to the comments section of the recipe
### licence
`String`
URL of the licence used for the recipe or a string such as "Public domain"
### thumbnailUrl
schema.org value for microdata & JSON-LD linking to the thumbnail image of the recipe
### version
Unless there is a versioning system for the recipe there's no point to this
### description
`Text`
The context of the recipe : history, source, ideas to serve it, personal notes, etc..
### image
`String (255)`
URL of the image
### mainEntityOfPage ?
### name
`String (255)`
The name of the recipe
### url
schema.org value for microdata & JSON-LD linking to the url of the recipe, given by the framework's router
### likesCount
`Integer`
Calculated from the likes in the database
### difficulty
The degree of difficulty from a list to define