File: /var/www/html/orbidirectory.com/app/Http/Controllers/DirectLeadsController.php
<?php
namespace App\Http\Controllers;
use App\Models\DirectLeads;
use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables;
class DirectLeadsController extends Controller
{
public function index(Request $request)
{
if ($request->ajax()) {
$leads = DirectLeads::select('id', 'name', 'phone_number', 'email', 'source')->orderBy('created_at', 'desc');
return DataTables::of($leads)
->addColumn('action', function ($row) {
return view('admin.direct_leads.action', compact('row'));
})
->rawColumns(['action'])
->make(true);
}
return view('admin.direct_leads.list');
}
public function show($id)
{
$direct_leads = DirectLeads::find($id);
return view('admin.direct_leads.show', compact('direct_leads'));
}
public function create()
{
return view('admin.direct_leads.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'phone_number' => 'required|string|max:20',
'email' => 'nullable|email|max:255',
'source' => 'required|in:Orbi Leads,Listing,Indivisual',
'vehicle_id' => 'nullable|exists:vehicles,id',
'transporter_id' => 'nullable|exists:transporters,id',
]);
$data = $request->all();
// Ensure 'transporter_id' is NULL if not provided
if (empty($data['transporter_id'])) {
$data['transporter_id'] = null;
}
DirectLeads::create($data);
return redirect()->route('direct_leads.index')->with('success', 'Lead created successfully.');
}
public function edit($id)
{
$direct_lead = DirectLeads::findOrFail($id);
return view('admin.direct_leads.edit', compact('direct_lead'));
}
public function update(Request $request, $id)
{
$direct_lead = DirectLeads::findOrFail($id);
$request->validate([
'name' => 'required|string|max:255',
'phone_number' => 'required|string|max:20',
'email' => 'nullable|email|max:255',
'source' => 'required|in:Orbi Leads,Listing,Indivisual',
]);
$direct_lead->update($request->all());
return redirect()->route('direct_leads.index')->with('success', 'Lead updated successfully.');
}
public function destroy($id)
{
DirectLeads::findOrFail($id)->delete();
return response()->json(['success' => true]);
}
}