big update base struktur tahap 1

This commit is contained in:
Wian Drs
2026-07-27 16:24:09 +07:00
parent 2b3592c4c2
commit 1dd02baa72
169 changed files with 24405 additions and 977 deletions
@@ -3,12 +3,12 @@
namespace App\Http\Controllers\Ticket;
use App\Http\Controllers\ApiController;
use App\Http\Requests\Ticket\IndexTicketRequest;
use App\Http\Requests\Ticket\StoreTicketRequest;
use App\Http\Requests\Ticket\UpdateTicketRequest;
use App\Http\Resources\Ticket\TicketResource;
use App\Models\Ticket;
use App\Services\Ticket\TicketService;
use Illuminate\Http\Request;
class TicketController extends ApiController
{
@@ -16,13 +16,42 @@ class TicketController extends ApiController
protected TicketService $service
) {}
public function index(Request $request)
public function index(IndexTicketRequest $request)
{
$tickets = Ticket::latest()->paginate(
$request->get('per_page', 10)
);
$filters = $request->validated();
$tickets = Ticket::query()
->when(
! empty($filters['search']),
fn ($query) => $query->where(function ($searchQuery) use ($filters) {
$searchQuery->where('ticket_no', 'ILIKE', "%{$filters['search']}%")
->orWhere('title', 'ILIKE', "%{$filters['search']}%")
->orWhere('description', 'ILIKE', "%{$filters['search']}%");
})
)
->when(
! empty($filters['status']),
fn ($query) => $query->where('status', $filters['status'])
)
->when(
! empty($filters['priority']),
fn ($query) => $query->where('priority', $filters['priority'])
)
->when(
! empty($filters['ticket_type_id']),
fn ($query) => $query->where('ticket_type_id', $filters['ticket_type_id'])
)
->when(
! empty($filters['customer_id']),
fn ($query) => $query->where('customer_id', $filters['customer_id'])
)
->latest()
->paginate($filters['per_page'] ?? 10);
return $this->success($tickets);
return $this->successPaginated(
$tickets,
TicketResource::class,
'Data Ticket berhasil diambil'
);
}
public function store(StoreTicketRequest $request)
@@ -67,4 +96,4 @@ class TicketController extends ApiController
'Ticket berhasil dibatalkan'
);
}
}
}