schedule explicit set levels

This commit is contained in:
Yisroel Baum 2026-08-11 22:57:15 +03:00
parent a64df64b76
commit 3cf1aff6a9
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
10 changed files with 156 additions and 38 deletions

View file

@ -34,7 +34,7 @@ class ScheduleController extends Controller
new CreateScheduleRequest(
user: $user,
setId: $input->integer('setId'),
elementKind: $input->string('elementKind'),
levelId: $input->integer('levelId'),
startDate: $input->string('startDate'),
targetDate: $input->string('targetDate'),
),

View file

@ -7,6 +7,7 @@ use App\Set\Set;
use App\Set\UseCases\GetSetLayout\ElementLayoutNode;
use App\Set\UseCases\GetSetLayout\GetSetLayout;
use App\Set\UseCases\GetSetLayout\GetSetLayoutRequest;
use App\Set\UseCases\GetSetLayout\SetLayoutLevel;
use App\Set\UseCases\ListSets\ListSets;
use Illuminate\Http\JsonResponse;
@ -49,6 +50,19 @@ class SetController extends Controller
'id' => $set->getId(),
'name' => $set->getName(),
],
'levels' => array_map(
function (SetLayoutLevel $layoutLevel): array {
$level = $layoutLevel->getLevel();
return [
'id' => $level->getId(),
'kind' => $level->getKind(),
'depth' => $level->getDepth(),
'elementCount' => $layoutLevel->getElementCount(),
];
},
$layout->getLevels(),
),
'elements' => array_map(
function (ElementLayoutNode $node): array {
return $this->elementPayload($node);
@ -63,6 +77,7 @@ class SetController extends Controller
* id: int,
* name: string,
* kind: string,
* levelId: int,
* children: list<mixed>
* }
*/
@ -74,6 +89,7 @@ class SetController extends Controller
'id' => $element->getId(),
'name' => $element->getName(),
'kind' => $element->getKind(),
'levelId' => $element->getLevel()->getId(),
'children' => array_map(
function (ElementLayoutNode $childNode): array {
return $this->elementPayload($childNode);