<?php

namespace App\Http\Resources;

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

class DeveloperResidentialComplexCollection 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 ResidentialComplex $residentialComplex */
        foreach ($this->collection as $key => $residentialComplex) {
            $result[$key] = [
                'id' => $residentialComplex->id,
                'name' => $residentialComplex->name,
                'slug' => $residentialComplex->code,
                'room_count' => !empty($residentialComplex->room_count) ? $residentialComplex->room_count : 0,
//                'images' => new ResidentialComplexImagesCollection($residentialComplex->getMedia('landscape_photo')),
            ];

            if (isset($this->parameters['show_first_image'])) {
                $firstImage = $residentialComplex->getMedia('landscape_photo')->get(0);
                $imageCollection = collect([$firstImage]);
                $result[$key]['images'] = $firstImage ? new ResidentialComplexImagesCollection($imageCollection) : [];
            }

//            if (isset($this->parameters['location'])) {
//                $result[$key]['latitude'] = $residentialComplex->location_latitude ?
//                    $residentialComplex->location_latitude : 0;
//                $result[$key]['longitude'] = $residentialComplex->location_longitude ?
//                    $residentialComplex->location_longitude : 0;
//            }
        }

        return $result;
    }
}
