fix: rectify CrewMembers import & typings #845
@ -41,7 +41,6 @@ import {
 | 
				
			|||||||
    ICrewShipPortGuns,
 | 
					    ICrewShipPortGuns,
 | 
				
			||||||
    ICrewShipCustomization,
 | 
					    ICrewShipCustomization,
 | 
				
			||||||
    ICrewShipWeapon,
 | 
					    ICrewShipWeapon,
 | 
				
			||||||
    ICrewShipMembersClient,
 | 
					 | 
				
			||||||
    ICrewShipPilotWeapon,
 | 
					    ICrewShipPilotWeapon,
 | 
				
			||||||
    IShipExterior,
 | 
					    IShipExterior,
 | 
				
			||||||
    IHelminthFoodRecord,
 | 
					    IHelminthFoodRecord,
 | 
				
			||||||
@ -52,7 +51,9 @@ import {
 | 
				
			|||||||
    ICompletedDialogue,
 | 
					    ICompletedDialogue,
 | 
				
			||||||
    IDialogueClient,
 | 
					    IDialogueClient,
 | 
				
			||||||
    IUpgradeDatabase,
 | 
					    IUpgradeDatabase,
 | 
				
			||||||
    ICrewShipDatabase
 | 
					    ICrewShipDatabase,
 | 
				
			||||||
 | 
					    ICrewShipMemberDatabase,
 | 
				
			||||||
 | 
					    ICrewShipMemberClient
 | 
				
			||||||
} from "../../types/inventoryTypes/inventoryTypes";
 | 
					} from "../../types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { IOid } from "../../types/commonTypes";
 | 
					import { IOid } from "../../types/commonTypes";
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
@ -675,25 +676,33 @@ const crewShipCustomizationSchema = new Schema<ICrewShipCustomization>(
 | 
				
			|||||||
    { _id: false }
 | 
					    { _id: false }
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
 | 
					const crewShipMemberSchema = new Schema<ICrewShipMemberDatabase>(
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        SLOT_A: { type: Schema.Types.ObjectId, required: false },
 | 
					        ItemId: { type: Schema.Types.ObjectId, required: false },
 | 
				
			||||||
        SLOT_B: { type: Schema.Types.ObjectId, required: false },
 | 
					        NemesisFingerprint: { type: Number, required: false }
 | 
				
			||||||
        SLOT_C: { type: Schema.Types.ObjectId, required: false }
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    { _id: false }
 | 
					    { _id: false }
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
crewShipMembersSchema.set("toJSON", {
 | 
					crewShipMemberSchema.set("toJSON", {
 | 
				
			||||||
    virtuals: true,
 | 
					    virtuals: true,
 | 
				
			||||||
    transform(_doc, obj) {
 | 
					    transform(_doc, obj) {
 | 
				
			||||||
        const db = obj as ICrewShipMembersDatabase;
 | 
					        const db = obj as ICrewShipMemberDatabase;
 | 
				
			||||||
        const client = obj as ICrewShipMembersClient;
 | 
					        const client = obj as ICrewShipMemberClient;
 | 
				
			||||||
        client.SLOT_A = db.SLOT_A ? { ItemId: toOid(db.SLOT_A) } : undefined;
 | 
					        if (db.ItemId) {
 | 
				
			||||||
        client.SLOT_B = db.SLOT_B ? { ItemId: toOid(db.SLOT_B) } : undefined;
 | 
					            client.ItemId = toOid(db.ItemId);
 | 
				
			||||||
        client.SLOT_C = db.SLOT_C ? { ItemId: toOid(db.SLOT_C) } : undefined;
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const crewShipMembersSchema = new Schema<ICrewShipMembersDatabase>(
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        SLOT_A: { type: crewShipMemberSchema, required: false },
 | 
				
			||||||
 | 
					        SLOT_B: { type: crewShipMemberSchema, required: false },
 | 
				
			||||||
 | 
					        SLOT_C: { type: crewShipMemberSchema, required: false }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    { _id: false }
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const crewShipSchema = new Schema<ICrewShipDatabase>({
 | 
					const crewShipSchema = new Schema<ICrewShipDatabase>({
 | 
				
			||||||
    ItemType: { type: String, required: true },
 | 
					    ItemType: { type: String, required: true },
 | 
				
			||||||
    Configs: { type: [ItemConfigSchema], default: [] },
 | 
					    Configs: { type: [ItemConfigSchema], default: [] },
 | 
				
			||||||
 | 
				
			|||||||
@ -10,6 +10,8 @@ import {
 | 
				
			|||||||
    equipmentKeys,
 | 
					    equipmentKeys,
 | 
				
			||||||
    ICrewShipClient,
 | 
					    ICrewShipClient,
 | 
				
			||||||
    ICrewShipDatabase,
 | 
					    ICrewShipDatabase,
 | 
				
			||||||
 | 
					    ICrewShipMemberClient,
 | 
				
			||||||
 | 
					    ICrewShipMemberDatabase,
 | 
				
			||||||
    ICrewShipMembersClient,
 | 
					    ICrewShipMembersClient,
 | 
				
			||||||
    ICrewShipMembersDatabase,
 | 
					    ICrewShipMembersDatabase,
 | 
				
			||||||
    IDialogueClient,
 | 
					    IDialogueClient,
 | 
				
			||||||
@ -85,11 +87,18 @@ const replaceSlots = (db: ISlots, client: ISlots): void => {
 | 
				
			|||||||
    db.Slots = client.Slots;
 | 
					    db.Slots = client.Slots;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const convertCrewShipMember = (client: ICrewShipMemberClient): ICrewShipMemberDatabase => {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        ...client,
 | 
				
			||||||
 | 
					        ItemId: client.ItemId ? new Types.ObjectId(client.ItemId.$oid) : undefined
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
 | 
					const convertCrewShipMembers = (client: ICrewShipMembersClient): ICrewShipMembersDatabase => {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
        SLOT_A: client.SLOT_A ? new Types.ObjectId(client.SLOT_A.ItemId.$oid) : undefined,
 | 
					        SLOT_A: client.SLOT_A ? convertCrewShipMember(client.SLOT_A) : undefined,
 | 
				
			||||||
        SLOT_B: client.SLOT_B ? new Types.ObjectId(client.SLOT_B.ItemId.$oid) : undefined,
 | 
					        SLOT_B: client.SLOT_B ? convertCrewShipMember(client.SLOT_B) : undefined,
 | 
				
			||||||
        SLOT_C: client.SLOT_C ? new Types.ObjectId(client.SLOT_C.ItemId.$oid) : undefined
 | 
					        SLOT_C: client.SLOT_C ? convertCrewShipMember(client.SLOT_C) : undefined
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -471,19 +471,25 @@ export interface ICrewShipDatabase extends Omit<ICrewShipClient, "CrewMembers" |
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ICrewShipMembersClient {
 | 
					export interface ICrewShipMembersClient {
 | 
				
			||||||
    SLOT_A?: ISlot;
 | 
					    SLOT_A?: ICrewShipMemberClient;
 | 
				
			||||||
    SLOT_B?: ISlot;
 | 
					    SLOT_B?: ICrewShipMemberClient;
 | 
				
			||||||
    SLOT_C?: ISlot;
 | 
					    SLOT_C?: ICrewShipMemberClient;
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export interface ISlot {
 | 
					 | 
				
			||||||
    ItemId: IOid;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ICrewShipMembersDatabase {
 | 
					export interface ICrewShipMembersDatabase {
 | 
				
			||||||
    SLOT_A?: Types.ObjectId;
 | 
					    SLOT_A?: ICrewShipMemberDatabase;
 | 
				
			||||||
    SLOT_B?: Types.ObjectId;
 | 
					    SLOT_B?: ICrewShipMemberDatabase;
 | 
				
			||||||
    SLOT_C?: Types.ObjectId;
 | 
					    SLOT_C?: ICrewShipMemberDatabase;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ICrewShipMemberClient {
 | 
				
			||||||
 | 
					    ItemId?: IOid;
 | 
				
			||||||
 | 
					    NemesisFingerprint?: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ICrewShipMemberDatabase {
 | 
				
			||||||
 | 
					    ItemId?: Types.ObjectId;
 | 
				
			||||||
 | 
					    NemesisFingerprint?: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ICrewShipCustomization {
 | 
					export interface ICrewShipCustomization {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user