# frozen_string_literal: true

require 'abstract_controller'
require 'action_controller'
require 'action_view'
require 'active_record'

# require any helpers
require './app/helpers/application_helper'

# Retrieve all availabilities and their related objects and write the result as a table in an excel file
class AvailabilitiesExportService
  # export all availabilities
  def export_index(export)
    @availabilities = Availability.all.includes(:machines, :trainings, :spaces, :event, :slots)

    content = ApplicationController.render(
      template: 'exports/availabilities_index',
      locals: { availabilities: @availabilities },
      handlers: [:axlsx],
      formats: [:xlsx]
    )
    # write content to file
    File.binwrite(export.file, content)
  end
end