model = new UserModel(); } public function __invoke(ServerRequestInterface $request) { $body = json_decode((string)$request->getBody(), true) ?? []; if (!isset($body['company_id']) || !is_numeric($body['company_id']) || (int)$body['company_id'] <= 0) { return ResponseLib::sendFail("Validation failed: invalid company_id", [], "E_VALIDATE")->withStatus(400); } if (!isset($body['user_id']) || !is_numeric($body['user_id']) || (int)$body['user_id'] <= 0) { return ResponseLib::sendFail("Validation failed: invalid user_id", [], "E_VALIDATE")->withStatus(400); } $companyId = (int) $body['company_id']; $userId = (int) $body['user_id']; $deleted = $this->model->deleteUserById($userId, $companyId); return $deleted ? ResponseLib::sendOk(['deleted' => true]) : ResponseLib::sendFail("Failed to Delete User or User Not Found", [], "E_DATABASE")->withStatus(204); } }