<?php

namespace App\Http\Controllers\Web\Settings;

use App\Http\Controllers\Controller;
use App\Models\AuditLog;
use Illuminate\Http\Request;

class AuditLogController extends Controller
{
    public function index(Request $request)
    {
        abort_unless(auth()->user()?->hasPermission('manage_settings'), 403);

        $companyId = auth()->user()?->company_id;
        $days = max(1, min(365, (int) $request->input('days', 30)));

        $logs = AuditLog::with('actor')
            ->when($companyId, fn ($q) => $q->where('company_id', $companyId))
            ->when($request->filled('action'), fn ($q) => $q->where('action', 'like', '%' . $request->action . '%'))
            ->where('created_at', '>=', now()->subDays($days))
            ->orderByDesc('created_at')
            ->paginate(30)
            ->withQueryString();

        return view('settings.audit', compact('logs', 'days'));
    }
}
