<?php

namespace App\Http\Resources;

use App\Helpers\ImageSize;
use Illuminate\Http\Resources\Json\JsonResource;

class Developer extends JsonResource
{
    /**
     * @var array
     */
    private $parameters;

    /**
     * Create a new resource instance.
     *
     * @param  mixed $resource
     * @param array $parameters
     */
    public function __construct($resource, $parameters = null)
    {
        parent::__construct($resource);
        $this->resource = $resource;

        $this->parameters = is_array($parameters) ? $parameters : [];
    }

    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request $request
     * @return array
     */
    public function toArray($request)
    {
        $developer = $this;
        $result = [
            'id' => $developer->id,
            'name' => $developer->name ? $developer->name : "",
            'slug' => $developer->code ? $developer->code : "",
            'link' => $developer->site_link ? $developer->site_link : "",
            'logotype' => new DeveloperImage($developer),
            'logotype_color' => $developer->logotype_color ? $developer->logotype_color : "",
            'banner' => [
                'default' => $developer->banner ? asset(env('UPLOAD_PATH') .
                    '/' . ImageSize::DEVELOPER_BANNER . '/' . $developer->banner) : "",
                'webp' => $developer->banner ? asset(env('UPLOAD_PATH').'/' .
                    ImageSize::DEVELOPER_BANNER_WEBP . '/' .$developer->banner . '.webp') : ""
            ],
            'facebook' => $developer->facebook ? $developer->facebook : null,
            'description' => $developer->description,
            'birthday' => $developer->birthday,
            'being_built' => $developer->being_built,
            'being_built_text' => $developer->being_built_text,
            'build' => $developer->build,
            'build_text' => $developer->build_text,
            'phone' => $developer->phone
        ];

//        if (isset($this->parameters['statistic'])) {
//            $result['build'] = $developer->build;
//            $result['room_count'] = $developer->room_count;
//            $result['being_built'] = $developer->being_built;
//        }

//        if (isset($this->parameters['residential_complexes_location'])) {
//            $residential_complexes = \App\ResidentialComplex::
//            query()
//                ->where('developer_id', $developer->id)
//                ->where('enabled', 1)
//                ->get();
//            $result['residential_complexes'] =
//                new DeveloperResidentialComplexCollection($residential_complexes, ['location' => true]);
//        }

        return $result;
    }
}
