class Admission::Applicants::FamilyGeneralService < ApplicationService
  def initialize(applicant, application)
    @applicant = applicant
    @school = applicant.school
    @family = applicant.family
    @application = application
  end

  def props
    profile_fields.map { |f| { name: f.field, required: f.required } }
  end

  def revision
    family_revision
  end

  def available?
    profile_fields.any?
  end

  private
    def profile_fields
      @profile_fields ||= @school.admission_family_revision_fields
        .by_display_fields
    end

    def family_revision
      @family_revision ||= @family.admission_family_revisions
        .find_or_initialize_by(school_year: @application.school_year)
    end
end
