getAction(event, options) {
            // Ignore internal updates (`options.context.internal`) for now
            const actor = this.getActor(options);
            if (!actor) {
                return;
            }

            if (!this.actionsCollectCRUD) {
                return;
            }

            const resourceType = this.actionsResourceType;
            if (!resourceType) {
                return;
            }

            let context = {
                action_name: options.actionName
            };

            // Used to attach extra content to the action (ie. the key + group for settings changes)
            if (this.actionsExtraContext && Array.isArray(this.actionsExtraContext)) {
                for (const c of this.actionsExtraContext) {
                    context[c] = this.get(c) || this.previous(c);
                }
            }

            // Attach the primary name to the action (ie. the title or name of the model)
            if (event === 'deleted') {
                context.primary_name = (this.previous('title') || this.previous('name'));
            } else if (['added', 'edited'].includes(event)) {
                context.primary_name = (this.get('title') || this.get('name') || this.previous('title') || this.previous('name'));
            }

            const data = {
                event,
                resource_id: this.id || this.previous('id'),
                resource_type: resourceType,
                actor_id: actor.id,
                actor_type: actor.type
            };

            if (context && Object.keys(context).length) {
                data.context = context;
            }

            return data;
        }
Constructs data to be stored in the database with info
on particular actions

@param {string} event - The event that triggered the action
@param {Object} options - The options object
@returns {Object} The data to be stored in the database