<?php

namespace App\Http\Resources\API;

use App\Models\Asset;
use App\Models\RequirementGroup;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;

class AssetRequirementGroupTreeResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @return array<string, mixed>
     */
    public function toArray(Request $request): array
    {
        $tree = $this->buildTree($this->requirementGroups);
        //return parent::toArray($request);
        return[
            'id'=>$this->id,
            'name'=>$this->name,
            'parent_id' => $this->parent_id,
            //'children' =>$this->parent_id == 0 ? RequirementGroupResource::collection($this->children) : [],
            'parent_asset' => new AssetParentResource($this->parent),
            'requirement_group' => $tree,
        ];
    }

    // 创建树状结构的函数
    function buildTree($items, $parentId = 0) {
        $tree = [];
        foreach ($items as $item) {
            if ($item['parent_id'] == $parentId) {
                $children = $this->buildTree($items, $item['id']);
                if ($children) {
                    $item['children'] = $children;
                }
                $tree[] = $item;
            }
        }
        return $tree;
    }
}