33 lines
1.2 KiB
JavaScript
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 |