using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.ItemEvent; using SPTarkov.Server.Core.Models.Eft.Wishlist; using SPTarkov.Server.Core.Routers; using SPTarkov.Common.Annotations; namespace SPTarkov.Server.Core.Controllers; [Injectable] public class WishlistController( EventOutputHolder _eventOutputHolder ) { /// /// Handle AddToWishList /// /// Players PMC profile /// /// Session/Player id /// public ItemEventRouterResponse AddToWishList( PmcData pmcData, AddToWishlistRequest request, string sessionId) { foreach (var item in request.Items) { pmcData.WishList.Dictionary.Add(item.Key, item.Value); } return _eventOutputHolder.GetOutput(sessionId); } /// /// Handle RemoveFromWishList event /// /// Players PMC profile /// /// Session/Player id /// public ItemEventRouterResponse RemoveFromWishList( PmcData pmcData, RemoveFromWishlistRequest request, string sessionId) { foreach (var itemId in request.Items) { pmcData.WishList.Dictionary.Remove(itemId); } return _eventOutputHolder.GetOutput(sessionId); } /// /// Handle changeWishlistItemCategory event /// /// Players PMC profile /// /// Session/Player id /// public ItemEventRouterResponse ChangeWishListItemCategory( PmcData pmcData, ChangeWishlistItemCategoryRequest request, string sessionId) { pmcData.WishList.Dictionary[request.Item] = request.Category.Value; return _eventOutputHolder.GetOutput(sessionId); } }