62 lines
2.3 KiB
JavaScript
62 lines
2.3 KiB
JavaScript
const mongoose = require('mongoose')
|
|
var uniqueValidator = require('mongoose-unique-validator');
|
|
const UserSchema = new mongoose.Schema({
|
|
username: {type: String, required: true, unique: true,uniqueCaseInsensitive: true},
|
|
password: {type: String, required: true},
|
|
coins: {type: Number, required: true},
|
|
admin: {type: Boolean, required: true},
|
|
ugcpermission: {type: Boolean, required: false},
|
|
userid: {type: Number, required: true, index: true},
|
|
moderation: {type: String, required: true},
|
|
moderationhistory: {type: Object, required: false},
|
|
inventory: {type: Object, required: false},
|
|
colors: {type: Object, required: false},
|
|
joindate: {type: String, required: true},
|
|
lastclaimofcurrency: {type: Number, required: true},
|
|
discordid: {type: String, required: false},
|
|
gamejoin: {type: String, required: false},
|
|
gamejoin2018: {type: String, required: false},
|
|
gamejoin2020: {type: String, required: false},
|
|
twofasecrets: {type: String, required: false},
|
|
followers: {type: Object, required: false},
|
|
friends: {type: Object, required: false},
|
|
friendrequests: {type: Object, required: false},
|
|
membership: {type: String, required: true},
|
|
badges: {type: Object, required: false},
|
|
status: {type: String, required: false},
|
|
timesincelastrequest: {type: Number, required: true},
|
|
avatartype: {type: String, required: false},
|
|
bio: {type: String, required: false},
|
|
recentlyplayed: {type: [{id: Number}], required: false},
|
|
css: {type: String, required: false},
|
|
aboutme: {type: String, required: false},
|
|
lastfeedsharetime: {type: Number, required: false},
|
|
feed: [{posterid: Number, content: String, date: Number, moderated: Boolean}], required: false},
|
|
|
|
{collection: 'users'}
|
|
)
|
|
UserSchema.plugin(uniqueValidator)
|
|
|
|
UserSchema.virtual('recentlyplayedgames', {
|
|
ref: 'GamesSchema',
|
|
localField: 'recentlyplayed.id',
|
|
foreignField: 'idofgame'
|
|
})
|
|
|
|
UserSchema.virtual('friendsdata', {
|
|
ref: 'UserSchema',
|
|
localField: 'friends.userid',
|
|
foreignField: 'userid'
|
|
})
|
|
|
|
UserSchema.virtual('feed.userdata', {
|
|
ref: 'UserSchema',
|
|
localField: 'feed.posterid',
|
|
foreignField: 'userid',
|
|
justOne: true
|
|
})
|
|
|
|
|
|
const model = mongoose.model('UserSchema', UserSchema)
|
|
|
|
module.exports = model |