rittenhop-ghost/versions/5.94.2/core/server/models/member-created-event.js

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