<?php

namespace App\Domains\Forms\Resources;

use App\Domains\Catalog\Models\AttributeOption;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Collection;

class MerchandiseFormResource extends JsonResource
{
    /** @return array<string, mixed> */
    public function toArray(Request $request): array
    {
        return [
            'colors' => $this->options($this->resource['colors']),
            'sizes' => $this->options($this->resource['sizes']),
        ];
    }

    /**
     * @param  Collection<int, AttributeOption>  $options
     * @return Collection<int, array{value: string, label: string}>
     */
    private function options(Collection $options): Collection
    {
        return $options->map(fn (AttributeOption $option): array => [
            'value' => $option->value,
            'label' => $option->label,
        ])->values();
    }
}
