diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index c9dd4be8..ad1b06ad 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -96,7 +96,8 @@ import { IInvasionProgressDatabase, IInvasionProgressClient, IAccolades, - IHubNpcCustomization + IHubNpcCustomization, + ILotusCustomization } from "../../types/inventoryTypes/inventoryTypes"; import { IOid } from "../../types/commonTypes"; import { @@ -780,6 +781,10 @@ const loreFragmentScansSchema = new Schema( { _id: false } ); +const lotusCustomizationSchema = new Schema().add(ItemConfigSchema).add({ + Persona: String +}); + const evolutionProgressSchema = new Schema( { Progress: Number, @@ -1628,7 +1633,7 @@ const inventorySchema = new Schema( //Purchase this new permanent skin from the Lotus customization options in Personal Quarters located in your Orbiter. //https://warframe.fandom.com/wiki/Lotus#The_New_War - LotusCustomization: Schema.Types.Mixed, + LotusCustomization: { type: lotusCustomizationSchema, default: undefined }, //Progress+Rank+ItemType(ZarimanPumpShotgun) //https://warframe.fandom.com/wiki/Incarnon diff --git a/src/services/saveLoadoutService.ts b/src/services/saveLoadoutService.ts index 1f860433..0676d113 100644 --- a/src/services/saveLoadoutService.ts +++ b/src/services/saveLoadoutService.ts @@ -161,6 +161,11 @@ export const handleInventoryItemConfigChange = async ( } break; } + case "LotusCustomization": { + logger.debug(`saved LotusCustomization`, equipmentChanges.LotusCustomization); + inventory.LotusCustomization = equipmentChanges.LotusCustomization; + break; + } default: { if (equipmentKeys.includes(equipmentName as TEquipmentKey) && equipmentName != "ValidNewLoadoutId") { logger.debug(`general Item config saved of type ${equipmentName}`, { diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 153021fc..2cec4037 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -328,7 +328,7 @@ export interface IInventoryClient extends IDailyAffiliations, InventoryClientEqu BlessingCooldown?: IMongoDate; CrewShipRawSalvage: ITypeCount[]; CrewMembers: ICrewMemberClient[]; - LotusCustomization: ILotusCustomization; + LotusCustomization?: ILotusCustomization; UseAdultOperatorLoadout?: boolean; NemesisAbandonedRewards: string[]; LastInventorySync: IOid; diff --git a/src/types/saveLoadoutTypes.ts b/src/types/saveLoadoutTypes.ts index dcd1f1b8..18d692c1 100644 --- a/src/types/saveLoadoutTypes.ts +++ b/src/types/saveLoadoutTypes.ts @@ -6,7 +6,8 @@ import { ICrewShipMembersClient, ICrewShipWeapon, IFlavourItem, - ILoadoutConfigClient + ILoadoutConfigClient, + ILotusCustomization } from "./inventoryTypes/inventoryTypes"; export interface ISaveLoadoutRequest { @@ -43,6 +44,7 @@ export interface ISaveLoadoutRequest { EquippedEmotes: string[]; UseAdultOperatorLoadout: boolean; WeaponSkins: IItemEntry; + LotusCustomization: ILotusCustomization; } export type ISaveLoadoutRequestNoUpgradeVer = Omit;