2018-05-07 16:47:29 -07:00
# frozen_string_literal: true
2021-02-20 09:57:27 -08:00
# == Schema Information
#
# Table name: registration_periods
#
# id :bigint not null, primary key
# end_date :date
# start_date :date
# created_at :datetime
# updated_at :datetime
# conference_id :integer
#
2017-09-05 22:23:34 +03:00
class RegistrationPeriod < ApplicationRecord
2016-02-21 23:38:17 +02:00
belongs_to :conference
2016-05-24 23:54:46 +05:30
has_paper_trail ignore : [ :updated_at ] , meta : { conference_id : :conference_id }
2014-08-18 14:33:02 +02:00
validates :start_date , :end_date , presence : true
2016-02-21 23:38:17 +02:00
validate :before_end_of_conference
validate :start_date_before_end_date
2014-08-18 14:33:02 +02:00
2016-02-21 23:38:17 +02:00
private
def before_end_of_conference
2017-04-06 23:19:58 -04:00
errors
2018-05-08 14:17:30 -07:00
. add ( :start_date , " can't be after the conference end date ( #{ conference . end_date } ) " ) if conference & . end_date && start_date && ( start_date > conference . end_date )
2016-02-21 23:38:17 +02:00
2017-04-06 23:19:58 -04:00
errors
2018-05-08 14:17:30 -07:00
. add ( :end_date , " can't be after the conference end date ( #{ conference . end_date } ) " ) if conference & . end_date && end_date && ( end_date > conference . end_date )
2016-02-21 23:38:17 +02:00
end
def start_date_before_end_date
2017-04-06 23:19:58 -04:00
errors
. add ( :start_date , " can't be after the end date " ) if start_date && end_date && start_date > end_date
2016-02-21 23:38:17 +02:00
end
2014-08-18 14:33:02 +02:00
end