// Path: app/src/main/java/ultimategdbot/config/MongoDBConfig.java
// @ConfigEntry("mongodb")
// @Value.Immutable
// @JsonDeserialize(as = ImmutableMongoDBConfig.class)
// public interface MongoDBConfig {
// 
//     @Value.Default
//     @JsonProperty("database_name")
//     default String databaseName() {
//         return "ultimategdbot";
//     }
// 
//     @Value.Default
//     @JsonProperty("connection_string")
//     default String connectionString() {
//         return "mongodb://localhost:27017";
//     }
// }


import botrino.api.config.ConfigContainer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.github.alex1304.rdi.finder.annotation.RdiFactory;
import com.github.alex1304.rdi.finder.annotation.RdiService;
import com.mongodb.reactivestreams.client.MongoClients;
import discord4j.common.jackson.UnknownPropertyHandler;
import org.immutables.criteria.backend.Backend;
import org.immutables.criteria.mongo.MongoBackend;
import org.immutables.criteria.mongo.MongoSetup;
import org.immutables.criteria.mongo.bson4jackson.BsonModule;
import org.immutables.criteria.mongo.bson4jackson.IdAnnotationModule;
import org.immutables.criteria.mongo.bson4jackson.JacksonCodecs;
import ultimategdbot.config.MongoDBConfig;
import ultimategdbot.database.*;
package ultimategdbot.service;


@RdiService
public final class DatabaseService {

    private final Backend backend;

    @RdiFactory
    public DatabaseService(ConfigContainer configContainer) {
// Path: app/src/main/java/ultimategdbot/config/MongoDBConfig.java
// @ConfigEntry("mongodb")
// @Value.Immutable
// @JsonDeserialize(as = ImmutableMongoDBConfig.class)
// public interface MongoDBConfig {
// 
//     @Value.Default
//     @JsonProperty("database_name")
//     default String databaseName() {
//         return "ultimategdbot";
//     }
// 
//     @Value.Default
//     @JsonProperty("connection_string")
//     default String connectionString() {
//         return "mongodb://localhost:27017";
//     }
// }


// Path: app/src/main/java/ultimategdbot/service/DatabaseService.java
import botrino.api.config.ConfigContainer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.github.alex1304.rdi.finder.annotation.RdiFactory;
import com.github.alex1304.rdi.finder.annotation.RdiService;
import com.mongodb.reactivestreams.client.MongoClients;
import discord4j.common.jackson.UnknownPropertyHandler;
import org.immutables.criteria.backend.Backend;
import org.immutables.criteria.mongo.MongoBackend;
import org.immutables.criteria.mongo.MongoSetup;
import org.immutables.criteria.mongo.bson4jackson.BsonModule;
import org.immutables.criteria.mongo.bson4jackson.IdAnnotationModule;
import org.immutables.criteria.mongo.bson4jackson.JacksonCodecs;
import ultimategdbot.config.MongoDBConfig;
import ultimategdbot.database.*;

package ultimategdbot.service;


@RdiService
public final class DatabaseService {

    private final Backend backend;

    @RdiFactory
    public DatabaseService(ConfigContainer configContainer) {
        final var config = configContainer.get(MongoDBConfig.class);