File: /home/xedaptot/be.naniguide.com/app/Http/Controllers/Refactor/Admin/MonitorCampaignController.php
<?php
namespace App\Http\Controllers\Refactor\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Model\Campaign;
use App\Model\Customer;
class MonitorCampaignController extends Controller
{
public function index(Request $request)
{
$stats = [
'total' => Campaign::count(),
'sending' => Campaign::where('status', 'sending')->count(),
];
return view('refactor.pages.admin.monitor.index', compact('stats'));
}
public function listing(Request $request)
{
$campaigns = Campaign::query()
->search($request->keyword)
->filter($request);
if ($request->status) {
$campaigns = $campaigns->byStatus($request->status);
}
if ($request->customer_uid) {
$customer = Customer::findByUid($request->customer_uid);
if ($customer) {
$campaigns = $campaigns->byCustomer($customer);
}
}
if ($request->sort_order) {
$campaigns = $campaigns->orderBy($request->sort_order, $request->sort_direction ?? 'desc');
} else {
$campaigns = $campaigns->orderBy('created_at', 'desc');
}
$items = $campaigns->paginate($request->per_page ?? 15);
return view('refactor.pages.admin.monitor._list', compact('items'));
}
}