2026-04-17 15:02:09 +02:00
|
|
|
export type Ingredient = {
|
|
|
|
|
position: number;
|
|
|
|
|
quantity: number | null;
|
|
|
|
|
unit: string | null;
|
|
|
|
|
name: string;
|
|
|
|
|
note: string | null;
|
|
|
|
|
raw_text: string;
|
2026-04-19 14:49:42 +02:00
|
|
|
section_heading: string | null;
|
2026-04-17 15:02:09 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type Step = {
|
|
|
|
|
position: number;
|
|
|
|
|
text: string;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type Recipe = {
|
|
|
|
|
id: number | null;
|
|
|
|
|
title: string;
|
|
|
|
|
description: string | null;
|
|
|
|
|
source_url: string | null;
|
|
|
|
|
source_domain: string | null;
|
|
|
|
|
image_path: string | null;
|
|
|
|
|
servings_default: number | null;
|
|
|
|
|
servings_unit: string | null;
|
|
|
|
|
prep_time_min: number | null;
|
|
|
|
|
cook_time_min: number | null;
|
|
|
|
|
total_time_min: number | null;
|
|
|
|
|
cuisine: string | null;
|
|
|
|
|
category: string | null;
|
|
|
|
|
ingredients: Ingredient[];
|
|
|
|
|
steps: Step[];
|
|
|
|
|
tags: string[];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type Profile = {
|
|
|
|
|
id: number;
|
|
|
|
|
name: string;
|
|
|
|
|
avatar_emoji: string | null;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type AllowedDomain = {
|
|
|
|
|
id: number;
|
|
|
|
|
domain: string;
|
|
|
|
|
display_name: string | null;
|
2026-04-18 08:17:44 +02:00
|
|
|
favicon_path: string | null;
|
2026-04-17 15:02:09 +02:00
|
|
|
};
|