Sha256: 0d1b953536e6b0878a99ca9c0ca92d08b59241fe8a9c49d3562e53b4f0081fec

Contents?: true

Size: 1.23 KB

Versions: 28

Compression:

Stored size: 1.23 KB

Contents

require_dependency "renalware/accesses"

module Renalware
  module Accesses
    class Profile < ApplicationRecord
      include Accountable
      extend Enumerize

      belongs_to :patient, touch: true
      belongs_to :type, class_name: "Type"

      has_paper_trail class_name: "Renalware::Accesses::Version"

      scope :ordered, -> { order(formed_on: :desc) }
      scope :current, -> {
        where(<<-SQL.squish, date: Time.zone.today)
          started_on <= :date AND
          (terminated_on IS NULL OR terminated_on > :date)
        SQL
      }
      scope :past_and_future, -> {
        where(<<-SQL.squish, date: Time.zone.today)
          (started_on > :date OR started_on IS NULL) OR
          (terminated_on IS NOT NULL AND terminated_on <= :date)
        SQL
      }

      validates :type, presence: true
      validates :side, presence: true
      validates :formed_on, presence: true
      validates :formed_on, timeliness: { type: :date, allow_blank: false }
      validates :started_on, timeliness: { type: :date, allow_blank: true }
      validates :terminated_on, timeliness: { type: :date, allow_blank: true }

      enumerize :side, in: %i(left right)

      def self.policy_class
        BasePolicy
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
renalware-core-2.0.8 app/models/renalware/accesses/profile.rb
renalware-core-2.0.7 app/models/renalware/accesses/profile.rb
renalware-core-2.0.5 app/models/renalware/accesses/profile.rb
renalware-core-2.0.4 app/models/renalware/accesses/profile.rb
renalware-core-2.0.3 app/models/renalware/accesses/profile.rb
renalware-core-2.0.2 app/models/renalware/accesses/profile.rb
renalware-core-2.0.1 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc13 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc11 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc10 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc9 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc8 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc7 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc6 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc5 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc4 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc3 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.rc1 app/models/renalware/accesses/profile.rb
renalware-core-2.0.0.pre.beta12 app/models/renalware/accesses/profile.rb