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