# 执行示例  bundle exec rake migrate_course_student_work:homework args=2933
desc "创建课堂学生的作业数据"

namespace :migrate_course_student_work do
  if ENV['args']
    course_id = ENV['args'].split(",")[0] # 对应课堂的id
  end

  task homework: :environment do
    course = Course.find_by(id: course_id)
    if course.present?
      student_ids = course.students.pluck(:user_id)

      # 如果之前存在相关作品，则更新is_delete字段
      student_works = StudentWork.joins(:homework_common).where(user_id: student_ids, homework_commons: {course_id: course.id})
      student_works.update_all(is_delete: 0)

      attrs = %i[homework_common_id user_id created_at updated_at]

      StudentWork.bulk_insert(*attrs) do |worker|
        student_ids.each do |user_id|
          same_attrs = {user_id: user_id}
          course.homework_commons.where(homework_type: %i[normal group practice]).each do |homework|
            next if StudentWork.where(user_id: user_id, homework_common_id: homework.id).any?
            worker.add same_attrs.merge(homework_common_id: homework.id)
          end
        end
      end
    end
  end
end
