54 lines
1.1 KiB
TypeScript
54 lines
1.1 KiB
TypeScript
// Base PB type
|
|
export interface BaseRecord {
|
|
id: string,
|
|
created: string,
|
|
updated: string
|
|
}
|
|
|
|
export interface Ingredient extends BaseRecord {
|
|
quantity: string,
|
|
unit: string,
|
|
name: string
|
|
}
|
|
|
|
export interface Step extends BaseRecord {
|
|
index: number,
|
|
instruction: string,
|
|
ingredients?: Ingredient[]
|
|
}
|
|
|
|
export interface Tag extends BaseRecord {
|
|
name: string
|
|
}
|
|
|
|
// not sure Image is the best type cos it might be quite heavy to get all the fields every time but
|
|
// it is here in case it is (a good idea)
|
|
export interface Image extends BaseRecord {
|
|
id: string
|
|
}
|
|
|
|
export interface Recipe extends BaseRecord {
|
|
name: string,
|
|
description?: string,
|
|
servings?: number,
|
|
images?: string[], // image IDs
|
|
ingredients: string[]
|
|
steps: string[],
|
|
tags?: string[]
|
|
|
|
expand: {
|
|
images?: Image[], // image IDs,
|
|
ingredients: Ingredient[]
|
|
steps: Step[],
|
|
tags?: Tag[]
|
|
}
|
|
}
|
|
|
|
export const Collection = {
|
|
RECIPES: 'recipes',
|
|
STEPS: 'steps',
|
|
INGREDIENTS: 'ingredients',
|
|
TAGS: 'tags',
|
|
IMAGES: 'images'
|
|
}
|