SpaceNinjaServer/src/types/guildTypes.ts
Sainan 491b215be0
All checks were successful
Build / build (18) (push) Successful in 40s
Build / build (20) (push) Successful in 58s
Build / build (18) (pull_request) Successful in 41s
Build / build (22) (push) Successful in 1m5s
Build / build (20) (pull_request) Successful in 58s
Build / build (22) (pull_request) Successful in 37s
feat: change dojo spawn room
2025-02-12 05:13:41 +01:00

63 lines
1.8 KiB
TypeScript

import { Types } from "mongoose";
import { IOid, IMongoDate } from "@/src/types/commonTypes";
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
export interface IGuild {
Name: string;
}
export interface IGuildDatabase extends IGuild {
_id: Types.ObjectId;
DojoComponents?: IDojoComponentDatabase[];
DojoCapacity: number;
DojoEnergy: number;
TechProjects?: ITechProjectDatabase[];
}
export interface IDojoClient {
_id: IOid; // ID of the guild
Name: string;
Tier: number;
FixedContributions: boolean;
DojoRevision: number;
RevisionTime: number;
Energy: number;
Capacity: number;
DojoRequestStatus: number;
DojoComponents: IDojoComponentClient[];
}
export interface IDojoComponentClient {
id: IOid;
pf: string; // Prefab (.level)
ppf: string;
pi?: IOid; // Parent ID. N/A to root.
op?: string; // Name of the door within this room that leads to its parent. N/A to root.
pp?: string; // Name of the door within the parent that leads to this room. N/A to root.
Name?: string;
Message?: string;
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
extends Omit<IDojoComponentClient, "id" | "pi" | "CompletionTime" | "DecoCapacity"> {
_id: Types.ObjectId;
pi?: Types.ObjectId;
CompletionTime?: Date;
}
export interface ITechProjectClient {
ItemType: string;
ReqCredits: number;
ReqItems: IMiscItem[];
State: number; // 0 = pending, 1 = complete
CompletionDate?: IMongoDate;
}
export interface ITechProjectDatabase extends Omit<ITechProjectClient, "CompletionDate"> {
CompletionDate?: Date;
}