mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 13:47:33 +01:00
24 lines
796 B
JavaScript
24 lines
796 B
JavaScript
import mongoose from 'mongoose';
|
|
import baseModel from '../libs/baseModel';
|
|
import validator from 'validator';
|
|
|
|
const Schema = mongoose.Schema;
|
|
|
|
export let schema = new Schema({
|
|
_id: {$type: String, required: true}, // Use a custom string as _id
|
|
consumed: {$type: Boolean, default: false, required: true},
|
|
userId: {$type: String, ref: 'User', required: true, validate: [v => validator.isUUID(v), 'Invalid uuid.']},
|
|
}, {
|
|
strict: true,
|
|
minimize: false, // So empty objects are returned
|
|
typeKey: '$type', // So that we can use fields named `type`
|
|
});
|
|
|
|
schema.plugin(baseModel, {
|
|
noSet: ['id', '_id', 'userId', 'consumed'], // Nothing can be set from the client
|
|
timestamps: true,
|
|
_id: false, // using custom _id
|
|
});
|
|
|
|
export let model = mongoose.model('IapPurchaseReceipt', schema);
|