using System.Text.Json.Serialization;
using SPTarkov.Server.Core.Models.Common;
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
namespace SPTarkov.Server.Core.Models.Spt.Mod;
public record NewItemDetails : NewItemDetailsBase
{
[JsonPropertyName("newItem")]
public TemplateItem? NewItem { get; set; }
}
public record NewItemFromCloneDetails : NewItemDetailsBase
{
///
/// Id of the item to copy and use as a base
///
[JsonPropertyName("itemTplToClone")]
public MongoId? ItemTplToClone { get; set; }
///
/// Item properties that should be applied over the top of the cloned base
///
[JsonPropertyName("overrideProperties")]
public Props? OverrideProperties { get; set; }
///
/// ParentId for the new item (item type)
///
[JsonPropertyName("parentId")]
public string? ParentId { get; set; }
///
/// the id the new item should have, leave blank to have one generated for you.
/// This is often known as the TplId, or TemplateId
///
[JsonPropertyName("newId")]
public string? NewId { get; set; } = "";
}
public record NewItemDetailsBase
{
[JsonExtensionData]
public Dictionary? ExtensionData { get; set; }
[JsonPropertyName("fleaPriceRoubles")]
public double? FleaPriceRoubles { get; set; }
[JsonPropertyName("handbookPriceRoubles")]
public double? HandbookPriceRoubles { get; set; }
[JsonPropertyName("handbookParentId")]
public string? HandbookParentId { get; set; }
[JsonPropertyName("locales")]
public Dictionary? Locales { get; set; }
}
public record LocaleDetails
{
[JsonExtensionData]
public Dictionary? ExtensionData { get; set; }
[JsonPropertyName("name")]
public string? Name { get; set; }
[JsonPropertyName("shortName")]
public string? ShortName { get; set; }
[JsonPropertyName("description")]
public string? Description { get; set; }
}
public record CreateItemResult
{
[JsonExtensionData]
public Dictionary? ExtensionData { get; set; }
public CreateItemResult()
{
Success = false;
Errors = new List();
}
[JsonPropertyName("success")]
public bool? Success { get; set; }
[JsonPropertyName("itemId")]
public MongoId? ItemId { get; set; }
[JsonPropertyName("errors")]
public List? Errors { get; set; }
}
// TODO: This needs to be reworked with however we do it for this project