successPaginated( $this->service->list($tingkat, $request->validated()), WilayahResource::class, "Daftar {$tingkat} berhasil diambil" ); } public function store(StoreWilayahRequest $request, string $tingkat) { return $this->created( new WilayahResource($this->service->create($tingkat, $request->validated())), ucfirst($tingkat).' berhasil dibuat' ); } public function show(int $wilayah, string $tingkat) { return $this->success( new WilayahResource($this->service->find($tingkat, $wilayah)), 'Detail wilayah berhasil diambil' ); } public function update(UpdateWilayahRequest $request, int $wilayah, string $tingkat) { return $this->updated( new WilayahResource($this->service->update($tingkat, $wilayah, $request->validated())), ucfirst($tingkat).' berhasil diperbarui' ); } public function destroy(int $wilayah, string $tingkat) { $this->service->delete($tingkat, $wilayah); return $this->deleted(ucfirst($tingkat).' berhasil dihapus'); } public function alamatLengkap(AlamatLengkapRequest $request) { return $this->success( $this->service->alamatLengkap($request->validated()), 'Alamat wilayah lengkap berhasil diambil' ); } public function provinsiOptions(LookupWilayahRequest $request) { return $this->success( $this->service->options('provinsi', $request->validated()), 'Pilihan provinsi berhasil diambil' ); } public function kabupatenOptions( LookupWilayahRequest $request, WilayahProvinsi $provinsi ) { return $this->success( $this->service->options('kabupaten', $request->validated(), $provinsi->id), 'Pilihan kabupaten berhasil diambil' ); } public function kecamatanOptions( LookupWilayahRequest $request, WilayahKabupaten $kabupaten ) { return $this->success( $this->service->options('kecamatan', $request->validated(), $kabupaten->id), 'Pilihan kecamatan berhasil diambil' ); } public function desaOptions( LookupWilayahRequest $request, WilayahKecamatan $kecamatan ) { return $this->success( $this->service->options('desa', $request->validated(), $kecamatan->id), 'Pilihan desa berhasil diambil' ); } }