/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     AssignmentUpdate::all()->each(function ($update) {
         $update->created_at = $update->created_at_old;
         $update->updated_at = $update->updated_at_old;
         $update->save();
     });
 }
 private function findPreviousUpdate($assignmentId)
 {
     $previousAssignmentIdCached = Cache::get('previous_assignment_id_for_' . $assignmentId);
     if ($previousAssignmentIdCached !== null) {
         return $previousAssignmentIdCached;
     } else {
         $ascUpdates = AssignmentUpdate::where('assignment_id', $assignmentId)->orderBy('created_at', 'DESC')->get()->last();
         return $ascUpdates;
     }
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $updatesGroupByAssignment = AssignmentUpdate::all()->groupBy('assignment_id');
     $updatesGroupByAssignment->each(function ($group) {
         // dd($group);
         $orderedUpdates = $group->sortBy('created_at');
         while ($orderedUpdates->count() > 0) {
             $currentUpdate = $orderedUpdates->pop();
             $previousUpdate = $orderedUpdates->last();
             if ($previousUpdate) {
                 $currentUpdate->previous_assignment_id = $previousUpdate->id;
                 $currentUpdate->save();
             }
         }
     });
 }
 public function getUpdatesForStudent($studentId)
 {
     $assignmentsUpdateIds = User::find($studentId)->assignments->pluck('id');
     $updatesWithBooks = AssignmentUpdate::whereIn('assignment_id', $assignmentsUpdateIds)->orderBy('created_at', 'desc')->with(['assignment.book', 'assignment.response'])->get();
     return response(['user_id' => $studentId, 'updates' => $updatesWithBooks], 200);
 }