37 lines
1.2 KiB
PHP
37 lines
1.2 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,
|
|
'isFavorite' => $this->resource->isFavorite,
|
|
];
|
|
}
|
|
}
|