2017-03-18 16:04:27 +09:00
|
|
|
/*
|
|
|
|
|
|
|
|
A SimpleSchema-compatible JSON schema
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
const schema = {
|
|
|
|
|
|
|
|
// default properties
|
|
|
|
|
|
|
|
_id: {
|
|
|
|
type: String,
|
2017-04-03 16:24:19 +09:00
|
|
|
optional: true,
|
2017-03-18 16:04:27 +09:00
|
|
|
viewableBy: ['guests'],
|
|
|
|
},
|
|
|
|
createdAt: {
|
|
|
|
type: Date,
|
2017-04-03 16:24:19 +09:00
|
|
|
optional: true,
|
2017-03-18 16:04:27 +09:00
|
|
|
viewableBy: ['guests'],
|
|
|
|
autoValue: (documentOrModifier) => {
|
|
|
|
if (documentOrModifier && !documentOrModifier.$set) return new Date() // if this is an insert, set createdAt to current timestamp
|
|
|
|
}
|
|
|
|
},
|
|
|
|
userId: {
|
|
|
|
type: String,
|
2017-04-03 16:24:19 +09:00
|
|
|
optional: true,
|
2017-03-18 16:04:27 +09:00
|
|
|
viewableBy: ['guests'],
|
|
|
|
resolveAs: 'user: User',
|
|
|
|
},
|
|
|
|
|
|
|
|
// custom properties
|
|
|
|
|
|
|
|
name: {
|
|
|
|
label: 'Name',
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
|
|
|
viewableBy: ['guests'],
|
|
|
|
insertableBy: ['members'],
|
|
|
|
editableBy: ['members'],
|
|
|
|
},
|
|
|
|
year: {
|
|
|
|
label: 'Year',
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
|
|
|
viewableBy: ['guests'],
|
|
|
|
insertableBy: ['members'],
|
|
|
|
editableBy: ['members'],
|
|
|
|
},
|
|
|
|
review: {
|
|
|
|
label: 'Review',
|
|
|
|
type: String,
|
|
|
|
optional: true,
|
2017-03-27 10:52:56 +09:00
|
|
|
control: 'textarea',
|
2017-03-18 16:04:27 +09:00
|
|
|
viewableBy: ['guests'],
|
|
|
|
insertableBy: ['members'],
|
|
|
|
editableBy: ['members']
|
|
|
|
},
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
export default schema;
|