<?php

namespace App\Http\Controllers\Admin;

/*
 * LeadController — просмотр заявок с веб-форм в административной панели.
 * Маршруты:
 *   GET  admin/leads         — список всех заявок (с фильтром по форме)
 *   GET  admin/leads/{lead}  — просмотр одной заявки (помечает как прочитанную)
 *   DELETE admin/leads/{lead} — удалить заявку
 */

use App\Http\Controllers\Controller;
use App\Models\Lead;
use App\Models\WebForm;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;

class LeadController extends Controller
{
    public function index(Request $request): View
    {
        $forms = WebForm::orderBy('title')->get();
        $formId = $request->query('form_id');

        $query = Lead::with('form')->latest();
        if ($formId) {
            $query->where('form_id', $formId);
        }

        $leads = $query->paginate(30)->withQueryString();

        return view('admin.leads.index', compact('leads', 'forms', 'formId'));
    }

    public function show(Lead $lead): View
    {
        $lead->markAsRead();

        return view('admin.leads.show', compact('lead'));
    }

    public function destroy(Lead $lead): RedirectResponse
    {
        $lead->delete();

        return redirect()->route('admin.leads.index')->with('success', 'Заявка удалена.');
    }
}
