<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;
use App\Http\Resources\ModelsCollection;
use App\Http\Resources\AuthorsCollection;
use App\Http\Resources\SimpleLinks;
use App\Models\GenericBackoffice\WebsiteObject;
class ThreeDModels extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */

    public function __construct($resource)
    {
        $this->resource = $resource;
    }

    public function toArray($request)
    {
        $reference = $this->reference;
        if ($reference) {
            if (array_key_exists('objectId', $reference)) {
                $websiteObject = WebsiteObject::find($reference['objectId']);
                if ($websiteObject) {
                    $reference['url'] = $websiteObject->uri;
                }
            }
        }
        unset($reference['objectId']);
        
        $out = [
            'id'          => (int)$this->id,
            'title'       => $this->block_title,
            'authors'     => new AuthorsCollection($this->authors),
            'models'      => new ModelsCollection($this->models),
            'links'       => new SimpleLinksCollection($this->links),
            'reference'  => $reference,
        ];

        return $out;
    }
}
