saveLoadout and misc. #99
@ -39,6 +39,15 @@ app.use("/stats", statsRouter);
 | 
				
			|||||||
app.post("/test", async (req, _res) => {
 | 
					app.post("/test", async (req, _res) => {
 | 
				
			||||||
    console.log("test hit", req.body);
 | 
					    console.log("test hit", req.body);
 | 
				
			||||||
    const newLoadout = new Loadout({});
 | 
					    const newLoadout = new Loadout({});
 | 
				
			||||||
 | 
					    newLoadout.NORMAL.push({
 | 
				
			||||||
 | 
					        _id: "000000000000000000000000",
 | 
				
			||||||
 | 
					        Favorite: false,
 | 
				
			||||||
 | 
					        PresetIcon: "",
 | 
				
			||||||
 | 
					        s: { ItemId: { $oid: "000000000000000000000000" }, mod: 0, cus: 0 },
 | 
				
			||||||
 | 
					        p: { ItemId: { $oid: "000000000000000000000000" }, mod: 0, cus: 0 },
 | 
				
			||||||
 | 
					        l: { ItemId: { $oid: "000000000000000000000000" }, mod: 0, cus: 0 },
 | 
				
			||||||
 | 
					        m: { ItemId: { $oid: "000000000000000000000000" }, mod: 0, cus: 0 }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
    await newLoadout.save();
 | 
					    await newLoadout.save();
 | 
				
			||||||
    _res.end();
 | 
					    _res.end();
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
				
			|||||||
@ -4,17 +4,24 @@ import util from "util";
 | 
				
			|||||||
import {
 | 
					import {
 | 
				
			||||||
    EquipmentCategories,
 | 
					    EquipmentCategories,
 | 
				
			||||||
    IConfigEntry,
 | 
					    IConfigEntry,
 | 
				
			||||||
    ILoadout,
 | 
					    ILoadoutRequest,
 | 
				
			||||||
    ILoadoutKey,
 | 
					    ILoadoutKey,
 | 
				
			||||||
    ISaveLoadoutRequest,
 | 
					    ISaveLoadoutRequest,
 | 
				
			||||||
    ISaveLoadoutRequestNoUpgradeVer
 | 
					    ISaveLoadoutRequestNoUpgradeVer,
 | 
				
			||||||
 | 
					    ILoadoutConfigDatabase
 | 
				
			||||||
} from "@/src/types/saveLoadoutTypes";
 | 
					} from "@/src/types/saveLoadoutTypes";
 | 
				
			||||||
 | 
					import { LoadoutModel } from "@/src/models/inventoryModels/loadoutModel";
 | 
				
			||||||
 | 
					import { Types } from "mongoose";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const isEmptyObject = (obj: unknown): boolean => {
 | 
					export const isEmptyObject = (obj: unknown): boolean => {
 | 
				
			||||||
    return Boolean(obj && Object.keys(obj).length === 0 && obj.constructor === Object);
 | 
					    return Boolean(obj && Object.keys(obj).length === 0 && obj.constructor === Object);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const handleInventoryItemConfigChange = (equipmentChanges: ISaveLoadoutRequestNoUpgradeVer) => {
 | 
					//setup default items on account creation or like originally in giveStartingItems.php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//export const updateLoadout = (loadout: ISaveLoadoutRequest, accountId: string) => {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const handleInventoryItemConfigChange = async (equipmentChanges: ISaveLoadoutRequestNoUpgradeVer) => {
 | 
				
			||||||
    for (const [_equipmentName, _equipment] of Object.entries(equipmentChanges)) {
 | 
					    for (const [_equipmentName, _equipment] of Object.entries(equipmentChanges)) {
 | 
				
			||||||
        const equipment = _equipment as ISaveLoadoutRequestNoUpgradeVer[keyof ISaveLoadoutRequestNoUpgradeVer];
 | 
					        const equipment = _equipment as ISaveLoadoutRequestNoUpgradeVer[keyof ISaveLoadoutRequestNoUpgradeVer];
 | 
				
			||||||
        const equipmentName = _equipmentName as keyof ISaveLoadoutRequestNoUpgradeVer;
 | 
					        const equipmentName = _equipmentName as keyof ISaveLoadoutRequestNoUpgradeVer;
 | 
				
			||||||
@ -28,23 +35,59 @@ export const handleInventoryItemConfigChange = (equipmentChanges: ISaveLoadoutRe
 | 
				
			|||||||
            case "LoadOuts": {
 | 
					            case "LoadOuts": {
 | 
				
			||||||
                console.log("loadout received");
 | 
					                console.log("loadout received");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                for (const [_loadoutName, _loadout] of Object.entries(equipment)) {
 | 
					                for (const [_loadoutSlot, _loadout] of Object.entries(equipment)) {
 | 
				
			||||||
 | 
					                    const loadoutSlot = _loadoutSlot as keyof ILoadoutRequest;
 | 
				
			||||||
                    const loadout = _loadout as ILoadoutKey;
 | 
					                    const loadout = _loadout as ILoadoutKey;
 | 
				
			||||||
                    const loadoutName = _loadoutName as keyof ILoadout;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    console.log(_loadoutName, loadout);
 | 
					                    //console.log("key", loadoutSlot, "value", loadout);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if (isEmptyObject(loadout)) {
 | 
					                    if (isEmptyObject(loadout)) {
 | 
				
			||||||
                        continue;
 | 
					                        continue;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    // all non-empty entries are one loadout slot
 | 
					                    // all non-empty entries are one loadout slot
 | 
				
			||||||
                    for (const [_loadoutId, _loadoutConfig] of Object.entries(loadout)) {
 | 
					                    for (const [loadoutId, loadoutConfig] of Object.entries(loadout)) {
 | 
				
			||||||
                        console.log(loadout[_loadoutId].s);
 | 
					                        // console.log("loadoutId", loadoutId, "loadoutconfig", loadoutConfig);
 | 
				
			||||||
 | 
					                        const loadout = await LoadoutModel.findById("656a184a9cefa0e5627689af");
 | 
				
			||||||
 | 
					                        if (!loadout) {
 | 
				
			||||||
 | 
					                            throw new Error("loadout not found");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        const oldLoadoutConfig = loadout[loadoutSlot].find(
 | 
				
			||||||
 | 
					                            loadout => loadout._id.toString() === loadoutId
 | 
				
			||||||
 | 
					                        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        // if no config with this id exists, create a new one
 | 
				
			||||||
 | 
					                        if (!oldLoadoutConfig) {
 | 
				
			||||||
 | 
					                            const { ItemId, ...loadoutConfigItemIdRemoved } = loadoutConfig;
 | 
				
			||||||
 | 
					                            loadout[loadoutSlot].push({
 | 
				
			||||||
 | 
					                                _id: ItemId.$oid,
 | 
				
			||||||
 | 
					                                ...loadoutConfigItemIdRemoved
 | 
				
			||||||
 | 
					                            });
 | 
				
			||||||
 | 
					                            await loadout.save();
 | 
				
			||||||
 | 
					                            continue;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        const loadoutIndex = loadout[loadoutSlot].indexOf(oldLoadoutConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        if (loadoutIndex === undefined || loadoutIndex === -1) {
 | 
				
			||||||
 | 
					                            throw new Error("loadout index not found");
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        //console.log("parent id", oldLoadoutConfig.ownerDocument()._id);
 | 
				
			||||||
 | 
					                        loadout[loadoutSlot][loadoutIndex].set(loadoutConfig);
 | 
				
			||||||
 | 
					                        //loadout.NORMAL[loadoutIndex].overwrite(loadoutConfig);
 | 
				
			||||||
 | 
					                        //console.log("db", loadout[loadoutSlot][loadoutIndex].schema);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        await loadout.save();
 | 
				
			||||||
 | 
					                        //({ _id: loadoutId }, loadoutConfig);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            case "LongGuns": {
 | 
					            case "LongGuns": {
 | 
				
			||||||
 | 
					                console.log("longgun received");
 | 
				
			||||||
 | 
					                console.log(equipmentName, equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                const longGun = equipment as IConfigEntry;
 | 
					                const longGun = equipment as IConfigEntry;
 | 
				
			||||||
                //   longGun["key"].PvpUpgrades;
 | 
					                //   longGun["key"].PvpUpgrades;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
 | 
				
			|||||||
@ -152,7 +152,10 @@ suitConfigSchema.set("toJSON", {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const suitSchema = new Schema<ISuitDatabase>({
 | 
					const suitSchema = new Schema<ISuitDatabase>({
 | 
				
			||||||
    ItemType: String,
 | 
					    ItemType: String,
 | 
				
			||||||
    Configs: [suitConfigSchema],
 | 
					    Configs: {
 | 
				
			||||||
 | 
					        type: [suitConfigSchema],
 | 
				
			||||||
 | 
					        default: [{}, {}, {}]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    UpgradeVer: Number,
 | 
					    UpgradeVer: Number,
 | 
				
			||||||
    XP: Number,
 | 
					    XP: Number,
 | 
				
			||||||
    InfestationDate: Date,
 | 
					    InfestationDate: Date,
 | 
				
			||||||
 | 
				
			|||||||
@ -1,67 +1,43 @@
 | 
				
			|||||||
import { IOid } from "@/src/types/commonTypes";
 | 
					import { IOid } from "@/src/types/commonTypes";
 | 
				
			||||||
import { ILoadout, ILoadoutConfig, ILoadoutConfigDocument, ILoadoutDatabase, M } from "@/src/types/saveLoadoutTypes";
 | 
					import { ILoadoutConfigDatabase, ILoadoutDatabase, IEquipmentSelection } from "@/src/types/saveLoadoutTypes";
 | 
				
			||||||
import { Model, Schema, Types, model } from "mongoose";
 | 
					import { Model, Schema, Types, model } from "mongoose";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//create a schema for the $oid type
 | 
					const oidSchema = new Schema<IOid>(
 | 
				
			||||||
const oidSchema = new Schema<IOid>({
 | 
					    {
 | 
				
			||||||
        $oid: String
 | 
					        $oid: String
 | 
				
			||||||
});
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        _id: false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//create a mongoose schema based on interface M
 | 
					//create a mongoose schema based on interface M
 | 
				
			||||||
const modSchema = new Schema<M>({
 | 
					const EquipmentSelectionSchema = new Schema<IEquipmentSelection>(
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
        ItemId: {
 | 
					        ItemId: {
 | 
				
			||||||
            type: oidSchema,
 | 
					            type: oidSchema,
 | 
				
			||||||
            default: { $oid: "000000000000000000000000" }
 | 
					            default: { $oid: "000000000000000000000000" }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        mod: Number,
 | 
					        mod: Number,
 | 
				
			||||||
        cus: Number
 | 
					        cus: Number
 | 
				
			||||||
});
 | 
					    },
 | 
				
			||||||
 | 
					 | 
				
			||||||
//default initialization for
 | 
					 | 
				
			||||||
const loadoutConfigSchema = new Schema<ILoadoutConfig>(
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        _id: false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const loadoutConfigSchema = new Schema<ILoadoutConfigDatabase>({
 | 
				
			||||||
    PresetIcon: String,
 | 
					    PresetIcon: String,
 | 
				
			||||||
    Favorite: Boolean,
 | 
					    Favorite: Boolean,
 | 
				
			||||||
        s: {},
 | 
					    s: EquipmentSelectionSchema,
 | 
				
			||||||
        p: {},
 | 
					    p: EquipmentSelectionSchema,
 | 
				
			||||||
        l: {},
 | 
					    l: EquipmentSelectionSchema,
 | 
				
			||||||
        m: {}
 | 
					    m: EquipmentSelectionSchema
 | 
				
			||||||
    },
 | 
					});
 | 
				
			||||||
    {
 | 
					
 | 
				
			||||||
        virtuals: {
 | 
					loadoutConfigSchema.virtual("ItemId").get(function (): string {
 | 
				
			||||||
            ItemId: {
 | 
					 | 
				
			||||||
                get() {
 | 
					 | 
				
			||||||
    return this._id.toString();
 | 
					    return this._id.toString();
 | 
				
			||||||
                }
 | 
					});
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
interface User {
 | 
					 | 
				
			||||||
    firstName: string;
 | 
					 | 
				
			||||||
    lastName: string;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const UserSchema = new Schema(
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        firstName: String,
 | 
					 | 
				
			||||||
        lastName: String
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        virtuals: {
 | 
					 | 
				
			||||||
            fullname: {
 | 
					 | 
				
			||||||
                get() {
 | 
					 | 
				
			||||||
                    return `${this.firstName} ${this.lastName}`;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// loadoutConfigSchema.virtual("ItemId").get(function (): string {
 | 
					 | 
				
			||||||
//     return this._id
 | 
					 | 
				
			||||||
// });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
loadoutConfigSchema.set("toJSON", {
 | 
					loadoutConfigSchema.set("toJSON", {
 | 
				
			||||||
    virtuals: true,
 | 
					    virtuals: true,
 | 
				
			||||||
@ -85,19 +61,31 @@ const loadoutSchema = new Schema<ILoadoutDatabase, loadoutModelType>({
 | 
				
			|||||||
    DRIFTER: [loadoutConfigSchema]
 | 
					    DRIFTER: [loadoutConfigSchema]
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					loadoutSchema.virtual("ItemId").get(function (): string {
 | 
				
			||||||
 | 
					    return this._id.toString();
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					loadoutSchema.set("toJSON", {
 | 
				
			||||||
 | 
					    virtuals: true,
 | 
				
			||||||
 | 
					    transform(_doc, ret, _options) {
 | 
				
			||||||
 | 
					        delete ret._id;
 | 
				
			||||||
 | 
					        delete ret.__v;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//create database typefor ILoadoutConfig
 | 
					//create database typefor ILoadoutConfig
 | 
				
			||||||
type loadoutDocumentProps = {
 | 
					type loadoutDocumentProps = {
 | 
				
			||||||
    NORMAL: Types.DocumentArray<ILoadoutConfig>;
 | 
					    NORMAL: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    SENTINEL: Types.DocumentArray<ILoadoutConfig>;
 | 
					    SENTINEL: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    ARCHWING: Types.DocumentArray<ILoadoutConfig>;
 | 
					    ARCHWING: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    NORMAL_PVP: Types.DocumentArray<ILoadoutConfig>;
 | 
					    NORMAL_PVP: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    LUNARO: Types.DocumentArray<ILoadoutConfig>;
 | 
					    LUNARO: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    OPERATOR: Types.DocumentArray<ILoadoutConfig>;
 | 
					    OPERATOR: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    KDRIVE: Types.DocumentArray<ILoadoutConfig>;
 | 
					    KDRIVE: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    DATAKNIFE: Types.DocumentArray<ILoadoutConfig>;
 | 
					    DATAKNIFE: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    MECH: Types.DocumentArray<ILoadoutConfig>;
 | 
					    MECH: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    OPERATOR_ADULT: Types.DocumentArray<ILoadoutConfig>;
 | 
					    OPERATOR_ADULT: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
    DRIFTER: Types.DocumentArray<ILoadoutConfig>;
 | 
					    DRIFTER: Types.DocumentArray<ILoadoutConfigDatabase>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type loadoutModelType = Model<ILoadoutDatabase, {}, loadoutDocumentProps>;
 | 
					type loadoutModelType = Model<ILoadoutDatabase, {}, loadoutDocumentProps>;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
import { IOid } from "@/src/types/commonTypes";
 | 
					import { IOid } from "@/src/types/commonTypes";
 | 
				
			||||||
import { Document, Mongoose } from "mongoose";
 | 
					import { Document, Mongoose, Types } from "mongoose";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ISaveLoadoutRequest {
 | 
					export interface ISaveLoadoutRequest {
 | 
				
			||||||
    LoadOuts: ILoadout;
 | 
					    LoadOuts: ILoadoutRequest;
 | 
				
			||||||
    LongGuns: IConfigEntry;
 | 
					    LongGuns: IConfigEntry;
 | 
				
			||||||
    OperatorAmps: IConfigEntry;
 | 
					    OperatorAmps: IConfigEntry;
 | 
				
			||||||
    Pistols: IConfigEntry;
 | 
					    Pistols: IConfigEntry;
 | 
				
			||||||
@ -36,51 +36,46 @@ export interface IConfigEntry {
 | 
				
			|||||||
    [key: string]: Config;
 | 
					    [key: string]: Config;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ILoadout {
 | 
					export interface ILoadoutRequest extends Omit<ILoadoutDatabase, "_id"> {}
 | 
				
			||||||
    NORMAL: ILoadoutKey;
 | 
					
 | 
				
			||||||
    SENTINEL: ILoadoutKey;
 | 
					export interface ILoadoutResponse extends ILoadoutDatabase {
 | 
				
			||||||
    ARCHWING: ILoadoutKey;
 | 
					    ItemId: IOid;
 | 
				
			||||||
    NORMAL_PVP: ILoadoutKey;
 | 
					 | 
				
			||||||
    LUNARO: ILoadoutKey;
 | 
					 | 
				
			||||||
    OPERATOR: ILoadoutKey;
 | 
					 | 
				
			||||||
    KDRIVE: ILoadoutKey;
 | 
					 | 
				
			||||||
    DATAKNIFE: ILoadoutKey;
 | 
					 | 
				
			||||||
    MECH: ILoadoutKey;
 | 
					 | 
				
			||||||
    OPERATOR_ADULT: ILoadoutKey;
 | 
					 | 
				
			||||||
    DRIFTER: ILoadoutKey;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ILoadoutDatabase {
 | 
					export interface ILoadoutDatabase {
 | 
				
			||||||
    NORMAL: ILoadoutConfig;
 | 
					    NORMAL: ILoadoutConfigDatabase;
 | 
				
			||||||
    SENTINEL: ILoadoutConfig;
 | 
					    SENTINEL: ILoadoutConfigDatabase;
 | 
				
			||||||
    ARCHWING: ILoadoutConfig;
 | 
					    ARCHWING: ILoadoutConfigDatabase;
 | 
				
			||||||
    NORMAL_PVP: ILoadoutConfig;
 | 
					    NORMAL_PVP: ILoadoutConfigDatabase;
 | 
				
			||||||
    LUNARO: ILoadoutConfig;
 | 
					    LUNARO: ILoadoutConfigDatabase;
 | 
				
			||||||
    OPERATOR: ILoadoutConfig;
 | 
					    OPERATOR: ILoadoutConfigDatabase;
 | 
				
			||||||
    KDRIVE: ILoadoutConfig;
 | 
					    KDRIVE: ILoadoutConfigDatabase;
 | 
				
			||||||
    DATAKNIFE: ILoadoutConfig;
 | 
					    DATAKNIFE: ILoadoutConfigDatabase;
 | 
				
			||||||
    MECH: ILoadoutConfig;
 | 
					    MECH: ILoadoutConfigDatabase;
 | 
				
			||||||
    OPERATOR_ADULT: ILoadoutConfig;
 | 
					    OPERATOR_ADULT: ILoadoutConfigDatabase;
 | 
				
			||||||
    DRIFTER: ILoadoutConfig;
 | 
					    DRIFTER: ILoadoutConfigDatabase;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ILoadoutKey {
 | 
					export interface ILoadoutKey {
 | 
				
			||||||
    [key: string]: ILoadoutConfig;
 | 
					    [key: string]: ILoadoutConfigClient;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type ILoadoutConfigDocument = ILoadoutConfig & Document;
 | 
					// for request and response from and to client
 | 
				
			||||||
 | 
					export interface ILoadoutConfigClient {
 | 
				
			||||||
export interface ILoadoutConfig {
 | 
					 | 
				
			||||||
    ItemId: IOid;
 | 
					    ItemId: IOid;
 | 
				
			||||||
    PresetIcon: string;
 | 
					    PresetIcon: string;
 | 
				
			||||||
    Favorite: boolean;
 | 
					    Favorite: boolean;
 | 
				
			||||||
    s: M;
 | 
					    s: IEquipmentSelection;
 | 
				
			||||||
    p: M;
 | 
					    p: IEquipmentSelection;
 | 
				
			||||||
    l: M;
 | 
					    l: IEquipmentSelection;
 | 
				
			||||||
    m: M;
 | 
					    m: IEquipmentSelection;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface M {
 | 
					export interface ILoadoutConfigDatabase extends Omit<ILoadoutConfigClient, "ItemId"> {
 | 
				
			||||||
 | 
					    _id: Types.ObjectId;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface IEquipmentSelection {
 | 
				
			||||||
    ItemId: IOid;
 | 
					    ItemId: IOid;
 | 
				
			||||||
    mod: number;
 | 
					    mod: number;
 | 
				
			||||||
    cus: number;
 | 
					    cus: number;
 | 
				
			||||||
@ -129,7 +124,7 @@ export interface Col {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type EquipmentCategories =
 | 
					export type EquipmentCategories =
 | 
				
			||||||
    | { LoadOuts: { [key in keyof ILoadout]: LoadOut } }
 | 
					    | { LoadOuts: { [key in keyof ILoadoutRequest]: LoadOut } }
 | 
				
			||||||
    | { LongGuns: Config }
 | 
					    | { LongGuns: Config }
 | 
				
			||||||
    | { OperatorAmps: Config } // Replace 'any' with the actual type
 | 
					    | { OperatorAmps: Config } // Replace 'any' with the actual type
 | 
				
			||||||
    | { Pistols: Config } // Replace 'any' with the actual type
 | 
					    | { Pistols: Config } // Replace 'any' with the actual type
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user