using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Controllers; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Customization; using SPTarkov.Server.Core.Models.Eft.ItemEvent; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class CustomizationCallbacks( CustomizationController customizationController, SaveServer saveServer, HttpResponseUtil httpResponseUtil ) { /// /// Handle client/trading/customization/storage /// /// public ValueTask GetCustomisationUnlocks(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask(httpResponseUtil.GetBody(saveServer.GetProfile(sessionID).CustomisationUnlocks)); } /// /// Handle client/trading/customization /// /// public ValueTask GetTraderSuits(string url, EmptyRequestData _, MongoId sessionID) { var splitUrl = url.Split('/'); var traderId = splitUrl[^3]; return new ValueTask(httpResponseUtil.GetBody(customizationController.GetTraderSuits(traderId, sessionID))); } /// /// Handle CustomizationBuy event /// /// public ItemEventRouterResponse BuyCustomisation(PmcData pmcData, BuyClothingRequestData request, MongoId sessionID) { return customizationController.BuyCustomisation(pmcData, request, sessionID); } /// /// Handle client/hideout/customization/offer/list /// /// public ValueTask GetHideoutCustomisation(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask(httpResponseUtil.GetBody(customizationController.GetHideoutCustomisation(sessionID))); } /// /// Handle client/customization/storage /// /// public ValueTask GetStorage(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask(httpResponseUtil.GetBody(customizationController.GetCustomisationStorage(sessionID))); } /// /// Handle CustomizationSet /// /// public ItemEventRouterResponse SetCustomisation(PmcData pmcData, CustomizationSetRequest request, MongoId sessionID) { return customizationController.SetCustomisation(sessionID, request, pmcData); } }