module Shared::Legacy::Service::StudentLogsScoped
  private
    def opportunity
      @opportunity ||= current_school.service_opportunities
        .find_by(id: params[:opportunity_id])
    end

    def set_associations
      {}.tap do |prop|
        prop[:author] = current_user
        prop[:opportunity] = opportunity if opportunity
        prop[:student] = student if student
      end
    end

    def log_params
      params.permit(:hours, :notes, :datetime).merge(set_associations)
    end

    def log_props(log)
      {
        id: log.id,
        student_id: log.student_id,
        first_name: log.student.first_name,
        last_name: log.student.last_name,
        full_name: log.student.full_name,
        full_name_reverse: log.student.full_name(:reverse),
        grade: log.student.grade,
        service_log_id: log.id,
        opportunity_id: log.opportunity_id,
        opportunity_name: log.decorate.opportunity_name,
        datetime: log.datetime,
        hours: log.hours,
        notes: log.notes,
        status: log.status,
        created_at: log.created_at,
        school_year_id: log.school_year_id
      }
    end
end
