async _onResourceAdded(type, model) {
        debug('_onResourceAdded', type);

        const resourceConfig = _.find(this.resourcesConfig, {type: type});

        // NOTE: synchronous handling for post and pages so that their URL is available without a delay
        //       for more context and future improvements check https://github.com/TryGhost/Ghost/issues/10360
        if (['posts', 'pages'].includes(type)) {
            const obj = this._prepareModelSync(model, resourceConfig);

            const resource = new Resource(type, obj);

            debug('_onResourceAdded', type);
            this.data[type].push(resource);

            this.queue.start({
                event: 'added',
                action: 'added:' + model.id,
                eventData: {
                    id: model.id,
                    type: type
                }
            });
        } else {
            const [dbResource] = await this._fetchSingle(resourceConfig, model.id);

            if (dbResource) {
                const resource = new Resource(type, dbResource);

                debug('_onResourceAdded', type);
                this.data[type].push(resource);

                this.queue.start({
                    event: 'added',
                    action: 'added:' + model.id,
                    eventData: {
                        id: model.id,
                        type: type
                    }
                });
            }
        }
    }
@description Listener for "model added" event.

If we receive an event from the model layer, we push the new resource into the queue.
The subscribers (the url generators) have registered for this event and the queue will call
all subscribers sequentially. The first generator, where the conditions match the resource, will
own the resource and it's url.

@param {ResourceType} type
@param {import('bookshelf').Model} model
@private