Visit.to_s()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
b 0
f 0
dl 0
loc 3
rs 10
1
# frozen_string_literal: true
2
3
# == Schema Information
4
#
5
# Table name: visits
6
#
7
#  id         :integer          not null, primary key
8
#  survey_id  :integer          not null
9
#  user_id    :integer          not null
10
#  name       :string
11
#  number     :integer          default(1), not null
12
#  visit_date :datetime         not null
13
#  created_at :datetime         not null
14
#  updated_at :datetime         not null
15
#
16
# Indexes
17
#
18
#  index_by_survey_user_number  (survey_id,user_id,number) UNIQUE
19
#  index_visits_on_survey_id    (survey_id)
20
#  index_visits_on_user_id      (user_id)
21
#
22
23
# Model to represent a user visit or an attempt in a self assessment
24
class Visit < ApplicationRecord
25
  audited
26
  belongs_to :user, inverse_of: :visits 
27
  belongs_to :survey, inverse_of: :visits 
28
  has_many :assessments, dependent: :destroy
29
30
  default_value_for :visit_date, Date.today
31
  
32
  validates :user, presence: true
33
  validates :survey, presence: true
34
  validates :visit_date, presence: true
35
  validates_uniqueness_of :number, scope: %i[survey user] 
36
  validates :number, presence: true, allow_blank: false
37
  validates :number, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: 10_000 }
38
  validates_datetime :visit_date 
39
40
  def to_s
41
    "#{user} #{survey} #{number}"
42
  end
43
end
44