class School::Legacy::Family::Additional::GroupsController < ApplicationController
  def index
    data = active_default_group? ? groups_with_default : groups
    render_success :ok, json: data.map { |g| group_props(g) }
  end

  private
    def groups
      current_school.family_additional_groups
        .by_admissions(params[:admissions]&.to_bool)
        .ordered
        .distinct
    end

    def active_default_group?
      current_school.family_additional_fields
        .by_admission(params[:admissions]&.to_bool)
        .where(family_additional_group_id: 0)
        .exists?
    end

    def groups_with_default
      [groups.build(id: 0, name: 'General - Ungrouped Additional Fields')] + groups.to_a
    end

    def group_props(group)
      {
        id: group.id,
        name: group.name,
        description: group.description
      }
    end
end
