fix: import failing for LotusCustomization from live #1891
@ -781,9 +781,25 @@ const loreFragmentScansSchema = new Schema<ILoreFragmentScan>(
 | 
				
			|||||||
    { _id: false }
 | 
					    { _id: false }
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const lotusCustomizationSchema = new Schema<ILotusCustomization>().add(ItemConfigSchema).add({
 | 
					// const lotusCustomizationSchema = new Schema<ILotusCustomization>().add(ItemConfigSchema).add({
 | 
				
			||||||
 | 
					//     Persona: String
 | 
				
			||||||
 | 
					// });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Laxer schema for cleanupInventory
 | 
				
			||||||
 | 
					const lotusCustomizationSchema = new Schema<ILotusCustomization>(
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Skins: [String],
 | 
				
			||||||
 | 
					        pricol: colorSchema,
 | 
				
			||||||
 | 
					        attcol: Schema.Types.Mixed,
 | 
				
			||||||
 | 
					        sigcol: Schema.Types.Mixed,
 | 
				
			||||||
 | 
					        eyecol: Schema.Types.Mixed,
 | 
				
			||||||
 | 
					        facial: Schema.Types.Mixed,
 | 
				
			||||||
 | 
					        cloth: Schema.Types.Mixed,
 | 
				
			||||||
 | 
					        syancol: Schema.Types.Mixed,
 | 
				
			||||||
        Persona: String
 | 
					        Persona: String
 | 
				
			||||||
});
 | 
					    },
 | 
				
			||||||
 | 
					    { _id: false }
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const evolutionProgressSchema = new Schema<IEvolutionProgress>(
 | 
					const evolutionProgressSchema = new Schema<IEvolutionProgress>(
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ import { Types } from "mongoose";
 | 
				
			|||||||
import {
 | 
					import {
 | 
				
			||||||
    IEquipmentClient,
 | 
					    IEquipmentClient,
 | 
				
			||||||
    IEquipmentDatabase,
 | 
					    IEquipmentDatabase,
 | 
				
			||||||
 | 
					    IItemConfig,
 | 
				
			||||||
    IOperatorConfigClient,
 | 
					    IOperatorConfigClient,
 | 
				
			||||||
    IOperatorConfigDatabase
 | 
					    IOperatorConfigDatabase
 | 
				
			||||||
} from "../types/inventoryTypes/commonInventoryTypes";
 | 
					} from "../types/inventoryTypes/commonInventoryTypes";
 | 
				
			||||||
@ -174,6 +175,20 @@ const convertNemesis = (client: INemesisClient): INemesisDatabase => {
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Empty objects from live may have been encoded as empty arrays because of PHP.
 | 
				
			||||||
 | 
					const convertItemConfig = <T extends IItemConfig>(client: T): T => {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        ...client,
 | 
				
			||||||
 | 
					        pricol: Array.isArray(client.pricol) ? {} : client.pricol,
 | 
				
			||||||
 | 
					        attcol: Array.isArray(client.attcol) ? {} : client.attcol,
 | 
				
			||||||
 | 
					        sigcol: Array.isArray(client.sigcol) ? {} : client.sigcol,
 | 
				
			||||||
 | 
					        eyecol: Array.isArray(client.eyecol) ? {} : client.eyecol,
 | 
				
			||||||
 | 
					        facial: Array.isArray(client.facial) ? {} : client.facial,
 | 
				
			||||||
 | 
					        cloth: Array.isArray(client.cloth) ? {} : client.cloth,
 | 
				
			||||||
 | 
					        syancol: Array.isArray(client.syancol) ? {} : client.syancol
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<IInventoryClient>): void => {
 | 
					export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<IInventoryClient>): void => {
 | 
				
			||||||
    for (const key of equipmentKeys) {
 | 
					    for (const key of equipmentKeys) {
 | 
				
			||||||
        if (client[key] !== undefined) {
 | 
					        if (client[key] !== undefined) {
 | 
				
			||||||
@ -352,7 +367,7 @@ export const importInventory = (db: TInventoryDatabaseDocument, client: Partial<
 | 
				
			|||||||
        db.PlayerSkills = client.PlayerSkills;
 | 
					        db.PlayerSkills = client.PlayerSkills;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (client.LotusCustomization !== undefined) {
 | 
					    if (client.LotusCustomization !== undefined) {
 | 
				
			||||||
        db.LotusCustomization = client.LotusCustomization;
 | 
					        db.LotusCustomization = convertItemConfig(client.LotusCustomization);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (client.CollectibleSeries !== undefined) {
 | 
					    if (client.CollectibleSeries !== undefined) {
 | 
				
			||||||
        db.CollectibleSeries = client.CollectibleSeries;
 | 
					        db.CollectibleSeries = client.CollectibleSeries;
 | 
				
			||||||
 | 
				
			|||||||
@ -1847,6 +1847,25 @@ export const cleanupInventory = (inventory: TInventoryDatabaseDocument): void =>
 | 
				
			|||||||
        logger.debug(`removing FreeFavorsEarned from LibrarySyndicate`);
 | 
					        logger.debug(`removing FreeFavorsEarned from LibrarySyndicate`);
 | 
				
			||||||
        LibrarySyndicate.FreeFavorsEarned = undefined;
 | 
					        LibrarySyndicate.FreeFavorsEarned = undefined;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (inventory.LotusCustomization) {
 | 
				
			||||||
 | 
					        if (
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.attcol) ||
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.sigcol) ||
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.eyecol) ||
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.facial) ||
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.cloth) ||
 | 
				
			||||||
 | 
					            Array.isArray(inventory.LotusCustomization.syancol)
 | 
				
			||||||
 | 
					        ) {
 | 
				
			||||||
 | 
					            logger.debug(`fixing empty objects represented as empty arrays in LotusCustomization`);
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.attcol = {};
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.sigcol = {};
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.eyecol = {};
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.facial = {};
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.cloth = {};
 | 
				
			||||||
 | 
					            inventory.LotusCustomization.syancol = {};
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getCalendarProgress = (inventory: TInventoryDatabaseDocument): ICalendarProgress => {
 | 
					export const getCalendarProgress = (inventory: TInventoryDatabaseDocument): ICalendarProgress => {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user