<?php

namespace App\Http\Resources;

use App\RoomCount;
use App\RoomType;
use Illuminate\Http\Resources\Json\JsonResource;

class ResidentialComplexPriceStatistic 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)
    {
        $result = [];


        $result['lowest_price'] = $this->lowest_price_at_residential_complex ?
            $this->lowest_price_at_residential_complex : 0;

        foreach ($this->parameters['roomCount'] as $room) {
            $result['rooms'][] = [
                'key' => $room->count,
                'min_space' => $this->{$room->count . '_min_space'},
                'min_price' => $this->{$room->count . '_min_price'},
            ];
        }

        foreach ($this->parameters['roomType'] as $roomType) {
            $result['room_types'][] = [
                'key' => $roomType->code,
                'min_space' => $this->{$roomType->code . '_min_space'},
                'min_price' => $this->{$roomType->code . '_min_price'}
            ];
        }

        return $result;
    }
}
