35 lines
973 B
PHP
35 lines
973 B
PHP
<?php
|
|
|
|
namespace App\Services\Api;
|
|
|
|
use App\Contact;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ContactService
|
|
{
|
|
public function list(Request $request, int $business_id)
|
|
{
|
|
$query = Contact::where('business_id', $business_id);
|
|
|
|
if ($request->filled('type')) {
|
|
$query->whereIn('type', (array) $request->input('type'));
|
|
}
|
|
|
|
if ($request->filled('search')) {
|
|
$search = $request->input('search');
|
|
$query->where(function ($q) use ($search) {
|
|
$q->where('name', 'like', "%{$search}%")
|
|
->orWhere('supplier_business_name', 'like', "%{$search}%")
|
|
->orWhere('mobile', 'like', "%{$search}%");
|
|
});
|
|
}
|
|
|
|
return $query->orderBy('name')->paginate($request->input('per_page', 25));
|
|
}
|
|
|
|
public function find(int $business_id, int $id): Contact
|
|
{
|
|
return Contact::where('business_id', $business_id)->findOrFail($id);
|
|
}
|
|
}
|