package com.example.demo.service;

import java.util.List;

import com.example.demo.dto.ProfileDto;
import com.example.demo.dto.RecipeDto;
import com.example.demo.dto.UpdateProfileDto;
import com.example.demo.dto.UserDto;
import com.example.demo.entity.User;

public interface UserService {
	UserDto convertToDto(User user);

	User saveUser(User user);

	List<UserDto> getAllUsers();

	UserDto getUserById(Integer id);
	
	List<UserDto> getUsersByName(String name);

	UserDto saveFavorite(Integer userId, Integer recipeId);

	UserDto updateUser(User user, Integer id);

	void deleteUser(Integer id);

	void deleteFavorite(Integer userId, Integer recipeId);

	UserDto banUser(Integer id);

	UserDto unbanUser(Integer id);

	UserDto makeAdmin(Integer id);

	UserDto makeUser(Integer id);

	ProfileDto getProfileByUserId(Integer userId);

	ProfileDto getCurrentUserProfile(String username);

	ProfileDto updateProfile(String username, UpdateProfileDto dto);

	List<RecipeDto> getFavoriteRecipesByUsername(String username);
}