Sha256: 424ef8e2c91229c6aeeadff0e4051fcfc1d6ab4ea8ba7a1bd6e0952f77a6778e

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/events"

module Renalware
  module Events
    class Type < ApplicationRecord
      self.table_name = "event_types"
      has_many(
        :alert_triggers,
        class_name: "EventTypeAlertTrigger",
        foreign_key: :event_type_id,
        dependent: :destroy
      )
      belongs_to :category, class_name: "Renalware::Events::Category"

      DEFAULT_EVENT_CLASS_NAME = "Renalware::Events::Simple"

      acts_as_paranoid

      validates :name, presence: true, uniqueness: true
      validates :category_id, presence: true
      validates :slug,
                format: {
                  with: /\A[0-9a-z\-\_]+\z/i,
                  case_sensitive: false
                },
                uniqueness: true,
                allow_nil: true

      scope :visible, -> { where(hidden: false) }

      def self.policy_class
        BasePolicy
      end

      def to_s
        name
      end

      def event_class_name
        super || DEFAULT_EVENT_CLASS_NAME
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/events/type.rb
renalware-core-2.1.0 app/models/renalware/events/type.rb