<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;

class InviteController extends Controller
{
    /**
     * 处理邀请链接跳转
     *
     * @param  int  $inviter_id  邀请人ID
     */
    public function handle(Request $request, int $inviter_id)
    {
        // 查找邀请人是否存在
        $inviter = User::find($inviter_id);

        if ($inviter) {
            // 将邀请人ID记录到 Cookie 中，有效期7天（7 * 24 * 60 = 10080 分钟）
            // 确保Cookie仅通过 HTTP 访问且作用于全站
            Cookie::queue('inviter_id', $inviter->id, 10080);
        }

        // 重定向回聊天室首页进行注册/登录
        return redirect()->route('home');
    }

    /**
     * 独立展示邀请全站排行榜页面
     */
    public function leaderboard()
    {
        // 邀请达人榜 (Top 50)
        $topInviters = User::withCount('invitees')
            ->with(['activePosition.position.department'])
            ->having('invitees_count', '>', 0)
            ->orderByDesc('invitees_count')
            ->limit(50)
            ->get();

        return view('invite.leaderboard', compact('topInviters'));
    }
}
