Sha256: 5b045be42c233895a3bc41349dc26b710fd936f227d29f634a2e559600b8b3e4

Contents?: true

Size: 1.07 KB

Versions: 15

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/accesses"

module Renalware
  module Accesses
    class Plan < ApplicationRecord
      include Accountable

      belongs_to :patient, touch: true
      belongs_to :plan_type
      belongs_to :decided_by, class_name: "User"

      validates :plan_type, presence: true
      validates :decided_by, presence: true

      scope :ordered, -> { order(created_at: :desc) }
      scope :current, -> { where(terminated_at: nil) }
      scope :historical, -> { where.not(terminated_at: nil) }

      def self.policy_class
        BasePolicy
      end

      def self.attributes_to_ignore_when_comparing
        [:id, :created_at, :updated_at, :created_by_id, :updated_by_id]
      end

      def identical_to?(other)
        attrs_to_ignore = self.class.attributes_to_ignore_when_comparing.map(&:to_s)
        attributes.except(*attrs_to_ignore) == other.attributes.except(*attrs_to_ignore)
      end

      def terminate_by(user)
        self.terminated_at = Time.zone.now
        self.by = user
        save!
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/accesses/plan.rb
renalware-core-2.1.0 app/models/renalware/accesses/plan.rb
renalware-core-2.0.167 app/models/renalware/accesses/plan.rb
renalware-core-2.0.166 app/models/renalware/accesses/plan.rb
renalware-core-2.0.165 app/models/renalware/accesses/plan.rb
renalware-core-2.0.164 app/models/renalware/accesses/plan.rb
renalware-core-2.0.163 app/models/renalware/accesses/plan.rb
renalware-core-2.0.162 app/models/renalware/accesses/plan.rb
renalware-core-2.0.161 app/models/renalware/accesses/plan.rb
renalware-core-2.0.160 app/models/renalware/accesses/plan.rb
renalware-core-2.0.159 app/models/renalware/accesses/plan.rb
renalware-core-2.0.158 app/models/renalware/accesses/plan.rb
renalware-core-2.0.157 app/models/renalware/accesses/plan.rb
renalware-core-2.0.156 app/models/renalware/accesses/plan.rb
renalware-core-2.0.155 app/models/renalware/accesses/plan.rb