<?php

namespace App\Http\Resources\Turistico;

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

class PontoTuristicoResource extends JsonResource
{
    public function toArray(Request $request): array
    {
        return [
            'id'                          => $this->id,
            'nome'                        => $this->nome,
            'descricao'                   => $this->descricao,
            'tipo'                        => $this->tipo,
            '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_checkins'              => $this->checkins_count ?? 0,
            'usuario_ja_fez_checkin_hoje' => $this->whenNotNull($this->usuario_ja_fez_checkin_hoje, false),
            '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(),
        ];
    }
}
