class Admin::Communication::EmployeesController < Admin::Communication::Controller
  def index
    render_success :ok, json: employees.map { |e| employee_props(e) }
  end

  private
    def employees
      current_school.employees
        .includes(:primary_email_address)
        .joins(:primary_email_address)
        .is_current(params[:current]&.to_bool)
        .by_level(params[:level])
        .by_type(params[:type_id])
        .by_categories(params[:category_ids])
        .by_departments(params[:department_ids])
        .by_substitute(params[:substitute]&.to_bool)
    end

    def employee_props(employee)
      {
        id: employee.id,
        email: employee.decorate.primary_email_address_address,
        name: employee.full_name(:reverse),
        type: :employee
      }
    end
end
