Files
adastra_api/src/database/models/mongo/herowars/Member.js
T

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);