"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.JISContainer = void 0;
const Di_1 = require("../../ioc/Di");
const RopidGTFSStopsModel_1 = require("../../ropid-gtfs/RopidGTFSStopsModel");
const JISEventsDataSourceFactory_1 = require("../datasources/JISEventsDataSourceFactory");
const JISInfotextsDataSourceFactory_1 = require("../datasources/JISInfotextsDataSourceFactory");
const JISEventsRepository_1 = require("../repositories/JISEventsRepository");
const JISEventsRopidGTFSRoutesRepository_1 = require("../repositories/JISEventsRopidGTFSRoutesRepository");
const JISInfotextsRedisRepository_1 = require("../repositories/JISInfotextsRedisRepository");
const JISInfotextsRepository_1 = require("../repositories/JISInfotextsRepository");
const JISInfotextsRopidGTFSStopsRepository_1 = require("../repositories/JISInfotextsRopidGTFSStopsRepository");
const JISMetadataRepository_1 = require("../repositories/JISMetadataRepository");
const JISEventsDataService_1 = require("../services/JISEventsDataService");
const JISInfotextsDataService_1 = require("../services/JISInfotextsDataService");
const JISEventsGtfsRtTransformation_1 = require("../transformations/JISEventsGtfsRtTransformation");
const JISEventsTransformation_1 = require("../transformations/JISEventsTransformation");
const JISInfotextCacheTranformation_1 = require("../transformations/JISInfotextCacheTranformation");
const JISInfotextsTransformation_1 = require("../transformations/JISInfotextsTransformation");
const UpdateEventWebhookTransformation_1 = require("../transformations/UpdateEventWebhookTransformation");
const FetchJISEventsTask_1 = require("../workers/tasks/FetchJISEventsTask");
const FetchJISInfotextsTask_1 = require("../workers/tasks/FetchJISInfotextsTask");
const RefreshJISEventsTask_1 = require("../workers/tasks/RefreshJISEventsTask");
const RefreshJISInfotextsCacheTask_1 = require("../workers/tasks/RefreshJISInfotextsCacheTask");
const RefreshJISInfotextsTask_1 = require("../workers/tasks/RefreshJISInfotextsTask");
const UpdateEventWebhookTask_1 = require("../workers/tasks/UpdateEventWebhookTask");
const JISContainerToken_1 = require("./JISContainerToken");
const RopidGTFSRoutesRepository_1 = require("../../ropid-gtfs/data-access/RopidGTFSRoutesRepository");
//#region Initialization
const JISContainer = Di_1.PidContainer.createChildContainer();
exports.JISContainer = JISContainer;
//#endregion
//#region Data Sources
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsDataSourceFactory, JISEventsDataSourceFactory_1.JISEventsDataSourceFactory);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsDataSourceFactory, JISInfotextsDataSourceFactory_1.JISInfotextsDataSourceFactory);
//#endregion
//#region Cache Repositories
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsRedisRepository, JISInfotextsRedisRepository_1.JISInfotextsRedisRepository);
//#endregion
//#region Repositories
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsRepository, JISEventsRepository_1.JISEventsRepository);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsRopidGTFSRoutesRepository, JISEventsRopidGTFSRoutesRepository_1.JISEventsRopidGTFSRoutesRepository);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsRepository, JISInfotextsRepository_1.JISInfotextsRepository);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsRopidGTFSStopsRepository, JISInfotextsRopidGTFSStopsRepository_1.JISInfotextsRopidGTFSStopsRepository);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISMetadataRepository, JISMetadataRepository_1.JISMetadataRepository);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RopidGTFSStopsRepository, RopidGTFSStopsModel_1.RopidGTFSStopsModel);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RopidGTFSRoutesRepository, RopidGTFSRoutesRepository_1.RopidGTFSRoutesRepository);
//#endregion
//#region Services
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsDataService, JISEventsDataService_1.JISEventsDataService);
JISContainer.register(JISContainerToken_1.JISContainerToken.JISInfotextsDataService, JISInfotextsDataService_1.JISInfotextsDataService);
//#endregion
//#region Tasks
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.FetchJISEventsTask, FetchJISEventsTask_1.FetchJISEventsTask);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.FetchJISInfotextsTask, FetchJISInfotextsTask_1.FetchJISInfotextsTask);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISEventsTask, RefreshJISEventsTask_1.RefreshJISEventsTask);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsTask, RefreshJISInfotextsTask_1.RefreshJISInfotextsTask);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.RefreshJISInfotextsCacheTask, RefreshJISInfotextsCacheTask_1.RefreshJISInfotextsCacheTask);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.UpdateEventWebhookTask, UpdateEventWebhookTask_1.UpdateEventWebhookTask);
//#endregion
//#region Transformations
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsTransformation, JISEventsTransformation_1.JISEventsTransformation);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISEventsGtfsRtTransformation, JISEventsGtfsRtTransformation_1.JISEventsGtfsRtTransformation);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextsTransformation, JISInfotextsTransformation_1.JISInfotextsTransformation);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.JISInfotextCacheTranformation, JISInfotextCacheTranformation_1.JISInfotextCacheTranformation);
JISContainer.registerSingleton(JISContainerToken_1.JISContainerToken.UpdateEventWebhookTransformation, UpdateEventWebhookTransformation_1.UpdateEventWebhookTransformation);
//# sourceMappingURL=Di.js.map