separate InfestedFoundry client & database structs

This commit is contained in:
Sainan 2025-01-20 08:20:06 +01:00
parent 103104cdbc
commit 04955c094e
5 changed files with 19 additions and 11 deletions

View File

@ -6,7 +6,7 @@ import { IOid } from "@/src/types/commonTypes";
import { import {
IConsumedSuit, IConsumedSuit,
IHelminthFoodRecord, IHelminthFoodRecord,
IInfestedFoundry, IInfestedFoundryDatabase,
IMiscItem, IMiscItem,
ITypeCount ITypeCount
} from "@/src/types/inventoryTypes/inventoryTypes"; } from "@/src/types/inventoryTypes/inventoryTypes";
@ -356,7 +356,7 @@ interface IHelminthFeedRequest {
}[]; }[];
} }
export const addInfestedFoundryXP = (infestedFoundry: IInfestedFoundry, delta: number): ITypeCount[] => { export const addInfestedFoundryXP = (infestedFoundry: IInfestedFoundryDatabase, delta: number): ITypeCount[] => {
const recipeChanges: ITypeCount[] = []; const recipeChanges: ITypeCount[] = [];
infestedFoundry.XP ??= 0; infestedFoundry.XP ??= 0;
const prevXP = infestedFoundry.XP; const prevXP = infestedFoundry.XP;

View File

@ -6,7 +6,7 @@ import {
EquipmentFeatures, EquipmentFeatures,
IAbilityOverride IAbilityOverride
} from "@/src/types/inventoryTypes/commonInventoryTypes"; } from "@/src/types/inventoryTypes/commonInventoryTypes";
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes"; import { IInventoryClient, IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
import { getAccountIdForRequest } from "@/src/services/loginService"; import { getAccountIdForRequest } from "@/src/services/loginService";
import { addMiscItems, addRecipes, getInventory, updateCurrency } from "@/src/services/inventoryService"; import { addMiscItems, addRecipes, getInventory, updateCurrency } from "@/src/services/inventoryService";
import { getRecipeByResult } from "@/src/services/itemDataService"; import { getRecipeByResult } from "@/src/services/itemDataService";
@ -62,7 +62,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
addRecipes(inventory, recipeChanges); addRecipes(inventory, recipeChanges);
inventoryChanges.Recipes = recipeChanges; inventoryChanges.Recipes = recipeChanges;
inventoryChanges.InfestedFoundry = inventory.toJSON().InfestedFoundry; inventoryChanges.InfestedFoundry = inventory.toJSON<IInventoryClient>().InfestedFoundry;
} else } else
switch (operation.UpgradeRequirement) { switch (operation.UpgradeRequirement) {
case "/Lotus/Types/Items/MiscItems/OrokinReactor": case "/Lotus/Types/Items/MiscItems/OrokinReactor":

View File

@ -23,7 +23,7 @@ import {
ISeasonChallenge, ISeasonChallenge,
IPlayerSkills, IPlayerSkills,
ISettings, ISettings,
IInfestedFoundry, IInfestedFoundryDatabase,
IHelminthResource, IHelminthResource,
IConsumedSuit, IConsumedSuit,
IQuestProgress, IQuestProgress,
@ -492,7 +492,7 @@ const helminthResourceSchema = new Schema<IHelminthResource>(
{ _id: false } { _id: false }
); );
const infestedFoundrySchema = new Schema<IInfestedFoundry>( const infestedFoundrySchema = new Schema<IInfestedFoundryDatabase>(
{ {
Name: String, Name: String,
Resources: { type: [helminthResourceSchema], default: undefined }, Resources: { type: [helminthResourceSchema], default: undefined },

View File

@ -30,6 +30,7 @@ export interface IInventoryDatabase
| "CrewShipWeaponSkins" | "CrewShipWeaponSkins"
| "OperatorLoadOuts" | "OperatorLoadOuts"
| "AdultOperatorLoadOuts" | "AdultOperatorLoadOuts"
| "InfestedFoundry"
| TEquipmentKey | TEquipmentKey
> { > {
accountOwnerId: Types.ObjectId; accountOwnerId: Types.ObjectId;
@ -48,6 +49,7 @@ export interface IInventoryDatabase
CrewShipWeaponSkins: IUpgradeDatabase[]; CrewShipWeaponSkins: IUpgradeDatabase[];
OperatorLoadOuts: IOperatorConfigDatabase[]; OperatorLoadOuts: IOperatorConfigDatabase[];
AdultOperatorLoadOuts: IOperatorConfigDatabase[]; AdultOperatorLoadOuts: IOperatorConfigDatabase[];
InfestedFoundry?: IInfestedFoundryDatabase;
Suits: IEquipmentDatabase[]; Suits: IEquipmentDatabase[];
LongGuns: IEquipmentDatabase[]; LongGuns: IEquipmentDatabase[];
@ -305,7 +307,7 @@ export interface IInventoryClient extends IDailyAffiliations {
PlayedParkourTutorial: boolean; PlayedParkourTutorial: boolean;
SubscribedToEmailsPersonalized: number; SubscribedToEmailsPersonalized: number;
MechSuits: IEquipmentDatabase[]; MechSuits: IEquipmentDatabase[];
InfestedFoundry?: IInfestedFoundry; InfestedFoundry?: IInfestedFoundryClient;
BlessingCooldown: IMongoDate; BlessingCooldown: IMongoDate;
CrewShipHarnesses: IEquipmentDatabase[]; CrewShipHarnesses: IEquipmentDatabase[];
CrewShipRawSalvage: IConsumable[]; CrewShipRawSalvage: IConsumable[];
@ -566,7 +568,7 @@ export interface IHelminthResource {
RecentlyConvertedResources?: IHelminthFoodRecord[]; RecentlyConvertedResources?: IHelminthFoodRecord[];
} }
export interface IInfestedFoundry { export interface IInfestedFoundryClient {
Name?: string; Name?: string;
Resources?: IHelminthResource[]; Resources?: IHelminthResource[];
Slots?: number; Slots?: number;
@ -575,6 +577,12 @@ export interface IInfestedFoundry {
InvigorationIndex?: number; InvigorationIndex?: number;
InvigorationSuitOfferings?: string[]; InvigorationSuitOfferings?: string[];
InvigorationsApplied?: number; InvigorationsApplied?: number;
LastConsumedSuit?: IEquipmentClient;
AbilityOverrideUnlockCooldown?: IMongoDate;
}
export interface IInfestedFoundryDatabase
extends Omit<IInfestedFoundryClient, "LastConsumedSuit" | "AbilityOverrideUnlockCooldown"> {
LastConsumedSuit?: IEquipmentDatabase; LastConsumedSuit?: IEquipmentDatabase;
AbilityOverrideUnlockCooldown?: Date; AbilityOverrideUnlockCooldown?: Date;
} }

View File

@ -1,4 +1,4 @@
import { IInfestedFoundry } from "./inventoryTypes/inventoryTypes"; import { IInfestedFoundryClient } from "./inventoryTypes/inventoryTypes";
export interface IPurchaseRequest { export interface IPurchaseRequest {
PurchaseParams: IPurchaseParams; PurchaseParams: IPurchaseParams;
@ -29,9 +29,9 @@ export interface ICurrencyChanges {
export type IInventoryChanges = { export type IInventoryChanges = {
[_ in SlotNames]?: IBinChanges; [_ in SlotNames]?: IBinChanges;
} & ICurrencyChanges & { InfestedFoundry?: IInfestedFoundry } & Record< } & ICurrencyChanges & { InfestedFoundry?: IInfestedFoundryClient } & Record<
string, string,
IBinChanges | number | object[] | IInfestedFoundry IBinChanges | number | object[] | IInfestedFoundryClient
>; >;
export interface IPurchaseResponse { export interface IPurchaseResponse {