only([ 'search', 'category', 'sub_category', 'department_type', 'depth', 'is_active', 'selectable', ]); $subjects = $this->service->index($params); return ApiResponse::success($subjects, __('message.fetched')); } /** * 계정과목 등록 */ public function store(StoreAccountSubjectRequest $request) { $subject = $this->service->store($request->validated()); return ApiResponse::success($subject, __('message.created'), [], 201); } /** * 계정과목 수정 */ public function update(int $id, UpdateAccountSubjectRequest $request) { $subject = $this->service->update($id, $request->validated()); return ApiResponse::success($subject, __('message.updated')); } /** * 계정과목 활성/비활성 토글 */ public function toggleStatus(int $id, Request $request) { $isActive = (bool) $request->input('is_active', true); $subject = $this->service->toggleStatus($id, $isActive); return ApiResponse::success($subject, __('message.toggled')); } /** * 계정과목 삭제 */ public function destroy(int $id) { $this->service->destroy($id); return ApiResponse::success(null, __('message.deleted')); } /** * 기본 계정과목표 일괄 생성 (더존 표준) */ public function seedDefaults() { $count = $this->service->seedDefaults(); return ApiResponse::success( ['inserted_count' => $count], __('message.created') ); } }