const mongoose = require("mongoose") const GroupSchema = new mongoose.Schema( { Name: { type: String, required: true }, Description: { type: String, required: true }, Public: { type: Boolean, required: true }, IconApproved: { type: Boolean, required: true }, denied: { type: Boolean, required: false }, Hidden: { type: Boolean, required: false }, groupid: { type: Number, required: true }, ownerid: { type: Number, required: true }, memberscount: { type: Number, required: true }, members: { type: [{ userId: Number, rank: Number }], required: true }, currentshout: { type: { content: String, shouter: Number }, required: false, }, Roles: { type: [ { RoleName: String, Permissions: { Shout: Boolean, Kick: Boolean, ChangeRoles: Boolean, ModerateWall: Boolean, ManageAllies: Boolean, All: Boolean, }, Rank: Number, }, ], required: true, }, // default {} }, { collection: "groups" }, ) const model = mongoose.model("GroupSchema", GroupSchema) GroupSchema.virtual("owner", { ref: "UserSchema", localField: "ownerid", foreignField: "userid", justOne: true, }) GroupSchema.virtual("memberspoly", { ref: "UserSchema", localField: "members.userId", foreignField: "userid", }) module.exports = model