import type { Recipe, RecipeDuration, RecipeIngredient, RecipeIngredientSection, RecipeInstruction, RecipeMeal } from "../recipe";

export interface GetRecipeOfTheWeekResponse {
  status: number;
  message: string;
  recipe?: Recipe;
}

export interface GetRecipeResponse {
  status: number;
  message: string;
  recipe?: Recipe;
}

export interface SearchRecipesResponse {
  status: number;
  message: string;
  recipes?: Recipe[];
}

export interface CreateRecipeResponse {
  status: number;
  message: string;
  recipe?: Recipe;
}

export interface EditRecipeResponse {
  status: number;
  message: string;
  recipe?: Recipe;
}

export interface CreateRecipeRequest {
  Title: string;
  Description: string;
  Instructions: RecipeInstruction[];
  Serves: number;
  Difficulty: number;
  Duration: RecipeDuration;
  Category: RecipeMeal;
  Ingredients: RecipeIngredient[];
  Sections: RecipeIngredientSection[];
  Tags: string[];
}

export interface EditRecipeRequest {
  Id: number;
  Title: string;
  Description: string;
  Instructions: RecipeInstruction[];
  Serves: number;
  Difficulty: number;
  Duration: RecipeDuration;
  Category: RecipeMeal;
  Ingredients: RecipeIngredient[];
  Sections: RecipeIngredientSection[];
  Tags: string[];
}

export interface DeleteRecipeResponse {
  status: number;
  message: string;
}

export interface IsRecipeOwnerResponse {
  owner: boolean;
  status: number;
  message: string;
}
