5f928794c3
refs https://github.com/TryGhost/Team/issues/2078 These events are all required for other parts of the Ghost system to stay in sync. The events on each Tier object will be dispatched by the TierRepository once they've been persisted. TierCreatedEvent - generate Stripe Products & Prices TierNameChangeEvent - update Stripe Products TierPriceChangeEvent - update Stripe Products & Prices TierArchivedEvent - update the Portal settings for visible tiers - disable Stripe Products & Prices TierActivatedEvent - enable Stripe Products & Prices
31 lines
625 B
JavaScript
31 lines
625 B
JavaScript
/**
|
|
* @typedef {object} TierActivatedEventData
|
|
* @prop {Tier} tier
|
|
*/
|
|
|
|
class TierActivatedEvent {
|
|
/** @type {TierActivatedEventData} */
|
|
data;
|
|
/** @type {Date} */
|
|
timestamp;
|
|
|
|
/**
|
|
* @param {TierActivatedEvent} data
|
|
* @param {Date} timestamp
|
|
*/
|
|
constructor(data, timestamp) {
|
|
this.data = data;
|
|
this.timestamp = timestamp;
|
|
}
|
|
|
|
/**
|
|
* @param {TierActivatedEvent} data
|
|
* @param {Date} [timestamp]
|
|
*/
|
|
static create(data, timestamp = new Date()) {
|
|
return new TierActivatedEvent(data, timestamp);
|
|
}
|
|
}
|
|
|
|
module.exports = TierActivatedEvent;
|