class NetworkConfigService extends GenericReactiveCrudService<NetworkConfigEntity, String>  {

    private final NetworkManager networkManager;

    public NetworkConfigService(NetworkManager networkManager) {
        this.networkManager = networkManager;
    }

    @Override
    public Mono<Integer> deleteById(Publisher<String> idPublisher) {
        return this
            .findById(Flux.from(idPublisher))
            .flatMap(config -> networkManager
                .destroy(config.lookupNetworkType(), config.getId())
                .thenReturn(config.getId()))
            .as(super::deleteById)
            ;
    }


    public Mono<Void> start(String id) {
        return this
            .findById(id)
            .switchIfEmpty(Mono.error(() -> new NotFoundException("error.configuration_does_not_exist", id)))
            .flatMap(conf -> this
                .createUpdate()
                .set(NetworkConfigEntity::getState, NetworkConfigState.enabled)
                .where(conf::getId)
                .execute()
                .thenReturn(conf))
            .flatMap(conf -> networkManager.reload(conf.lookupNetworkType(), id));
    }

    public Mono<Void> shutdown(String id) {<FILL_FUNCTION_BODY>}
}

        return this
            .findById(id)
            .switchIfEmpty(Mono.error(() -> new NotFoundException("error.configuration_does_not_exist",id)))
            .flatMap(conf -> this
                .createUpdate()
                .set(NetworkConfigEntity::getState, NetworkConfigState.disabled)
                .where(conf::getId)
                .execute()
                .thenReturn(conf))
            .flatMap(conf -> networkManager.shutdown(conf.lookupNetworkType(), id));
    
<no_super_class>