1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/services/availabilities/create_availabilities_service.rb

31 lines
1.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2019-11-18 17:29:51 +01:00
# Provides helper methods to create an Availability with multiple occurrences
class Availabilities::CreateAvailabilitiesService
2019-11-18 11:50:20 +01:00
def create(availability, occurrences = [])
availability.update_attributes(occurrence_id: availability.id)
occurrences.each do |o|
2019-11-18 11:50:20 +01:00
next if availability.start_at == o[:start_at] && availability.end_at == o[:end_at]
Availability.new(
start_at: o[:start_at],
end_at: o[:end_at],
available_type: availability.available_type,
is_recurrent: availability.is_recurrent,
period: availability.period,
nb_periods: availability.nb_periods,
end_date: availability.end_date,
occurrence_id: availability.occurrence_id,
machine_ids: availability.machine_ids,
training_ids: availability.training_ids,
space_ids: availability.space_ids,
tag_ids: availability.tag_ids,
nb_total_places: availability.nb_total_places,
slot_duration: availability.slot_duration,
plan_ids: availability.plan_ids
).save!
end
end
end