<?php

namespace App\Http\Resources;

use App\Helpers\ImageSize;
use App\Http\Controllers\Traits\PriceFormatTrait;
use Illuminate\Http\Resources\Json\ResourceCollection;

class ResidentialComplexLocationCollection extends ResourceCollection
{
    use PriceFormatTrait;

    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        $this->getExchangeRate();

        $result = [];
        foreach ($this->collection as $key => $item) {
            /** @var \App\ResidentialComplex $residentialComplex */
            $residentialComplex = $item;
            $developer = $residentialComplex->developer;
            $firstImage = $residentialComplex->getMedia('landscape_photo')->get(0);
            $imageCollection = collect([$firstImage]);

            if (!empty($residentialComplex->min_price_per_square_meter)) {
                $result[$key] = [
                    'id' => $residentialComplex->id,
                    'slug' => $residentialComplex->code,
                    'complex_name' => $residentialComplex->name,
                    'min_price_per_square_meter' => !empty($residentialComplex->min_price_per_square_meter) ? $this
                        ->formatPrice((float) $residentialComplex->min_price_per_square_meter)  : '',
                    'developer' => [
                        'name' => $developer ? $developer->name : "",
                        'slug' => $developer ? $developer->code : "",
                        'logotype' => [
                            'default' => $developer && $developer->logotype_icon
                                ? asset(env('UPLOAD_PATH') .
                                    '/' . ImageSize::DEVELOPER_LOGO . '/' . $developer->logotype_icon) : "",
                            'webp' => $developer && $developer->logotype_icon ? asset(env('UPLOAD_PATH') . '/' .
                                ImageSize::DEVELOPER_LOGO_WEBP . '/' . $developer->logotype_icon . '.webp') : "",]
                    ]
                ];
                if ($firstImage) {
                    $result[$key]['images']['list'] = [
                        "default" => asset($firstImage->getUrl('list')),
                        "webp" => asset($firstImage->getUrl('list_webp')),
                    ];
                }

                $result[$key]['latitude'] = $residentialComplex->location_latitude ?
                    $residentialComplex->location_latitude : 0;
                $result[$key]['longitude'] = $residentialComplex->location_longitude ?
                    $residentialComplex->location_longitude : 0;
            }


        }

        return $result;
    }
}
