58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
|
const errors = require('@tryghost/errors');
|
||
|
const ghostBookshelf = require('./base');
|
||
|
|
||
|
const MemberCreatedEvent = ghostBookshelf.Model.extend({
|
||
|
tableName: 'members_created_events',
|
||
|
|
||
|
member() {
|
||
|
return this.belongsTo('Member', 'member_id', 'id');
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* The subscription created event that happend at the same time (if any)
|
||
|
*/
|
||
|
subscriptionCreatedEvent() {
|
||
|
return this.belongsTo('SubscriptionCreatedEvent', 'batch_id', 'batch_id');
|
||
|
},
|
||
|
|
||
|
postAttribution() {
|
||
|
return this.belongsTo('Post', 'attribution_id', 'id');
|
||
|
},
|
||
|
|
||
|
userAttribution() {
|
||
|
return this.belongsTo('User', 'attribution_id', 'id');
|
||
|
},
|
||
|
|
||
|
tagAttribution() {
|
||
|
return this.belongsTo('Tag', 'attribution_id', 'id');
|
||
|
},
|
||
|
|
||
|
filterRelations() {
|
||
|
return {
|
||
|
subscriptionCreatedEvent: {
|
||
|
// Mongo-knex doesn't support belongsTo relations
|
||
|
tableName: 'members_subscription_created_events',
|
||
|
tableNameAs: 'subscriptionCreatedEvent',
|
||
|
type: 'manyToMany',
|
||
|
joinTable: 'members_created_events',
|
||
|
joinFrom: 'id',
|
||
|
joinToForeign: 'batch_id',
|
||
|
joinTo: 'batch_id',
|
||
|
joinType: 'leftJoin'
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}, {
|
||
|
async edit() {
|
||
|
throw new errors.IncorrectUsageError({message: 'Cannot edit MemberCreatedEvent'});
|
||
|
},
|
||
|
|
||
|
async destroy() {
|
||
|
throw new errors.IncorrectUsageError({message: 'Cannot destroy MemberCreatedEvent'});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
module.exports = {
|
||
|
MemberCreatedEvent: ghostBookshelf.model('MemberCreatedEvent', MemberCreatedEvent)
|
||
|
};
|