2021-05-22 22:54:45 +02:00

31 lines
791 B
TypeScript

import { Schema, model, Types, Document } from "mongoose";
import db from "../util/Database";
import { PublicUserProjection, UserModel } from "./User";
export interface Ban extends Document {
user_id: string;
guild_id: string;
executor_id: string;
ip: string;
reason?: string;
}
export const BanSchema = new Schema({
user_id: { type: String, required: true },
guild_id: { type: String, required: true },
executor_id: { type: String, required: true },
reason: String,
ip: String, // ? Should we store this in here, or in the UserModel?
});
BanSchema.virtual("user", {
ref: UserModel,
localField: "id",
foreignField: "user_id",
justOne: true,
autopopulate: { select: PublicUserProjection },
});
// @ts-ignore
export const BanModel = db.model<Ban>("Ban", BanSchema, "bans");