class FamilyAdditionalGroup < Base::FamilyAdditionalGroup
  belongs_to :school

  has_many :family_additional_fields,
    inverse_of: :family_additional_group,
    primary_key: :FSGID,
    foreign_key: :FSGID

  scope :ordered, -> { order(:sequence) }

  scope :by_admissions, ->(flag) do
    joins(:family_additional_fields).where('FamilyStatistics.Admissions = 1') if flag
  end

  scope :by_admission_fields, ->(flag=true) do
    joins(:family_additional_fields).merge(FamilyAdditionalField.join_application_fields(flag))
  end

  scope :with_default_group, -> do
    group = FamilyAdditionalGroup.new(sequence: -1, name: 'General', id: 0)
    [group] + all.to_a
  end
end
