<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class Routes extends JsonResource
{
    public function __construct($resource)
    {
        $this->resource = $resource;
    }

    public function toArray($request)
    {
        if ($this->icon) {
            $icon = getImage($this->icon);
        } else {
            $icon = (object)[
                'url' => null,
                'alt' => null,
            ];
        }
        $out = [
            'id'          => (int)$this->id,
            'name'        => strip_tags($this->title, "<i>"),
            'description' => $this->description,
            'icon'        => $icon,
            'waypoints'   => new WaypointsCollection($this->waypoints),
            'walking_duration' => $this->timeTransform($this->walking_duration),
            'walking_distance' => $this->distanceTransform($this->walking_distance),
            'driving_duration' => $this->timeTransform($this->driving_duration),
            'driving_distance' => $this->distanceTransform($this->driving_distance),
            'transit_duration' => $this->timeTransform($this->transit_duration),
            'transit_distance' => $this->distanceTransform($this->transit_distance),
            'allow_transports' => $this->allow_transports,
            'is_circular'      => $this->circular_route,
            'order'            => $this->websites[0]->position,
            'route_type'       => !empty($this->route_type) ? trans('frontend.route_type_' . $this->route_type) : null
        ];


        return $out;
    }

    private function timeTransform($time)
    {
        $mins = $time / 60;
        $hours = floor($mins / 60);
        $mins = $mins % 60;
        return $hours . ':' . $mins;
    }

    private function distanceTransform($distance)
    {
        return round($distance / 1000, 1);
    }
}
