ekart/backend/app/Http/Controllers/ProductController.php
kusowl 920666c201 feature: add index endpoint for products
- implement DTO for product and modify productImageDTO.
- add products resources and collection.
2026-02-27 18:16:02 +05:30

32 lines
849 B
PHP

<?php
namespace App\Http\Controllers;
use App\Data\ProductDTO;
use App\Http\Requests\CreateProductRequest;
use App\Http\Resources\ProductResource;
use App\Models\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function index()
{
$paginator = Product::query()->with(['category:id,name,slug', 'images:id,path,product_id'])->paginate();
$paginatedDtos = $paginator->through(fn ($product) => ProductDTO::fromModel($product));
return ProductResource::collection($paginatedDtos);
}
public function store(CreateProductRequest $request)
{
return Product::create($request->validated());
}
public function show(Product $product) {}
public function update(Request $request, Product $product) {}
public function destroy(Product $product) {}
}