cook-mcp-windy
Version:
HowToCook MCP Server - Intelligent Chinese recipe management and meal planning for AI assistants
1,231 lines (1,230 loc) • 57.8 kB
TypeScript
import { z } from 'zod';
export declare const MealType: z.ZodEnum<["早餐", "午餐", "晚餐", "加餐", "夜宵"]>;
export type MealType = z.infer<typeof MealType>;
export declare const DayOfWeek: z.ZodEnum<["周一", "周二", "周三", "周四", "周五", "周六", "周日"]>;
export type DayOfWeek = z.infer<typeof DayOfWeek>;
export declare const DietaryRestriction: z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>;
export type DietaryRestriction = z.infer<typeof DietaryRestriction>;
export declare const MealPlanPreferences: z.ZodObject<{
numberOfPeople: z.ZodNumber;
dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>, "many">>;
allergies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
preferredCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
excludedCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
cookingSkillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
timeConstraints: z.ZodOptional<z.ZodObject<{
maxPrepTime: z.ZodOptional<z.ZodString>;
maxCookTime: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}>>;
nutritionalGoals: z.ZodOptional<z.ZodObject<{
targetCalories: z.ZodOptional<z.ZodNumber>;
highProtein: z.ZodOptional<z.ZodBoolean>;
lowCarb: z.ZodOptional<z.ZodBoolean>;
balanced: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}>;
export type MealPlanPreferences = z.infer<typeof MealPlanPreferences>;
export declare const PlannedMeal: z.ZodObject<{
mealType: z.ZodEnum<["早餐", "午餐", "晚餐", "加餐", "夜宵"]>;
recipe: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
category: z.ZodEnum<["水产", "早餐", "调味料", "甜品", "饮品", "荤菜", "半成品", "汤羹", "主食", "素菜"]>;
difficulty: z.ZodEnum<["简单", "中等", "困难"]>;
servings: z.ZodNumber;
prepTime: z.ZodString;
cookTime: z.ZodString;
totalTime: z.ZodString;
ingredients: z.ZodArray<z.ZodObject<{
name: z.ZodString;
amount: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
amount: string;
notes?: string | undefined;
}, {
name: string;
amount: string;
notes?: string | undefined;
}>, "many">;
steps: z.ZodArray<z.ZodObject<{
stepNumber: z.ZodNumber;
instruction: z.ZodString;
duration: z.ZodOptional<z.ZodString>;
temperature: z.ZodOptional<z.ZodString>;
tips: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}>, "many">;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
cookingMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["炒", "煮", "蒸", "烤", "炸", "焖", "炖", "煎", "拌", "腌", "烧", "卤"]>, "many">>;
nutritionalInfo: z.ZodOptional<z.ZodObject<{
calories: z.ZodOptional<z.ZodNumber>;
protein: z.ZodOptional<z.ZodString>;
carbs: z.ZodOptional<z.ZodString>;
fat: z.ZodOptional<z.ZodString>;
fiber: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}>>;
tips: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
variations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
imageUrl: z.ZodOptional<z.ZodString>;
source: z.ZodOptional<z.ZodString>;
dateAdded: z.ZodString;
lastModified: z.ZodString;
}, "strip", z.ZodTypeAny, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}>;
servings: z.ZodNumber;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}>;
export type PlannedMeal = z.infer<typeof PlannedMeal>;
export declare const DailyMealPlan: z.ZodObject<{
day: z.ZodEnum<["周一", "周二", "周三", "周四", "周五", "周六", "周日"]>;
date: z.ZodString;
meals: z.ZodArray<z.ZodObject<{
mealType: z.ZodEnum<["早餐", "午餐", "晚餐", "加餐", "夜宵"]>;
recipe: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
category: z.ZodEnum<["水产", "早餐", "调味料", "甜品", "饮品", "荤菜", "半成品", "汤羹", "主食", "素菜"]>;
difficulty: z.ZodEnum<["简单", "中等", "困难"]>;
servings: z.ZodNumber;
prepTime: z.ZodString;
cookTime: z.ZodString;
totalTime: z.ZodString;
ingredients: z.ZodArray<z.ZodObject<{
name: z.ZodString;
amount: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
amount: string;
notes?: string | undefined;
}, {
name: string;
amount: string;
notes?: string | undefined;
}>, "many">;
steps: z.ZodArray<z.ZodObject<{
stepNumber: z.ZodNumber;
instruction: z.ZodString;
duration: z.ZodOptional<z.ZodString>;
temperature: z.ZodOptional<z.ZodString>;
tips: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}>, "many">;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
cookingMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["炒", "煮", "蒸", "烤", "炸", "焖", "炖", "煎", "拌", "腌", "烧", "卤"]>, "many">>;
nutritionalInfo: z.ZodOptional<z.ZodObject<{
calories: z.ZodOptional<z.ZodNumber>;
protein: z.ZodOptional<z.ZodString>;
carbs: z.ZodOptional<z.ZodString>;
fat: z.ZodOptional<z.ZodString>;
fiber: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}>>;
tips: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
variations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
imageUrl: z.ZodOptional<z.ZodString>;
source: z.ZodOptional<z.ZodString>;
dateAdded: z.ZodString;
lastModified: z.ZodString;
}, "strip", z.ZodTypeAny, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}>;
servings: z.ZodNumber;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}>, "many">;
totalCalories: z.ZodOptional<z.ZodNumber>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}, {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}>;
export type DailyMealPlan = z.infer<typeof DailyMealPlan>;
export declare const WeeklyMealPlan: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
startDate: z.ZodString;
endDate: z.ZodString;
preferences: z.ZodObject<{
numberOfPeople: z.ZodNumber;
dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>, "many">>;
allergies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
preferredCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
excludedCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
cookingSkillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
timeConstraints: z.ZodOptional<z.ZodObject<{
maxPrepTime: z.ZodOptional<z.ZodString>;
maxCookTime: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}>>;
nutritionalGoals: z.ZodOptional<z.ZodObject<{
targetCalories: z.ZodOptional<z.ZodNumber>;
highProtein: z.ZodOptional<z.ZodBoolean>;
lowCarb: z.ZodOptional<z.ZodBoolean>;
balanced: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}, {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}, {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
}>;
dailyPlans: z.ZodArray<z.ZodObject<{
day: z.ZodEnum<["周一", "周二", "周三", "周四", "周五", "周六", "周日"]>;
date: z.ZodString;
meals: z.ZodArray<z.ZodObject<{
mealType: z.ZodEnum<["早餐", "午餐", "晚餐", "加餐", "夜宵"]>;
recipe: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
category: z.ZodEnum<["水产", "早餐", "调味料", "甜品", "饮品", "荤菜", "半成品", "汤羹", "主食", "素菜"]>;
difficulty: z.ZodEnum<["简单", "中等", "困难"]>;
servings: z.ZodNumber;
prepTime: z.ZodString;
cookTime: z.ZodString;
totalTime: z.ZodString;
ingredients: z.ZodArray<z.ZodObject<{
name: z.ZodString;
amount: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
amount: string;
notes?: string | undefined;
}, {
name: string;
amount: string;
notes?: string | undefined;
}>, "many">;
steps: z.ZodArray<z.ZodObject<{
stepNumber: z.ZodNumber;
instruction: z.ZodString;
duration: z.ZodOptional<z.ZodString>;
temperature: z.ZodOptional<z.ZodString>;
tips: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}, {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}>, "many">;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
cookingMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<["炒", "煮", "蒸", "烤", "炸", "焖", "炖", "煎", "拌", "腌", "烧", "卤"]>, "many">>;
nutritionalInfo: z.ZodOptional<z.ZodObject<{
calories: z.ZodOptional<z.ZodNumber>;
protein: z.ZodOptional<z.ZodString>;
carbs: z.ZodOptional<z.ZodString>;
fat: z.ZodOptional<z.ZodString>;
fiber: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}, {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
}>>;
tips: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
variations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
imageUrl: z.ZodOptional<z.ZodString>;
source: z.ZodOptional<z.ZodString>;
dateAdded: z.ZodString;
lastModified: z.ZodString;
}, "strip", z.ZodTypeAny, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}, {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
}>;
servings: z.ZodNumber;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}, {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}>, "many">;
totalCalories: z.ZodOptional<z.ZodNumber>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}, {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}>, "many">;
createdAt: z.ZodString;
lastModified: z.ZodString;
}, "strip", z.ZodTypeAny, {
name: string;
id: string;
lastModified: string;
startDate: string;
endDate: string;
preferences: {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
};
dailyPlans: {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}[];
createdAt: string;
}, {
name: string;
id: string;
lastModified: string;
startDate: string;
endDate: string;
preferences: {
numberOfPeople: number;
dietaryRestrictions?: ("素食" | "纯素食" | "无麸质" | "低盐" | "低糖" | "低脂" | "高蛋白" | "无坚果" | "无海鲜" | "无乳制品")[] | undefined;
allergies?: string[] | undefined;
preferredCategories?: string[] | undefined;
excludedCategories?: string[] | undefined;
budgetLevel?: "中等" | "经济" | "高档" | undefined;
cookingSkillLevel?: "初学者" | "中级" | "高级" | undefined;
timeConstraints?: {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
} | undefined;
nutritionalGoals?: {
targetCalories?: number | undefined;
highProtein?: boolean | undefined;
lowCarb?: boolean | undefined;
balanced?: boolean | undefined;
} | undefined;
};
dailyPlans: {
date: string;
day: "周一" | "周二" | "周三" | "周四" | "周五" | "周六" | "周日";
meals: {
servings: number;
mealType: "早餐" | "午餐" | "晚餐" | "加餐" | "夜宵";
recipe: {
name: string;
id: string;
category: "水产" | "早餐" | "调味料" | "甜品" | "饮品" | "荤菜" | "半成品" | "汤羹" | "主食" | "素菜";
difficulty: "简单" | "中等" | "困难";
servings: number;
prepTime: string;
cookTime: string;
totalTime: string;
ingredients: {
name: string;
amount: string;
notes?: string | undefined;
}[];
steps: {
stepNumber: number;
instruction: string;
duration?: string | undefined;
temperature?: string | undefined;
tips?: string | undefined;
}[];
dateAdded: string;
lastModified: string;
tips?: string[] | undefined;
description?: string | undefined;
tags?: string[] | undefined;
cookingMethods?: ("炒" | "煮" | "蒸" | "烤" | "炸" | "焖" | "炖" | "煎" | "拌" | "腌" | "烧" | "卤")[] | undefined;
nutritionalInfo?: {
calories?: number | undefined;
protein?: string | undefined;
carbs?: string | undefined;
fat?: string | undefined;
fiber?: string | undefined;
} | undefined;
variations?: string[] | undefined;
imageUrl?: string | undefined;
source?: string | undefined;
};
notes?: string | undefined;
}[];
notes?: string | undefined;
totalCalories?: number | undefined;
}[];
createdAt: string;
}>;
export type WeeklyMealPlan = z.infer<typeof WeeklyMealPlan>;
export declare const MealPlanRequest: z.ZodObject<{
preferences: z.ZodObject<{
numberOfPeople: z.ZodNumber;
dietaryRestrictions: z.ZodOptional<z.ZodArray<z.ZodEnum<["素食", "纯素食", "无麸质", "低盐", "低糖", "低脂", "高蛋白", "无坚果", "无海鲜", "无乳制品"]>, "many">>;
allergies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
preferredCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
excludedCategories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
budgetLevel: z.ZodOptional<z.ZodEnum<["经济", "中等", "高档"]>>;
cookingSkillLevel: z.ZodOptional<z.ZodEnum<["初学者", "中级", "高级"]>>;
timeConstraints: z.ZodOptional<z.ZodObject<{
maxPrepTime: z.ZodOptional<z.ZodString>;
maxCookTime: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
maxPrepTime?: string | undefined;
maxCookTime?: string | undefined;
}, {