2020-03-30 11:33:12 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# TrainingsAvailability is the relation table between a Training and an Availability.
|
|
|
|
# Is is used to schedule a training session, for members to be able to book it.
|
2020-03-25 10:16:47 +01:00
|
|
|
class TrainingsAvailability < ApplicationRecord
|
2016-03-23 18:39:41 +01:00
|
|
|
belongs_to :training
|
|
|
|
belongs_to :availability
|
|
|
|
after_destroy :cleanup_availability
|
|
|
|
|
|
|
|
# when the TrainingsAvailability is deleted (from Training destroy cascade), we delete the corresponding
|
|
|
|
# availability. We don't use 'dependent: destroy' as we need to prevent conflicts if the destroy came from
|
|
|
|
# the Availability destroy cascade.
|
|
|
|
def cleanup_availability
|
|
|
|
unless availability.destroying
|
|
|
|
availability.safe_destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|