2018-05-07 16:47:29 -07:00
# frozen_string_literal: true
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