class Admin::Legacy::Family::Families::ContactsController < Admin::Controller
  def index
    render_success :ok, json: {
      primary_contacts: contacts.decorate.map { |c| props(c) },
      secondary_contacts: secondary_contacts.decorate.map { |c| props(c) }
    }
  end

  private
    def family
      @family ||= current_school.families.find_by(id: params[:family_id])
    end

    def family_ids
      @family_ids ||= family.all_students
        .pluck(:family_id, :family_id_2)
        .flatten
        .uniq
        .delete_if(&:zero?)
        .delete_if { |id| id == family.id }
    end

    def contacts
      family.contact_families.includes(:contact)
    end

    def secondary_contacts
      current_school.contact_families.where(family_id: family_ids).includes(:contact)
    end

    def props(contact)
      {
        id: contact.id,
        contact_id: contact.contact_id,
        family_id: contact.family_id,
        relationship_id: contact.relationship_id,
        relationship_name: contact.relationship_name,
        full_name: contact.full_name,
        home_phone: contact.home_phone,
        work_phone: contact.work_phone,
        cell_phone: contact.cell_phone,
        primary: contact.primary,
        emergency: contact.emergency,
        pickup: contact.pickup
      }
    end
end
