using Core.Models.Eft.Common.Tables; using Core.Models.Eft.Ragfair; using Core.Models.Enums; namespace Core.Models.Eft.ItemEvent; using System.Text.Json.Serialization; public class ItemEventRouterBase { [JsonPropertyName("warnings")] public List? Warnings { get; set; } [JsonPropertyName("profileChanges")] public object ProfileChanges { get; set; } // TODO: Types given TProfileChanges | "" } public class TProfileChanges : Dictionary { } public class Warning { [JsonPropertyName("index")] public int? Index { get; set; } [JsonPropertyName("errmsg")] public string? ErrorMessage { get; set; } [JsonPropertyName("code")] public string? Code { get; set; } [JsonPropertyName("data")] public object? Data { get; set; } } public class ProfileChange { [JsonPropertyName("_id")] public string? Id { get; set; } [JsonPropertyName("experience")] public int? Experience { get; set; } [JsonPropertyName("quests")] public List? Quests { get; set; } [JsonPropertyName("ragFairOffers")] public List? RagFairOffers { get; set; } [JsonPropertyName("weaponBuilds")] public List? WeaponBuilds { get; set; } [JsonPropertyName("equipmentBuilds")] public List? EquipmentBuilds { get; set; } [JsonPropertyName("items")] public ItemChanges? Items { get; set; } [JsonPropertyName("production")] public Dictionary? Production { get; set; } /** Hideout area improvement id */ [JsonPropertyName("improvements")] public Dictionary? Improvements { get; set; } [JsonPropertyName("skills")] public Skills? Skills { get; set; } [JsonPropertyName("health")] public Common.Health Health { get; set; } [JsonPropertyName("traderRelations")] public Dictionary? TraderRelations { get; set; } [JsonPropertyName("moneyTransferLimitData")] public MoneyTransferLimits? MoneyTransferLimitData { get; set; } [JsonPropertyName("repeatableQuests")] public List? RepeatableQuests { get; set; } [JsonPropertyName("recipeUnlocked")] public Dictionary? RecipeUnlocked { get; set; } [JsonPropertyName("changedHideoutStashes")] public Dictionary? ChangedHideoutStashes { get; set; } [JsonPropertyName("questsStatus")] public List? QuestsStatus { get; set; } } public class HideoutStashItem { [JsonPropertyName("id")] public string? Id { get; set; } [JsonPropertyName("tpl")] public string? Template { get; set; } } public class WeaponBuildChange { [JsonPropertyName("id")] public string? Id { get; set; } [JsonPropertyName("name")] public string? Name { get; set; } [JsonPropertyName("root")] public string? Root { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } } public class EquipmentBuildChange { [JsonPropertyName("id")] public string? Id { get; set; } [JsonPropertyName("name")] public string? Name { get; set; } [JsonPropertyName("root")] public string? Root { get; set; } [JsonPropertyName("items")] public List? Items { get; set; } [JsonPropertyName("type")] public string? Type { get; set; } [JsonPropertyName("fastpanel")] public List? FastPanel { get; set; } [JsonPropertyName("buildType")] public EquipmentBuildType? BuildType { get; set; } } public class ItemChanges { [JsonPropertyName("new")] public List? NewItems { get; set; } [JsonPropertyName("change")] public List? ChangedItems { get; set; } [JsonPropertyName("del")] public List DeletedItems { get; set; } // Only needs _id property } /** Related to TraderInfo */ public class TraderData { [JsonPropertyName("salesSum")] public double? SalesSum { get; set; } [JsonPropertyName("standing")] public double? Standing { get; set; } [JsonPropertyName("loyalty")] public double? Loyalty { get; set; } [JsonPropertyName("unlocked")] public bool? Unlocked { get; set; } [JsonPropertyName("disabled")] public bool? Disabled { get; set; } } public class Product { [JsonPropertyName("_id")] public string? Id { get; set; } [JsonPropertyName("_tpl")] public string? Template { get; set; } [JsonPropertyName("parentId")] public string? ParentId { get; set; } [JsonPropertyName("slotId")] public string? SlotId { get; set; } [JsonPropertyName("location")] public ItemLocation? Location { get; set; } [JsonPropertyName("upd")] public Upd? Upd { get; set; } }