Files
puzzle-scoreboard/app/models/offline.rb
sto 5348574ea4
Some checks failed
CI / scan_ruby (push) Failing after 18s
CI / scan_js (push) Successful in 13s
CI / lint (push) Successful in 17s
CI / test (push) Failing after 53s
Show offline contestants in dashboard
2025-11-05 17:18:47 +01:00

51 lines
1.3 KiB
Ruby

# == Schema Information
#
# Table name: offlines
#
# id :integer not null, primary key
# completed :boolean
# end_time :datetime
# name :string not null
# start_time :datetime not null
# created_at :datetime not null
# updated_at :datetime not null
# contest_id :integer not null
# contestant_id :integer
#
# Indexes
#
# index_offlines_on_contest_id (contest_id)
# index_offlines_on_contestant_id (contestant_id)
#
# Foreign Keys
#
# contest_id (contest_id => contests.id)
# contestant_id (contestant_id => contestants.id)
#
class Offline < ApplicationRecord
belongs_to :contest
belongs_to :contestant, optional: true
has_many_attached :images
generates_token_for :token
validates :name, presence: true
validates :start_time, presence: true
validate :end_image_is_present
validate :start_image_is_present
def end_image_is_present
if self.completed && self.images.length < 2
errors.add(:end_image, I18n.t("activerecord.errors.models.offline.attributes.end_image.blank"))
end
end
def start_image_is_present
if !self.images.attached?
errors.add(:images, I18n.t("activerecord.errors.models.offline.attributes.start_image.blank"))
end
end
end