<?php

namespace App\Http\Controllers\Web\Posts;

use App\Http\Controllers\Controller;
use App\Services\Posts\PostHashtagService;
use App\Support\Seo\SeoFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Inertia\Inertia;
use Inertia\Response;

class SearchFeedController extends Controller
{
    public function __construct(
        private PostHashtagService $hashtagService,
        private SeoFactory $seoFactory,
    ) {}

    /** GET /feed/search */
    public function index(Request $request): Response
    {
        $trendingHashtags = Cache::remember(
            'trending_hashtags',
            300,
            fn () => $this->hashtagService->trending(10, 24)
        );

        $seo = $this->seoFactory->simplePage(
            title: 'Search Posts — ' . config('seo.site_name', 'Skinbase'),
            description: 'Search posts, hashtags and creators on Skinbase.',
            canonical: url('/feed/search'),
        );

        return Inertia::render('Feed/SearchFeed', [
            'auth' => $request->user() ? [
                'user' => [
                    'id'       => $request->user()->id,
                    'username' => $request->user()->username,
                    'name'     => $request->user()->name,
                    'avatar'   => $request->user()->profile?->avatar_url ?? null,
                ],
            ] : null,
            'initialQuery'     => $request->query('q', ''),
            'trendingHashtags'  => $trendingHashtags,
            'seo'               => $seo,
        ]);
    }
}
