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