136 lines
3.5 KiB
JavaScript
136 lines
3.5 KiB
JavaScript
var mongoose = require('mongoose');
|
|
var uniqueValidator = require('mongoose-unique-validator');
|
|
/*
|
|
var HWMemberSchemaOld = new mongoose.Schema({
|
|
id: { type: String, lowercase: true, unique: true },
|
|
name: String,
|
|
lastLoginTime: String,
|
|
serverId: String,
|
|
level: String,
|
|
clanId: String,
|
|
clanRole: String,
|
|
commander: Boolean,
|
|
avatarId: String,
|
|
isChatModerator: Boolean,
|
|
frameId: Number,
|
|
leagueId: Number,
|
|
clanTitle: String,
|
|
champion: Boolean,
|
|
stat: {
|
|
activitySum: Number,
|
|
todayActivity: Number,
|
|
dungeonActivitySum: Number,
|
|
todayDungeonActivity: Number,
|
|
raidSum: Number,
|
|
wasChampion: Boolean,
|
|
todayPrestige: Number,
|
|
prestigeSum: Number,
|
|
},
|
|
inactivity: {
|
|
daysLeft: Number,
|
|
timeLeft: Number,
|
|
dropDate: Number,
|
|
dropDelay: String,
|
|
},
|
|
adventureSum: Number,
|
|
clanGiftsSum: Number,
|
|
clanWarSum: Number,
|
|
weekStat: {
|
|
activity: [Number],
|
|
dungeonActivity: [Number],
|
|
adventureStat: [Number],
|
|
clanWarStat: [Number],
|
|
prestigeStat: [Number],
|
|
clanGifts: [Number],
|
|
},
|
|
score: Number,
|
|
scoreGifts: Number,
|
|
warGifts: Number,
|
|
rewards: Number,
|
|
author: { type: mongoose.Schema.Types.UUID, ref: 'User' }
|
|
}, {timestamps: true, toJSON: {virtuals: true}});
|
|
*/
|
|
var HWMemberSchema = new mongoose.Schema({
|
|
id: { type: String, unique: true },
|
|
allowPm: String,
|
|
avatarId: String,
|
|
clanIcon: {
|
|
flagColor1: Number,
|
|
flagColor2: Number,
|
|
flagShape: Number,
|
|
iconColor: Number,
|
|
iconShape: Number,
|
|
},
|
|
clanId: String,
|
|
clanRole: String,
|
|
clanTitle: String,
|
|
commander: Boolean,
|
|
frameId: Number,
|
|
isChatModerator: Boolean,
|
|
lastLoginTime: String,
|
|
leagueId: Number,
|
|
level: String,
|
|
name: String,
|
|
serverId: String,
|
|
champion: Boolean,
|
|
stat: {
|
|
activitySum: Number,
|
|
todayActivity: Number,
|
|
dungeonActivitySum: Number,
|
|
todayDungeonActivity: Number,
|
|
raidSum: Number,
|
|
wasChampion: Boolean,
|
|
todayPrestige: Number,
|
|
prestigeSum: Number,
|
|
},
|
|
inactivity: {
|
|
daysLeft: Number,
|
|
timeLeft: Number,
|
|
dropDate: Number,
|
|
dropDelay: String,
|
|
},
|
|
adventureSum: Number,
|
|
clanGiftsSum: Number,
|
|
clanWarSum: Number,
|
|
weekStat: {
|
|
activity: [Number],
|
|
dungeonActivity: [Number],
|
|
adventureStat: [Number],
|
|
clanWarStat: [Number],
|
|
prestigeStat: [Number],
|
|
clanGifts: [Number],
|
|
},
|
|
score: Number,
|
|
scoreGifts: Number,
|
|
warGifts: Number,
|
|
rewards: Number,
|
|
author: { type: mongoose.Schema.Types.UUID, ref: 'User' }
|
|
}, {timestamps: true, toJSON: {virtuals: true}});
|
|
|
|
HWMemberSchema.plugin(uniqueValidator, { message: 'is already taken' });
|
|
|
|
HWMemberSchema.methods.toJSONFor = function() {
|
|
return {
|
|
id: this.id,
|
|
allowPm: this.allowPm,
|
|
avatarId: this.avatarId,
|
|
clanIcon: this.clanIcon,
|
|
clanId: this.clanId,
|
|
clanRole: this.clanRole,
|
|
clanTitle: this.clanTitle,
|
|
commander: this.commander,
|
|
frameId: this.frameId,
|
|
isChatModerator: this.isChatModerator,
|
|
lastLoginTime: this.lastLoginTime,
|
|
leagueId: this.leagueId,
|
|
level: this.level,
|
|
name: this.name,
|
|
serverId: this.serverId,
|
|
createdAt: this.createdAt,
|
|
updatedAt: this.updatedAt,
|
|
author: this.author.toJSONFor()
|
|
};
|
|
};
|
|
|
|
mongoose.model('HWMember', HWMemberSchema);
|