MeteoriteH/Back/model/groups.js

33 lines
1.2 KiB
JavaScript

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