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);
}
}