HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
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'));
    }
}