*/ public function toArray(Request $request): array { return [ 'uuid' => $this->uuid, 'name' => $this->name, 'slug' => $this->slug, 'short_description' => $this->short_description, 'description' => $this->description, 'thumbnail' => $this->thumbnail ? asset($this->thumbnail) : null, 'product_type' => $this->product_type, 'specs' => [ 'cpu' => $this->cpu, 'ram' => $this->ram, 'disk' => $this->disk, 'bandwidth' => $this->bandwidth, 'gpu' => $this->gpu ], 'stock' => $this->stock, 'price' => $this->price, 'price_sale' => $this->price_sale, 'pricing' => $this->pricings->mapWithKeys(function ($pricing) { return [$pricing->billing_cycle => $pricing->price]; }), 'pricing_sale' => $this->pricings->mapWithKeys(function ($pricing) { return [$pricing->billing_cycle => $pricing->price_sale]; }), 'group' => $this->category->name, 'os' => $this->osVersions->map(function ($os) { return [ 'group' => $os->osGroup->name ?? null, ]; })->unique('group')->values(), ]; } }