ekart/backend/app/Http/Resources/ProductResource.php

36 lines
1.1 KiB
PHP

<?php
namespace App\Http\Resources;
use App\Data\ProductDTO;
use App\Data\ProductImageDTO;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;
/**
* @property ProductDTO $resource
*/
class ProductResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->resource->id,
'title' => $this->resource->title,
'slug' => $this->resource->slug,
'description' => $this->resource->description,
'actualPrice' => $this->resource->actualPrice,
'listPrice' => $this->resource->listPrice,
'category' => [
'name' => $this->resource->category->name,
'slug' => $this->resource->category->slug,
],
'productImages' => array_map(function (ProductImageDTO $productImage) {
return Storage::disk('public')->url($productImage->path);
}, $this->resource->productImages),
'updatedAt' => $this->resource->updatedAt,
];
}
}