chore: commit remaining workspace changes

This commit is contained in:
2026-05-08 21:51:29 +02:00
parent 8d108b8a76
commit ff96ef796e
97 changed files with 18020 additions and 2196 deletions

View File

@@ -0,0 +1,52 @@
<?php
declare(strict_types=1);
namespace App\Services\Academy;
use App\Models\AcademyCourse;
use App\Models\AcademyCourseLesson;
final class AcademyCourseLessonOrderingService
{
public function syncCourse(AcademyCourse|int $course): void
{
$courseId = $course instanceof AcademyCourse ? (int) $course->id : (int) $course;
if ($courseId < 1) {
return;
}
AcademyCourseLesson::query()
->with('lesson:id,lesson_number,course_order')
->where('course_id', $courseId)
->orderBy('order_num')
->orderBy('id')
->get()
->values()
->each(function (AcademyCourseLesson $courseLesson, int $index): void {
$pivotOrder = $index;
$lessonOrder = $index + 1;
if ((int) ($courseLesson->order_num ?? 0) !== $pivotOrder) {
$courseLesson->forceFill([
'order_num' => $pivotOrder,
])->save();
}
if ($courseLesson->lesson === null) {
return;
}
if ((int) ($courseLesson->lesson->course_order ?? 0) === $lessonOrder
&& (int) ($courseLesson->lesson->lesson_number ?? 0) === $lessonOrder) {
return;
}
$courseLesson->lesson->forceFill([
'course_order' => $lessonOrder,
'lesson_number' => $lessonOrder,
])->save();
});
}
}