get(['id', 'name', 'slug']); $products = Product::where('is_active', true) ->with([ 'categories', 'variants' => fn ($query) => $query ->with('media') ->orderBy('created_at'), ]) ->get(); $products = $products->map(function ($product) { $product->variants->each(function ($variant) { $variant->setAttribute('images', MediaPresenter::collection($variant, 'images')); $variant->setAttribute( 'prices', collect($this->cuttingResultPriceResolver->latestPricesForVariant($variant->id)) ->map(fn ($price) => [ 'type' => $price->price_type->value, 'type_label' => $price->price_type->label(), 'price' => (int) $price->price, 'price_formatted' => $price->price_formatted, ]) ->values() ->all(), ); }); return $product; }); $configuration = SystemConfiguration::instance(); $logo = MediaPresenter::first($configuration, 'logo'); $logoUrl = $logo['url'] ?? null; $settings = app(SystemSettings::class); $socialSettings = app(SocialMediaSettings::class); return Inertia::render('Home', [ 'categories' => $categories, 'products' => $products, 'appName' => $settings->app_name ?? 'DST Collection', 'aboutApp' => $settings->about_app ?? '', 'contactEmail' => $settings->email ?? '', 'contactPhone' => $settings->phone ?? '', 'contactAddress' => $settings->address ?? '', 'logoUrl' => $logoUrl, 'instagramUrl' => $socialSettings->instagram_url ?? null, 'facebookUrl' => $socialSettings->facebook_url ?? null, 'tiktokUrl' => $socialSettings->tiktok_url ?? null, ]); } }