SpaceNinjaServer/src/types/guildTypes.ts

52 lines
1.4 KiB
TypeScript
Raw Normal View History

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;
}
export interface ICreateGuildRequest {
guildName: string;
}
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; // "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
extends Omit<IDojoComponentClient, "id" | "pi" | "CompletionTime" | "DecoCapacity"> {
_id: Types.ObjectId;
pi?: Types.ObjectId;
CompletionTime?: Date;
}