# frozen_string_literal: true module AasmEventsConcern extend ActiveSupport::Concern included do # Todos los eventos de la máquina de estados # # @return [Array] def self.events aasm.events.map(&:name) - self::IGNORED_EVENTS end # Encuentra todos los eventos que se pueden ejecutar con el filtro # actual. # # @return [Array] def self.transitionable_events(current_state) self.events.select do |event| aasm.events.find { |x| x.name == event }.transitions_from_state? current_state end end # Todos los estados de la máquina de estados # # @return [Array] def self.states aasm.states.map(&:name) - self::IGNORED_STATES end # Envía notificación de errores # # @param exception [Exception] # @param record [ApplicationRecord] def notify_exception!(exception, record) ExceptionNotifier.notify_exception(exception, data: { site: site.name, record_type: record.class.name, record_id: record.id }) end end end