<?php

class GratifikasiPetaKerawananController extends BaseController
{
    public function index()
    {
        $validatedRequest = $this->validate(
            $this->request->get(),
            [
                'sektor' => ['validators' => []],
                'sub_sektor' => ['validators' => []]
            ]
        );

        $sektor = $validatedRequest['sektor'];
        $subSektor = $validatedRequest['sub_sektor'];

        $query = GratifikasiPetaKerawanan::query()
            ->columns('num, sektor, sub_sektor, kegiatan, penjelasan_kegiatan, penanggung_jawab, potensi_gratifikasi, tingkat_risiko')
            ->where('deleted_at is null');

        if (!empty($sektor)) {
            $query->andWhere("sektor = :sektor:", $sektor);
        }

        if (!empty($subSektor)) {
            $query->andWhere("sub_sektor = :sub_sektor:", $subSektor);
        }

        $query->orderBy("sektor, sub_sektor, num ASC");
        $items = $query->execute()->toArray();

        $result = [];
        foreach ($items as $item) {
            $result[$item['sektor']][$item['sub_sektor']][] = $item;
        }

        return new CollectionPaginatedResponse($result);
    }
}
