<?php

namespace App\Http\Resources;

use App\Developer;
use Illuminate\Http\Resources\Json\ResourceCollection;

class DeveloperCollection extends ResourceCollection
{
    /**
     * @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 collection into an array.
     *
     * @param  \Illuminate\Http\Request $request
     * @return array
     */
    public function toArray($request)
    {
        $result = [];
        /** @var Developer $developer */
        foreach ($this->collection as $key => $developer) {
            $result[$key] = [
                'id' => $developer->id,
                'name' => $developer->name ? $developer->name : "",
                'slug' => $developer->code ? $developer->code : "",
                'link' => $developer->site_link ? $developer->site_link : "",
                'image' => new DeveloperImage($developer),
                'facebook' => $developer->facebook ? $developer->facebook : null,
                'being_built' => $developer->being_built,
                'being_built_text' => $developer->being_built_text,
                'build' => $developer->build,
                'build_text' => $developer->build_text,
                'site_link' => $developer->site_link
            ];

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

            if (isset($this->parameters['residential_complex'])) {
                $residential_complexes = \App\ResidentialComplex::query()
                    ->whereNull('deleted_at')
                    ->where('enabled', 1)
                    ->where('developer_id', $developer->id)
                    ->limit(3)
                    ->get();
                $result[$key]['residential_complexes'] =
                    new DeveloperResidentialComplexCollection($residential_complexes, ['show_first_image' => true]);
            }
        }

        return $result;
    }
}
