feat: implement startDojoRecipeController to place new rooms in Dojo #273
@ -1,7 +1,7 @@
 | 
			
		||||
import { RequestHandler } from "express";
 | 
			
		||||
import { Types } from "mongoose";
 | 
			
		||||
import { Guild } from "@/src/models/guildModel";
 | 
			
		||||
import { IDojoClient } from "@/src/types/guildTypes";
 | 
			
		||||
import { IDojoClient, IDojoComponentClient } from "@/src/types/guildTypes";
 | 
			
		||||
import { toOid, toMongoDate } from "@/src/helpers/inventoryHelpers";
 | 
			
		||||
 | 
			
		||||
export const getGuildDojoController: RequestHandler = async (req, res) => {
 | 
			
		||||
@ -39,13 +39,21 @@ export const getGuildDojoController: RequestHandler = async (req, res) => {
 | 
			
		||||
        DojoComponents: []
 | 
			
		||||
    };
 | 
			
		||||
    guild.DojoComponents.forEach(dojoComponent => {
 | 
			
		||||
        dojo.DojoComponents.push({
 | 
			
		||||
        let clientComponent: IDojoComponentClient = {
 | 
			
		||||
            id: toOid(dojoComponent._id),
 | 
			
		||||
            pf: dojoComponent.pf,
 | 
			
		||||
            ppf: dojoComponent.ppf,
 | 
			
		||||
            CompletionTime: toMongoDate(dojoComponent.CompletionTime),
 | 
			
		||||
            DecoCapacity: 600
 | 
			
		||||
        });
 | 
			
		||||
        };
 | 
			
		||||
        if (dojoComponent.pi) {
 | 
			
		||||
            clientComponent.pi = toOid(dojoComponent.pi);
 | 
			
		||||
            clientComponent.op = dojoComponent.op!;
 | 
			
		||||
            clientComponent.pp = dojoComponent.pp!;
 | 
			
		||||
        }
 | 
			
		||||
        if (dojoComponent.CompletionTime) {
 | 
			
		||||
            clientComponent.CompletionTime = toMongoDate(dojoComponent.CompletionTime);
 | 
			
		||||
        }
 | 
			
		||||
        dojo.DojoComponents.push(clientComponent);
 | 
			
		||||
    });
 | 
			
		||||
    res.json(dojo);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										41
									
								
								src/controllers/api/startDojoRecipeController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,41 @@
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 | 
			||||
import { RequestHandler } from "express";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
import { IDojoComponentClient } from "@/src/types/guildTypes";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
import { Guild } from "@/src/models/guildModel";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
import { Types } from "mongoose";
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
interface IStartDojoRecipeRequest {
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    PlacedComponent: IDojoComponentClient;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    Revision: number;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
}
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
export const startDojoRecipeController: RequestHandler = async (req, res) => {
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    const accountId = await getAccountIdForRequest(req);
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    const inventory = await Inventory.findOne({ accountOwnerId: accountId });
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    if (!inventory) {
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        res.status(400).end();
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        return;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    }
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    const guildId = req.query.guildId as string;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    if (!inventory.GuildId || inventory.GuildId.toString() != guildId) {
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        res.status(400).end();
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        return;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    }
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    // Verified that a member of the guild is making this request. Assuming they are allowed to start a build.
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    const guild = (await Guild.findOne({ _id: guildId }))!;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    const request = JSON.parse(req.body.toString()) as IStartDojoRecipeRequest;
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    guild.DojoComponents!.push({
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        _id: new Types.ObjectId(),
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        pf: request.PlacedComponent.pf,
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        ppf: request.PlacedComponent.ppf,
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        pi: new Types.ObjectId(request.PlacedComponent.pi!.$oid),
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        op: request.PlacedComponent.op,
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        pp: request.PlacedComponent.pp,
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        CompletionTime: new Date(Date.now()) // TOOD: Omit this field & handle the "Collecting Materials" state.
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    });
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    await guild.save();
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    res.json({
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
        DojoRequestStatus: 0
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
    });
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
};
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 could use getInventory() could use getInventory() 
			
			
		perhaps this could be a getGuild() function, seems like we would need that often perhaps this could be a getGuild() function, seems like we would need that often 
			
			
		i dont like the non-null assertion operator here. i dont like the non-null assertion operator here. 
I would prefer coding it such that it is checked before null before, so this is not needed 
			
			
		 | 
			||||
@ -4,6 +4,9 @@ import { model, Schema } from "mongoose";
 | 
			
		||||
const dojoComponentSchema = new Schema<IDojoComponentDatabase>({
 | 
			
		||||
    pf: { type: String, required: true },
 | 
			
		||||
    ppf: String,
 | 
			
		||||
    pi: Schema.Types.ObjectId,
 | 
			
		||||
    op: String,
 | 
			
		||||
    pp: String,
 | 
			
		||||
    CompletionTime: Date
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -53,6 +53,7 @@ import { guildTechController } from "../controllers/api/guildTechController";
 | 
			
		||||
import { dojoController } from "@/src/controllers/api/dojoController";
 | 
			
		||||
import { getGuildDojoController } from "@/src/controllers/api/getGuildDojoController";
 | 
			
		||||
import { syndicateSacrificeController } from "../controllers/api/syndicateSacrificeController";
 | 
			
		||||
import { startDojoRecipeController } from "@/src/controllers/api/startDojoRecipeController";
 | 
			
		||||
 | 
			
		||||
const apiRouter = express.Router();
 | 
			
		||||
 | 
			
		||||
@ -116,5 +117,6 @@ apiRouter.post("/sell.php", sellController);
 | 
			
		||||
apiRouter.post("/upgrades.php", upgradesController);
 | 
			
		||||
apiRouter.post("/guildTech.php", guildTechController);
 | 
			
		||||
apiRouter.post("/syndicateSacrifice.php", syndicateSacrificeController);
 | 
			
		||||
apiRouter.post("/startDojoRecipe.php", startDojoRecipeController);
 | 
			
		||||
 | 
			
		||||
export { apiRouter };
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
import { Types } from "mongoose";
 | 
			
		||||
import { IOid, IMongoDate } from "@/src/types/commonTypes";
 | 
			
		||||
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
			
		||||
 | 
			
		||||
export interface IGuild {
 | 
			
		||||
    Name: string;
 | 
			
		||||
@ -31,13 +32,17 @@ export interface IDojoComponentClient {
 | 
			
		||||
    id: IOid;
 | 
			
		||||
    pf: string;
 | 
			
		||||
    ppf: string;
 | 
			
		||||
    CompletionTime: IMongoDate;
 | 
			
		||||
    DecoCapacity: number;
 | 
			
		||||
    pi?: IOid; // Parent ID. N/A to root.
 | 
			
		||||
    op?: string; // "Open Portal"? N/A to root.
 | 
			
		||||
    pp?: string; // "Parent Portal"? N/A to root.
 | 
			
		||||
    RegularCredits?: number; // "Collecting Materials" state: Number of credits that were donated.
 | 
			
		||||
    MiscItems?: IMiscItem[]; // "Collecting Materials" state: Resources that were donated.
 | 
			
		||||
    CompletionTime?: IMongoDate;
 | 
			
		||||
    DecoCapacity?: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IDojoComponentDatabase {
 | 
			
		||||
export interface IDojoComponentDatabase extends Omit<IDojoComponentClient, "id" | "pi" | "CompletionTime" | "DecoCapacity"> {
 | 
			
		||||
    _id: Types.ObjectId;
 | 
			
		||||
    pf: string;
 | 
			
		||||
    ppf: string;
 | 
			
		||||
    CompletionTime: Date;
 | 
			
		||||
    pi?: Types.ObjectId;
 | 
			
		||||
    CompletionTime?: Date;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
could use getInventory()
could use getInventory()
perhaps this could be a getGuild() function, seems like we would need that often
perhaps this could be a getGuild() function, seems like we would need that often
i dont like the non-null assertion operator here.
I would prefer coding it such that it is checked before null before, so this is not needed
i dont like the non-null assertion operator here.
I would prefer coding it such that it is checked before null before, so this is not needed