summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/models/Guild.ts2
-rw-r--r--src/models/Member.ts12
2 files changed, 12 insertions, 2 deletions
diff --git a/src/models/Guild.ts b/src/models/Guild.ts
index 8eb7533f..effc20ee 100644
--- a/src/models/Guild.ts
+++ b/src/models/Guild.ts
@@ -87,5 +87,7 @@ export const GuildSchema = new Schema({
 	widget_enabled: Boolean,
 });
 
+// GuildSchema.virtual
+
 // @ts-ignore
 export const GuildModel = db.model<GuildDocument>("Guild", GuildSchema, "guilds");
diff --git a/src/models/Member.ts b/src/models/Member.ts
index a377f54e..c177c6c9 100644
--- a/src/models/Member.ts
+++ b/src/models/Member.ts
@@ -1,5 +1,5 @@
-import { PublicUser } from "./User";
-import { Schema, model, Types, Document } from "mongoose";
+import { PublicUser, User, UserModel } from "./User";
+import { Schema, Types, Document } from "mongoose";
 import db from "../util/Database";
 
 export interface Member {
@@ -13,6 +13,7 @@ export interface Member {
 	mute: boolean;
 	pending: boolean;
 	settings: UserGuildSettings;
+	user?: User;
 }
 
 export interface MemberDocument extends Member, Document {
@@ -74,9 +75,16 @@ export const MemberSchema = new Schema({
 	},
 });
 
+MemberSchema.virtual("user", {
+	model: UserModel,
+	localField: "user",
+	foreignField: "id",
+});
+
 // @ts-ignore
 export const MemberModel = db.model<MemberDocument>("Member", MemberSchema, "members");
 
+// @ts-ignore
 export interface PublicMember extends Omit<Member, "settings" | "id"> {
 	user: PublicUser;
 }