<?php

namespace App\Http\Resources\Concerns;

use App\Models\ListingFeatureValue;

trait FormatsFeatureValues
{
    /**
     * Bir feature değerinin aktif dildeki etiketini döndürür.
     * select → string etiket, multiselect → etiket dizisi, diğerleri → ham değer.
     * Saklanan değerler kanonik kalır; bu yalnızca görünüm içindir.
     */
    protected function localizedValueLabel(ListingFeatureValue $featureValue)
    {
        $feature = $featureValue->feature;
        $value = $featureValue->value;

        if (! $feature || ! in_array($feature->input_type, ['select', 'multiselect', 'text'], true)) {
            return $value;
        }

        $labels = $feature->localizedOptionLabels();

        if (is_array($value)) {
            return array_map(fn ($v) => $labels[$v] ?? $v, $value);
        }

        return $labels[$value] ?? $value;
    }
}
