Sha256: 654b8f54352d1b6e71e549e32ac83f2b86d95318408d87e8a0853eda8508f0c8

Contents?: true

Size: 844 Bytes

Versions: 1

Compression:

Stored size: 844 Bytes

Contents

class Dorsale::CustomerVault::Event < ::Dorsale::ApplicationRecord
  self.table_name = :dorsale_customer_vault_events

  ACTIONS       = %w(create update comment)
  CONTACT_TYPES = %w(contact r1 r2)

  belongs_to :author,  class_name: User
  belongs_to :person,  class_name: Dorsale::CustomerVault::Person

  validates :person,       presence: true
  validates :date,         presence: true
  validates :text,         presence: true
  validates :action,       presence: true, inclusion: {in: proc {ACTIONS} }
  validates :contact_type, presence: true, inclusion: {in: proc {CONTACT_TYPES} }

  default_scope -> {
    all
      .order(created_at: :desc, id: :desc)
      .preload(:author, :person)
  }

  private

  def assign_default_values
    assign_default :date, Date.current
    assign_default :contact_type, CONTACT_TYPES.first
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dorsale-3.8.1 app/models/dorsale/customer_vault/event.rb