<?php

declare(strict_types=1);

namespace Plugins\Neatstudio\LinkTracker\Http;

use Plugins\Neatstudio\LinkTracker\Models\Redirect;

class GoController
{
    /**
     * 外链中转跳转：计数 + 302。停用的链接返回 410（可作二次拦截）。
     */
    public function show(string $hash)
    {
        $redirect = Redirect::query()->where('hash', $hash)->firstOrFail();

        if (! $redirect->isActive()) {
            abort(410);
        }

        $redirect->hit();

        return redirect()->away($redirect->target_url, 302);
    }
}
