// Path: src/main/java/pl/setblack/pongi/games/GamesModule.java
// public class GamesModule {
//     private final GamesRepository gamesRepo;
// 
//     private final SessionsRepo sessionsRepo;
// 
//     private final ScoresRepositoryProcessor scoresRepo;
// 
// 
//     public GamesModule(GamesRepository gamesRepo,
//                        SessionsRepo sessionsRepo,
//                        ScoresRepositoryProcessor scoresRepo) {
//         this.gamesRepo = gamesRepo;
//         this.sessionsRepo = sessionsRepo;
//         this.scoresRepo = scoresRepo;
//     }
// 
//     public GamesModule(
//             final Clock clock,
//             final SessionsRepo sessionsRepo,
//             final ScoresRepositoryProcessor scoresRepo) {
//         this(
//                 new GamesRepoES(clock),
//                 sessionsRepo,
//                 scoresRepo);
//     }
// 
// 
//     public GamesService createService() {
//         return new GamesService(gamesRepo, sessionsRepo, scoresRepo);
//     }
// 
// }
// 
// Path: src/main/java/pl/setblack/pongi/scores/ScoresModule.java
// public class ScoresModule {
// 
//     private final ScoresRepositoryProcessor scoresRepository;
// 
//     public ScoresModule(ScoresRepository scoresRepository) {
//         this.scoresRepository = new ScoresRepositoryProcessor(scoresRepository);
//     }
// 
//     public ScoresModule() {
//         this(new ScoreRepositoryES(Paths.get("airomem/score")));
//     }
// 
//     public ScoresService createService() {
//         return new ScoresService(scoresRepository);
//     }
// 
//     public ScoresRepositoryProcessor getScoresRepository() {
//         return this.scoresRepository;
//     }
// }
// 
// Path: src/main/java/pl/setblack/pongi/users/UsersModule.java
// public class UsersModule {
// 
//     private final UsersRepository usersRepo;
//     private final SessionsRepo sessionsRepo;
// 
// 
//     public UsersModule(UsersRepository usersRepo, SessionsRepo sessionsRepo) {
//         this.usersRepo = usersRepo;
//         this.sessionsRepo = sessionsRepo;
//     }
// 
//     public UsersModule(Clock clock) {
//         this(
//                 new UsersRepoES(Paths.get("airomem/users")),
//                 new SessionsRepo(clock));
//     }
// 
//     public UsersService createService() {
//         return new UsersService(this.usersRepo, this.sessionsRepo);
//     }
// 
//     public SessionsRepo getSessionsRepo() {
//         return this.sessionsRepo;
//     }
// 
// }


import pl.setblack.pongi.games.GamesModule;
import pl.setblack.pongi.scores.ScoresModule;
import pl.setblack.pongi.users.UsersModule;
import java.time.Clock;
package pl.setblack.pongi;




public class Main {


    public static void main(final String... args) throws Exception {
        final Clock clock = Clock.systemUTC();

        final UsersModule usersModule = new UsersModule(clock);
// Path: src/main/java/pl/setblack/pongi/games/GamesModule.java
// public class GamesModule {
//     private final GamesRepository gamesRepo;
// 
//     private final SessionsRepo sessionsRepo;
// 
//     private final ScoresRepositoryProcessor scoresRepo;
// 
// 
//     public GamesModule(GamesRepository gamesRepo,
//                        SessionsRepo sessionsRepo,
//                        ScoresRepositoryProcessor scoresRepo) {
//         this.gamesRepo = gamesRepo;
//         this.sessionsRepo = sessionsRepo;
//         this.scoresRepo = scoresRepo;
//     }
// 
//     public GamesModule(
//             final Clock clock,
//             final SessionsRepo sessionsRepo,
//             final ScoresRepositoryProcessor scoresRepo) {
//         this(
//                 new GamesRepoES(clock),
//                 sessionsRepo,
//                 scoresRepo);
//     }
// 
// 
//     public GamesService createService() {
//         return new GamesService(gamesRepo, sessionsRepo, scoresRepo);
//     }
// 
// }
// 
// Path: src/main/java/pl/setblack/pongi/scores/ScoresModule.java
// public class ScoresModule {
// 
//     private final ScoresRepositoryProcessor scoresRepository;
// 
//     public ScoresModule(ScoresRepository scoresRepository) {
//         this.scoresRepository = new ScoresRepositoryProcessor(scoresRepository);
//     }
// 
//     public ScoresModule() {
//         this(new ScoreRepositoryES(Paths.get("airomem/score")));
//     }
// 
//     public ScoresService createService() {
//         return new ScoresService(scoresRepository);
//     }
// 
//     public ScoresRepositoryProcessor getScoresRepository() {
//         return this.scoresRepository;
//     }
// }
// 
// Path: src/main/java/pl/setblack/pongi/users/UsersModule.java
// public class UsersModule {
// 
//     private final UsersRepository usersRepo;
//     private final SessionsRepo sessionsRepo;
// 
// 
//     public UsersModule(UsersRepository usersRepo, SessionsRepo sessionsRepo) {
//         this.usersRepo = usersRepo;
//         this.sessionsRepo = sessionsRepo;
//     }
// 
//     public UsersModule(Clock clock) {
//         this(
//                 new UsersRepoES(Paths.get("airomem/users")),
//                 new SessionsRepo(clock));
//     }
// 
//     public UsersService createService() {
//         return new UsersService(this.usersRepo, this.sessionsRepo);
//     }
// 
//     public SessionsRepo getSessionsRepo() {
//         return this.sessionsRepo;
//     }
// 
// }


// Path: src/main/java/pl/setblack/pongi/Main.java
import pl.setblack.pongi.games.GamesModule;
import pl.setblack.pongi.scores.ScoresModule;
import pl.setblack.pongi.users.UsersModule;
import java.time.Clock;

package pl.setblack.pongi;




public class Main {


    public static void main(final String... args) throws Exception {
        final Clock clock = Clock.systemUTC();

        final UsersModule usersModule = new UsersModule(clock);
        final ScoresModule scoresModule = new ScoresModule();