25b0ff38c4
* feat(incentives): login bennies WIP * feat(content): incentive prize content WIP * fix(content): placeholders pass tests * WIP(content): Bard instrument placeholder * feat(content): Incentives build * chore(sprites): compile and fix some strings * WIP(incentives): quests and backgrounds * fix(quests): correct buy/launch handling * [WIP] Incentives rewarding (#8226) * Added login incentive rewards * Updated incentive rewards * Added incentive modal and updated notification structure * Added analytics to sleeping * Added login incentives to user analytics * Fixed unit tests and ensured that prizes are incremented and not replaced * Updated style of daily login incentive modal * Added rewards modal * Added translations * Added loigin incentive ui elements to profile * Updated login incentives structure and abstracted to common.content * Added dynamic display for login incentives on profile * Added purple potion image * Updated daily login modal * Fixed progress calculation * Added bard gear * Updated login incentive rewards * Fixed styles and text * Added multiple read for notifications * Fixed lint issues * Fixed styles and added 50 limit * Updated quest keys * Added login incentives reward page * Fixed tests * Fixed linting and tests * Read named notifications route. Add image for backgrounds * Fixed style issues and added tranlsations to login incentive notification * Hided abiltiy to purchase incentive backgrounds and added message to detail how to unlock * Updated awarded message * Fixed text and updated progress counter to display better * Fixed purple potion reward text * Fixed check in backgrouns reward text * fix(quest): pass tests * Added display of multiple rewards * Updated modal styles * Fixed neagtive 50 issue * Remvoed total count from daily login incentives modal * Fixed magic paw display * fix(awards): give bunnies again * WIP(incentives): more progress on BG shop * fix(incentives): actually award backgrounds * fix(incentives): more BG fixy * fix(backgrounds): don't gem-buy checkin bgs * Added dust bunny notification * fix(incentives): don't redisplay bunny award * chore(news): Bailey and different promo sprite
46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
import mongoose from 'mongoose';
|
|
import baseModel from '../libs/baseModel';
|
|
import { v4 as uuid } from 'uuid';
|
|
import validator from 'validator';
|
|
|
|
const NOTIFICATION_TYPES = [
|
|
'DROPS_ENABLED',
|
|
'REBIRTH_ENABLED',
|
|
'WON_CHALLENGE',
|
|
'STREAK_ACHIEVEMENT',
|
|
'ULTIMATE_GEAR_ACHIEVEMENT',
|
|
'REBIRTH_ACHIEVEMENT',
|
|
'NEW_CONTRIBUTOR_LEVEL',
|
|
'CRON',
|
|
'GROUP_TASK_APPROVAL',
|
|
'GROUP_TASK_APPROVED',
|
|
'LOGIN_INCENTIVE',
|
|
];
|
|
|
|
const Schema = mongoose.Schema;
|
|
|
|
export let schema = new Schema({
|
|
id: {
|
|
type: String,
|
|
default: uuid,
|
|
validate: [validator.isUUID, 'Invalid uuid.'],
|
|
},
|
|
type: {type: String, required: true, enum: NOTIFICATION_TYPES},
|
|
data: {type: Schema.Types.Mixed, default: () => {
|
|
return {};
|
|
}},
|
|
}, {
|
|
strict: true,
|
|
minimize: false, // So empty objects are returned
|
|
_id: false, // use id instead of _id
|
|
});
|
|
|
|
schema.plugin(baseModel, {
|
|
noSet: ['_id', 'id'],
|
|
timestamps: true,
|
|
private: ['updatedAt'],
|
|
_id: false, // use id instead of _id
|
|
});
|
|
|
|
export let model = mongoose.model('UserNotification', schema);
|