From ffca79a5d9ebb09a58e69278fa019216eb6ba1d7 Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 23 Mar 2025 19:09:52 +0100 Subject: [PATCH] feat: equipment IsNew flag --- src/models/inventoryModels/inventoryModel.ts | 3 ++- src/services/inventoryService.ts | 3 ++- src/services/saveLoadoutService.ts | 7 ++++++- src/types/inventoryTypes/commonInventoryTypes.ts | 1 + src/types/saveLoadoutTypes.ts | 6 +++--- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index ec0e1778..48076d8a 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -840,7 +840,8 @@ const EquipmentSchema = new Schema( Customization: crewShipCustomizationSchema, RailjackImage: FlavourItemSchema, CrewMembers: crewShipMembersSchema, - Details: detailsSchema + Details: detailsSchema, + IsNew: Boolean }, { id: false } ); diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index ffa18484..f0a4d837 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -900,7 +900,8 @@ export const addEquipment = ( ItemType: type, Configs: [], XP: 0, - ModularParts: modularParts + ModularParts: modularParts, + IsNew: true }, defaultOverwrites ); diff --git a/src/services/saveLoadoutService.ts b/src/services/saveLoadoutService.ts index 63533e43..ff0159f5 100644 --- a/src/services/saveLoadoutService.ts +++ b/src/services/saveLoadoutService.ts @@ -155,7 +155,12 @@ export const handleInventoryItemConfigChange = async ( } for (const [configId, config] of Object.entries(itemConfigEntries)) { - inventoryItem.Configs[parseInt(configId)] = config; + if (typeof config !== "boolean") { + inventoryItem.Configs[parseInt(configId)] = config; + } + } + if ("IsNew" in itemConfigEntries) { + inventoryItem.IsNew = itemConfigEntries.IsNew; } } break; diff --git a/src/types/inventoryTypes/commonInventoryTypes.ts b/src/types/inventoryTypes/commonInventoryTypes.ts index 13987e80..ea26992a 100644 --- a/src/types/inventoryTypes/commonInventoryTypes.ts +++ b/src/types/inventoryTypes/commonInventoryTypes.ts @@ -140,6 +140,7 @@ export interface IEquipmentDatabase { RailjackImage?: IFlavourItem; CrewMembers?: ICrewShipMembersDatabase; Details?: IKubrowPetDetailsDatabase; + IsNew?: boolean; _id: Types.ObjectId; } diff --git a/src/types/saveLoadoutTypes.ts b/src/types/saveLoadoutTypes.ts index e04ec6a2..8a1b8883 100644 --- a/src/types/saveLoadoutTypes.ts +++ b/src/types/saveLoadoutTypes.ts @@ -48,9 +48,9 @@ export interface IItemEntry { [itemId: string]: IConfigEntry; } -export interface IConfigEntry { - [configId: string]: IItemConfig; -} +export type IConfigEntry = { + [configId in "0" | "1" | "2" | "3" | "4" | "5"]: IItemConfig; +} & { IsNew?: boolean }; export interface ILoadoutClient extends Omit {}