class Pdf::Nursing::StudentLogService < Pdf::NewApplicationService
  include DateRangeHelper

  def initialize(student, params)
    @student = student
    @school = student.school
    @dates = params['dates']
  end

  private
    def header
      content = ActionController::Base.new.render_to_string(
        partial: 'pdf/headers/school_info.html.haml',
        locals: {
          school: @school,
          side_content_partial: 'pdf/nursing/student_log_header',
          side_content: formated_dates
        }
      )
      { content: content, spacing: 25 }
    end

    def body
      ActionController::Base.new.render_to_string(
        partial: 'pdf/nursing/student_log.html.haml',
        locals: { student: @student.decorate, logs: logs }
      )
    end

    def logs
      @student.nursing_logs
        .includes(:complaint)
        .with_date_range(datetime_range(@dates))
        .map(&:decorate)
    end

    def formated_dates
      dates = @dates.split(',')
      { start: dates.first.to_date, end: dates.last.to_date }
    end
end
