class Reporting::Service::FamilyRecordsJob < Reporting::Job
  include DateRangeHelper

  def process
    create_tmp_file
    create_pdf
    families.each do |family|
      next if logs[family.id].blank?

      file = Pdf::Service::FamilyRecordService.call(family, logs[family.id])
      @pdf << CombinePDF.load(file.path)
    end

    save_pdf
    @filename = "service_family_records_#{timestamp}.pdf"
    save_to_user
    send_report
  end

  private
    def families
      @school.families.by_ids(@params['family_ids'])
    end

    def logs
      @school.service_family_logs
        .by_date_range(datetime_range(@params['dates']))
        .by_family_ids(families.pluck(:id))
        .decorate
        .group_by(&:family_id)
    end
end
