From b7ec4eb7150a5fc93b6f0b8993e1b25a7762f662 Mon Sep 17 00:00:00 2001
From: Cj <161484149+CJ-SPT@users.noreply.github.com>
Date: Tue, 7 Jan 2025 06:22:07 -0500
Subject: [PATCH] Types go brrr
---
Core/Controllers/BotController.cs | 3 +
Core/Controllers/InRaidController.cs | 2 +
Core/Controllers/RepairController.cs | 1 +
Core/Controllers/TradeController.cs | 1 +
Core/Controllers/WeatherController.cs | 3 +
Core/Controllers/WishlistController.cs | 3 +-
.../Models/Eft/Ragfair/AddOfferRequestData.cs | 36 ++++++++
.../Eft/Ragfair/ExtendOfferRequestData.cs | 12 +++
Core/Models/Eft/Ragfair/GetItemPriceResult.cs | 10 +++
.../Eft/Ragfair/GetMarketPriceRequestData.cs | 9 ++
Core/Models/Eft/Ragfair/GetOffersResult.cs | 18 ++++
.../Eft/Ragfair/GetRagfairOfferByIdRequest.cs | 9 ++
.../Eft/Ragfair/RemoveOfferRequestData.cs | 12 +++
Core/Models/Eft/Ragfair/SearchRequestData.cs | 87 +++++++++++++++++++
.../Ragfair/SendRagfairReportRequestData.cs | 9 ++
.../StorePlayerOfferTaxAmountRequestData.cs | 18 ++++
.../Eft/Repair/BaseRepairActionDataRequest.cs | 9 ++
.../Eft/Repair/RepairActionDataRequest.cs | 24 +++++
.../Repair/TraderRepairActionDataRequest.cs | 24 +++++
19 files changed, 289 insertions(+), 1 deletion(-)
create mode 100644 Core/Models/Eft/Ragfair/AddOfferRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/GetItemPriceResult.cs
create mode 100644 Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/GetOffersResult.cs
create mode 100644 Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs
create mode 100644 Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/SearchRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs
create mode 100644 Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs
create mode 100644 Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs
create mode 100644 Core/Models/Eft/Repair/RepairActionDataRequest.cs
create mode 100644 Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs
diff --git a/Core/Controllers/BotController.cs b/Core/Controllers/BotController.cs
index 1b3a809a..36cfed34 100644
--- a/Core/Controllers/BotController.cs
+++ b/Core/Controllers/BotController.cs
@@ -1,7 +1,10 @@
using Core.Models.Common;
+using Core.Models.Eft.Bot;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
+using Core.Models.Spt.Bots;
using Core.Models.Spt.Config;
+using Condition = Core.Models.Spt.Config.Condition;
namespace Core.Controllers;
diff --git a/Core/Controllers/InRaidController.cs b/Core/Controllers/InRaidController.cs
index 1644f02f..4d6c6331 100644
--- a/Core/Controllers/InRaidController.cs
+++ b/Core/Controllers/InRaidController.cs
@@ -1,3 +1,5 @@
+using Core.Models.Eft.InRaid;
+
namespace Core.Controllers;
public class InRaidController
diff --git a/Core/Controllers/RepairController.cs b/Core/Controllers/RepairController.cs
index 8e7bd9bf..2d20c78c 100644
--- a/Core/Controllers/RepairController.cs
+++ b/Core/Controllers/RepairController.cs
@@ -1,5 +1,6 @@
using Core.Models.Eft.Common;
using Core.Models.Eft.ItemEvent;
+using Core.Models.Eft.Repair;
namespace Core.Controllers;
diff --git a/Core/Controllers/TradeController.cs b/Core/Controllers/TradeController.cs
index 4e77b46e..fbccc2af 100644
--- a/Core/Controllers/TradeController.cs
+++ b/Core/Controllers/TradeController.cs
@@ -2,6 +2,7 @@ using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.ItemEvent;
using Core.Models.Eft.Ragfair;
+using Core.Models.Eft.Trade;
using Core.Models.Enums;
namespace Core.Controllers;
diff --git a/Core/Controllers/WeatherController.cs b/Core/Controllers/WeatherController.cs
index a5ab2d39..4ea99924 100644
--- a/Core/Controllers/WeatherController.cs
+++ b/Core/Controllers/WeatherController.cs
@@ -1,3 +1,6 @@
+using Core.Models.Eft.Weather;
+using Core.Models.Spt.Weather;
+
namespace Core.Controllers;
public class WeatherController
diff --git a/Core/Controllers/WishlistController.cs b/Core/Controllers/WishlistController.cs
index 6178c8b6..d9545b66 100644
--- a/Core/Controllers/WishlistController.cs
+++ b/Core/Controllers/WishlistController.cs
@@ -1,5 +1,6 @@
using Core.Models.Eft.Common;
using Core.Models.Eft.ItemEvent;
+using Core.Models.Eft.Wishlist;
namespace Core.Controllers;
@@ -14,7 +15,7 @@ public class WishlistController
///
public ItemEventRouterResponse AddToWishList(
PmcData pmcData,
- AddItemToWishlistRequest request,
+ AddToWishlistRequest request,
string sessionId)
{
throw new NotImplementedException();
diff --git a/Core/Models/Eft/Ragfair/AddOfferRequestData.cs b/Core/Models/Eft/Ragfair/AddOfferRequestData.cs
new file mode 100644
index 00000000..2de8c102
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/AddOfferRequestData.cs
@@ -0,0 +1,36 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class AddOfferRequestData
+{
+ [JsonPropertyName("Action")]
+ public string Action { get; set; }
+
+ [JsonPropertyName("sellInOnePiece")]
+ public bool SellInOnePiece { get; set; }
+
+ [JsonPropertyName("items")]
+ public List Items { get; set; }
+
+ [JsonPropertyName("requirements")]
+ public List Requirements { get; set; }
+}
+
+public class Requirement
+{
+ [JsonPropertyName("_tpl")]
+ public string Template { get; set; }
+
+ [JsonPropertyName("count")]
+ public int Count { get; set; }
+
+ [JsonPropertyName("level")]
+ public int Level { get; set; }
+
+ [JsonPropertyName("side")]
+ public int Side { get; set; }
+
+ [JsonPropertyName("onlyFunctional")]
+ public bool OnlyFunctional { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs b/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs
new file mode 100644
index 00000000..ffb29d65
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/ExtendOfferRequestData.cs
@@ -0,0 +1,12 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class ExtendOfferRequestData
+{
+ [JsonPropertyName("offerId")]
+ public string OfferId { get; set; }
+
+ [JsonPropertyName("renewalTime")]
+ public int RenewalTime { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/GetItemPriceResult.cs b/Core/Models/Eft/Ragfair/GetItemPriceResult.cs
new file mode 100644
index 00000000..43d8ea66
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/GetItemPriceResult.cs
@@ -0,0 +1,10 @@
+using System.Text.Json.Serialization;
+using Core.Models.Common;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class GetItemPriceResult : MinMax
+{
+ [JsonPropertyName("avg")]
+ public int Avg { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs b/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs
new file mode 100644
index 00000000..df4c7b03
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/GetMarketPriceRequestData.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class GetMarketPriceRequestData
+{
+ [JsonPropertyName("templateId")]
+ public string TemplateId { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/GetOffersResult.cs b/Core/Models/Eft/Ragfair/GetOffersResult.cs
new file mode 100644
index 00000000..b464da73
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/GetOffersResult.cs
@@ -0,0 +1,18 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class GetOffersResult
+{
+ [JsonPropertyName("categories")]
+ public Dictionary? Categories { get; set; }
+
+ [JsonPropertyName("offers")]
+ public List Offers { get; set; }
+
+ [JsonPropertyName("offersCount")]
+ public int OffersCount { get; set; }
+
+ [JsonPropertyName("selectedCategory")]
+ public string SelectedCategory { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs b/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs
new file mode 100644
index 00000000..74bef8b2
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/GetRagfairOfferByIdRequest.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class GetRagfairOfferByIdRequest
+{
+ [JsonPropertyName("id")]
+ public int Id { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs b/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs
new file mode 100644
index 00000000..f54a1b3b
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/RemoveOfferRequestData.cs
@@ -0,0 +1,12 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class RemoveOfferRequestData
+{
+ [JsonPropertyName("Action")]
+ public string Action { get; set; }
+
+ [JsonPropertyName("offerId")]
+ public string OfferId { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/SearchRequestData.cs b/Core/Models/Eft/Ragfair/SearchRequestData.cs
new file mode 100644
index 00000000..35928abf
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/SearchRequestData.cs
@@ -0,0 +1,87 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class SearchRequestData
+{
+ [JsonPropertyName("page")]
+ public int Page { get; set; }
+
+ [JsonPropertyName("limit")]
+ public int Limit { get; set; }
+
+ [JsonPropertyName("sortType")]
+ public RagfairSort SortType { get; set; }
+
+ [JsonPropertyName("sortDirection")]
+ public int SortDirection { get; set; }
+
+ [JsonPropertyName("currency")]
+ public int Currency { get; set; }
+
+ [JsonPropertyName("priceFrom")]
+ public int PriceFrom { get; set; }
+
+ [JsonPropertyName("priceTo")]
+ public int PriceTo { get; set; }
+
+ [JsonPropertyName("quantityFrom")]
+ public int QuantityFrom { get; set; }
+
+ [JsonPropertyName("quantityTo")]
+ public int QuantityTo { get; set; }
+
+ [JsonPropertyName("conditionFrom")]
+ public int ConditionFrom { get; set; }
+
+ [JsonPropertyName("conditionTo")]
+ public int ConditionTo { get; set; }
+
+ [JsonPropertyName("oneHourExpiration")]
+ public bool OneHourExpiration { get; set; }
+
+ [JsonPropertyName("removeBartering")]
+ public bool RemoveBartering { get; set; }
+
+ [JsonPropertyName("offerOwnerType")]
+ public OfferOwnerType OfferOwnerType { get; set; }
+
+ [JsonPropertyName("onlyFunctional")]
+ public bool OnlyFunctional { get; set; }
+
+ [JsonPropertyName("updateOfferCount")]
+ public bool UpdateOfferCount { get; set; }
+
+ [JsonPropertyName("handbookId")]
+ public string HandbookId { get; set; }
+
+ [JsonPropertyName("linkedSearchId")]
+ public string LinkedSearchId { get; set; }
+
+ [JsonPropertyName("neededSearchId")]
+ public string NeededSearchId { get; set; }
+
+ [JsonPropertyName("buildItems")]
+ public BuildItems BuildItems { get; set; }
+
+ [JsonPropertyName("buildCount")]
+ public int BuildCount { get; set; }
+
+ [JsonPropertyName("tm")]
+ public int Tm { get; set; }
+
+ [JsonPropertyName("reload")]
+ public int Reload { get; set; }
+}
+
+public enum OfferOwnerType
+{
+ ANYOWNERTYPE = 0,
+ TRADEROWNERTYPE = 1,
+ PLAYEROWNERTYPE = 2,
+}
+
+public class BuildItems
+{
+ // Define properties for BuildItems here if needed
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs b/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs
new file mode 100644
index 00000000..27e05b6b
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/SendRagfairReportRequestData.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class SendRagfairReportRequestData
+{
+ [JsonPropertyName("offerId")]
+ public int OfferId { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs b/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs
new file mode 100644
index 00000000..fba10c63
--- /dev/null
+++ b/Core/Models/Eft/Ragfair/StorePlayerOfferTaxAmountRequestData.cs
@@ -0,0 +1,18 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Ragfair;
+
+public class StorePlayerOfferTaxAmountRequestData
+{
+ [JsonPropertyName("id")]
+ public string Id { get; set; }
+
+ [JsonPropertyName("tpl")]
+ public string Tpl { get; set; }
+
+ [JsonPropertyName("count")]
+ public int Count { get; set; }
+
+ [JsonPropertyName("fee")]
+ public double Fee { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs
new file mode 100644
index 00000000..1ee03dd0
--- /dev/null
+++ b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs
@@ -0,0 +1,9 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Repair;
+
+public class BaseRepairActionDataRequest
+{
+ [JsonPropertyName("Action")]
+ public string Action { get; set; }
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Repair/RepairActionDataRequest.cs b/Core/Models/Eft/Repair/RepairActionDataRequest.cs
new file mode 100644
index 00000000..4021c881
--- /dev/null
+++ b/Core/Models/Eft/Repair/RepairActionDataRequest.cs
@@ -0,0 +1,24 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Repair;
+
+public class RepairActionDataRequest : BaseRepairActionDataRequest
+{
+ [JsonPropertyName("Action")]
+ public string Action { get; set; } = "Repair";
+
+ [JsonPropertyName("repairKitsInfo")]
+ public List RepairKitsInfo { get; set; }
+
+ [JsonPropertyName("target")]
+ public string Target { get; set; } // item to repair
+}
+
+public class RepairKitsInfo
+{
+ [JsonPropertyName("_id")]
+ public string Id { get; set; } // id of repair kit to use
+
+ [JsonPropertyName("count")]
+ public int Count { get; set; } // amount of units to reduce kit by
+}
\ No newline at end of file
diff --git a/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs
new file mode 100644
index 00000000..cdddeecc
--- /dev/null
+++ b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs
@@ -0,0 +1,24 @@
+using System.Text.Json.Serialization;
+
+namespace Core.Models.Eft.Repair;
+
+public class TraderRepairActionDataRequest : BaseRepairActionDataRequest
+{
+ [JsonPropertyName("Action")]
+ public string Action { get; set; } = "TraderRepair";
+
+ [JsonPropertyName("tid")]
+ public string TId { get; set; }
+
+ [JsonPropertyName("repairItems")]
+ public List RepairItems { get; set; }
+}
+
+public class RepairItem
+{
+ [JsonPropertyName("_id")]
+ public string Id { get; set; }
+
+ [JsonPropertyName("count")]
+ public int Count { get; set; }
+}
\ No newline at end of file