<?php

namespace App\Http\Resources\ResidentialComplex;

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

class ResidentialComplexSecretBuyerRating 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)
    {
        /** @var \App\ResidentialComplex $residentialComplex */
        $residentialComplex = $this;
        /** @var \App\SecretBuyerRating $secretBuyerRating */
        $secretBuyerRating = $residentialComplex->secretBuyerRating()->whereNull('deleted_at')
            ->where('enabled', 1)->first();

        $result = [
            'avg' => isset($this->parameters['sbr_average']) && $secretBuyerRating ?
                number_format($this->parameters['sbr_average'], 1) : 0,
            'position' => isset($this->parameters['sbr_position']) && $secretBuyerRating ?
                number_format($this->parameters['sbr_position'], 1) : 0,
            'transport_hub' => isset($this->parameters['sbr_transport_hub']) && $secretBuyerRating ?
                number_format($this->parameters['sbr_transport_hub'], 1) : 0,
            'planning' => isset($this->parameters['sbr_planning']) && $secretBuyerRating ?
                number_format($this->parameters['sbr_planning'], 1) : 0,
            'quality' => isset($this->parameters['sbr_quality']) && $secretBuyerRating ?
                number_format($this->parameters['sbr_quality'], 1) : 0,
            'infrastructure' => isset($this->parameters['sbr_infrastructure']) && $secretBuyerRating?
                number_format($this->parameters['sbr_infrastructure'], 1) : 0,
            'youTube' => $secretBuyerRating ? $secretBuyerRating->youtube_link : "",
            'image' => [
                'default' => isset($secretBuyerRating) &&  $secretBuyerRating ? asset(env('UPLOAD_PATH') .
                    '/' . ImageSize::SECRET_BUYER . '/' . $secretBuyerRating->image) : "",
                'webp' => isset($secretBuyerRating) &&  $secretBuyerRating ? asset(env('UPLOAD_PATH') .
                    '/' . ImageSize::SECRET_BUYER_WEBP . '/' . $secretBuyerRating->image . '.webp') : ""
            ],
            'description' => $secretBuyerRating ? $secretBuyerRating->description : ""
        ];

        return $result;
    }
}
