<?php

namespace App\Http\Resources\Turistico;

use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;

class RestauranteResource extends JsonResource
{
    public function toArray(Request $request): array
    {
        return [
            'id' => $this->id,
            'nome' => $this->nome,
            'descricao' => $this->descricao,
            'tipo_id' => $this->tipo_id,
            'tipo' => $this->whenLoaded('tipo', fn () => [
                'id' => $this->tipo->id,
                'nome' => $this->tipo->nome,
                'slug' => $this->tipo->slug,
                'icone' => $this->tipo->icone,
            ]),
            'endereco' => $this->endereco,
            'cidade' => $this->cidade,
            'estado' => $this->estado,
            'latitude' => $this->latitude,
            'longitude' => $this->longitude,
            'horario_funcionamento' => $this->horario_funcionamento,
            'status' => $this->status,
            'avaliacao_media' => $this->avaliacoes_avg_nota
                ? round((float) $this->avaliacoes_avg_nota, 1)
                : null,
            'total_avaliacoes' => $this->avaliacoes_count ?? 0,
            'imagens' => ImagemResource::collection($this->whenLoaded('imagens')),
            'distancia_km' => isset($this->distancia_km)
                ? round((float) $this->distancia_km, 2)
                : null,
            'criado_em' => $this->created_at?->toIso8601String(),
        ];
    }
}
