<?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 TrendingFeedController extends Controller
{
    public function __construct(
        private PostHashtagService $hashtagService,
        private SeoFactory $seoFactory,
    ) {}

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

        $seo = $this->seoFactory->simplePage(
            title: 'Trending Posts — ' . config('seo.site_name', 'Skinbase'),
            description: 'Discover the most popular and engaging posts on Skinbase right now.',
            canonical: url('/feed/trending'),
        );

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