<?php

namespace App\Http\Resources\Results;

use App\Http\Resources\DocumentResource;
use App\Http\Resources\Filters\BuildingTypeResource;
use App\Http\Resources\ImageResource;

class ResultDetailResource extends ResultResource
{
    /**
     * Transform the resource into an array.
     *
     * @param \Illuminate\Http\Request $request
     * @return array
     */

    public function toArray($request)
    {
        $baseData = parent::toArray($request);

        return array_merge($baseData, [
            'images' => ImageResource::collection($this->images),
            'content' => $this->content,
            'juryRecommendation' => $this->jury_recommendation,
            'exhibition' => $this->exhibition,
            'winners' => WinnerResource::collection($this->winners),
            'otherDates' => OtherDateResource::collection($this->otherDates),
            'participantCount' => $this->participant_count,
            'coordination' => CoordinationGroupResource::collection($this->coordinationGroups),
            'juryInformation' => $this->jury_information,
            'juryGroups' => JuryGroupResource::collection($this->juryGroups),
            'pdfDocument' => new DocumentResource($this->pdfDocument),
            'waMagazin' => $this->wa_magazin,
            'targetGroups' => TargetGroupResource::collection($this->targetGroups),
            'buildingTypes' => BuildingTypeResource::collection($this->buildingTypes),
            'trackedResult' => $this->competition->trackedResult ? new TrackedResultResource($this->competition->trackedResult) : null,
        ]);
    }
}
