MeteoriteH/Back/model/user.js

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