class Admin::Legacy::Facility::PlannersController < Admin::Legacy::Facility::Controller
  def index
    data = events.order(all_day: :desc, date_time: :asc, length: :desc)
    render_success :ok, json: data.map { |d| event_props(d) }
  end

  private
    def events
      current_school.events
        .includes(room: :building)
        .by_rooms(params[:room_ids])
        .by_date(params[:date])
    end

    def event_props(event)
      {}.tap do |prop|
        prop[:id] = event.id
        prop[:name] = event.name
        prop[:start] = event.decorate.start_time
        prop[:end] = event.decorate.end_time unless event.all_day?
        prop[:all_day] = event.all_day?
        prop[:category] = event.decorate.room_name
        prop[:building] = event.decorate.building_name
        prop[:room_id] = event.room_id
        prop[:start_time_label] = event.decorate.start_time_label
        prop[:end_time_label] = event.decorate.end_time_label
        prop[:length] = event.length
        prop[:internal] = event.internal?
        prop[:location] = event.location
        prop[:room] = if event.room.present?
          {
            name: event.room&.name,
            number: event.room&.number,
            building: event.building&.name
          }
        end
      end
    end
end
