package domain

import (
	"github.com/gin-gonic/gin"
)

type RecipeService interface {
	CreateRecipe(ctx *gin.Context) (*Recipe, error)
	EditRecipe(ctx *gin.Context, recipeId, userId int) (*Recipe, error)
	DeleteRecipe(userId, recipeId int) error
	GetRecipe(id int, userId *int) (*Recipe, error)
	SearchRecipes(filters SearchFilters, userId *int, favorites bool) ([]Recipe, error)
	GetUserRecipes(userId int) ([]Recipe, error)
	GetUserFavoriteRecipes(userId int) ([]Recipe, error)
	GetUserViewedRecipes(userId, limit int) ([]Recipe, error)
	GetUserMadeRecipes(userId, limit int) ([]Recipe, error)
	GetRecipeOfTheWeek(userId *int) (*Recipe, error)
	IsRecipeOwner(userId *int, recipeId int) (bool, error)
}
