33 lines
1.2 KiB
PHP
33 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Catalog\Controllers;
|
|
|
|
use App\Domains\Bundle\Models\Bundle;
|
|
use App\Domains\Catalog\Models\FeaturedGroup;
|
|
use App\Domains\Catalog\Models\ProductVariant;
|
|
use App\Domains\Catalog\Resources\CatalogFeaturedGroupResource;
|
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Routing\Controller;
|
|
|
|
class CatalogController extends Controller
|
|
{
|
|
public function index(string $tenant): JsonResponse
|
|
{
|
|
$featuredGroups = FeaturedGroup::where('tenant_codigo', $tenant)
|
|
->with([
|
|
'groupItems' => fn ($query) => $query->orderBy('order'),
|
|
'groupItems.groupable' => function (MorphTo $morphTo): void {
|
|
$morphTo->morphWith([
|
|
ProductVariant::class => ['product', 'attachments', 'product.attachments'],
|
|
Bundle::class => ['items.variant.product', 'items.variant.attachments', 'items.variant.product.attachments'],
|
|
]);
|
|
},
|
|
])
|
|
->orderBy('group_order')
|
|
->get();
|
|
|
|
return response()->json(CatalogFeaturedGroupResource::collection($featuredGroups)->resolve());
|
|
}
|
|
}
|