"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VPContainer = void 0;
const Di_1 = require("../../ioc/Di");
const NotPublicVehiclesRedisRepository_1 = require("../../ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository");
const MetroRailtrackGPSRepository_1 = require("../../ropid-gtfs/workers/timetables/tasks/data-access/MetroRailtrackGPSRepository");
const RegionalBusRunsMessagesRepository_1 = require("../workers/runs/data-access/RegionalBusRunsMessagesRepository");
const RegionalBusCisCacheRepository_1 = require("../workers/runs/data-access/cache/RegionalBusCisCacheRepository");
const RegionalBusGtfsCacheRepository_1 = require("../workers/runs/data-access/cache/RegionalBusGtfsCacheRepository");
const BusMessageFilter_1 = require("../workers/runs/helpers/BusMessageFilter");
const TimestampValidator_1 = require("../workers/runs/helpers/TimestampValidator");
const TramMessageFilter_1 = require("../workers/runs/helpers/TramMessageFilter");
const CisLookupManager_1 = require("../workers/runs/helpers/regional-bus/CisLookupManager");
const GtfsLookupManager_1 = require("../workers/runs/helpers/regional-bus/GtfsLookupManager");
const RegionalBusMessageFilter_1 = require("../workers/runs/helpers/regional-bus/RegionalBusMessageFilter");
const RegionalBusRunsFacade_1 = require("../workers/runs/helpers/regional-bus/RegionalBusRunsFacade");
const TripScheduleManager_1 = require("../workers/runs/helpers/regional-bus/TripScheduleManager");
const ProcessMetroRunMessagesTask_1 = require("../workers/runs/tasks/ProcessMetroRunMessagesTask");
const ProcessRegionalBusRunMessagesTask_1 = require("../workers/runs/tasks/ProcessRegionalBusRunMessagesTask");
const SaveArrivaCityRunsToDBTask_1 = require("../workers/runs/tasks/SaveArrivaCityRunsToDBTask");
const SaveBusRunsToDBTask_1 = require("../workers/runs/tasks/SaveBusRunsToDBTask");
const SaveMetroRunsToDBTask_1 = require("../workers/runs/tasks/SaveMetroRunsToDBTask");
const SaveTramRunsToDBTask_1 = require("../workers/runs/tasks/SaveTramRunsToDBTask");
const CommonRunsMessagesTransformation_1 = require("../workers/runs/transformations/CommonRunsMessagesTransformation");
const MetroRunsMessageProcessingTransformation_1 = require("../workers/runs/transformations/MetroRunsMessageProcessingTransformation");
const MetroRunsMessagesTransformation_1 = require("../workers/runs/transformations/MetroRunsMessagesTransformation");
const RegionalBusRunsMessagesTransformation_1 = require("../workers/runs/transformations/RegionalBusRunsMessagesTransformation");
const TripScheduleRepository_1 = require("../../ropid-gtfs/data-access/precomputed/TripScheduleRepository");
const DescriptorRepository_1 = require("../workers/vehicle-descriptors/data-access/DescriptorRepository");
const DescriptorDataSourceFactory_1 = require("../workers/vehicle-descriptors/datasources/DescriptorDataSourceFactory");
const SeznamAutobusuDataSourceProvider_1 = require("../workers/vehicle-descriptors/datasources/seznam-autobusu/SeznamAutobusuDataSourceProvider");
const DescriptorFilter_1 = require("../workers/vehicle-descriptors/helpers/DescriptorFilter");
const RefreshDescriptorsTask_1 = require("../workers/vehicle-descriptors/tasks/RefreshDescriptorsTask");
const DescriptorTransformation_1 = require("../workers/vehicle-descriptors/transformations/DescriptorTransformation");
const TripsRepository_1 = require("../workers/vehicle-positions/data-access/TripsRepository");
const PublicApiCacheRepository_1 = require("../workers/vehicle-positions/data-access/cache/PublicApiCacheRepository");
const PublicStopTimeCacheRepository_1 = require("../workers/vehicle-positions/data-access/cache/PublicStopTimeCacheRepository");
const CachedMetroRailtrackLookup_1 = require("../workers/vehicle-positions/data-access/metro/CachedMetroRailtrackLookup");
const PublicStopTimeRepository_1 = require("../workers/vehicle-positions/data-access/views/PublicStopTimeRepository");
const PositionsManager_1 = require("../workers/vehicle-positions/helpers/PositionsManager");
const ValidToCalculator_1 = require("../workers/vehicle-positions/helpers/ValidToCalculator");
const GtfsTripDataFixerFactory_1 = require("../workers/vehicle-positions/helpers/gtfs-trip-data/GtfsTripDataFixerFactory");
const HttpGtfsTripDataFixer_1 = require("../workers/vehicle-positions/helpers/gtfs-trip-data/strategy/HttpGtfsTripDataFixer");
const MetroShapePointsFixer_1 = require("../workers/vehicle-positions/helpers/metro/MetroShapePointsFixer");
const GtfsTripRegionalBusRunManager_1 = require("../workers/vehicle-positions/helpers/regional-bus/gtfs-trip-run/GtfsTripRegionalBusRunManager");
const RegionalBusPositionsManager_1 = require("../workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager");
const RefreshGtfsTripDataTask_1 = require("../workers/vehicle-positions/tasks/RefreshGtfsTripDataTask");
const RefreshPublicStopTimeCacheTask_1 = require("../workers/vehicle-positions/tasks/RefreshPublicStopTimeCacheTask");
const RefreshPublicTripCacheTask_1 = require("../workers/vehicle-positions/tasks/RefreshPublicTripCacheTask");
const DataRetentionTask_1 = require("../workers/vehicle-positions/tasks/DataRetentionTask");
const ProcessRegionalBusPositionsTask_1 = require("../workers/vehicle-positions/tasks/ProcessRegionalBusPositionsTask");
const PropagateDelayTask_1 = require("../workers/vehicle-positions/tasks/PropagateDelayTask");
const PropagateTrainDelayTask_1 = require("../workers/vehicle-positions/tasks/PropagateTrainDelayTask");
const SaveDataToDBTask_1 = require("../workers/vehicle-positions/tasks/SaveDataToDBTask");
const UpdateDelayTask_1 = require("../workers/vehicle-positions/tasks/UpdateDelayTask");
const UpdateGtfsTripIdTask_1 = require("../workers/vehicle-positions/tasks/UpdateGtfsTripIdTask");
const UpdateRunsGtfsTripIdTask_1 = require("../workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask");
const PositionsRepository_1 = require("../workers/vehicle-positions/data-access/PositionsRepository");
const CisStopRepository_1 = require("../workers/vehicle-positions/data-access/CisStopRepository");
const MpvMessageTransformation_1 = require("../workers/vehicle-positions/transformations/MpvMessageTransformation");
const RopidGTFSTripsModel_1 = require("../../ropid-gtfs/RopidGTFSTripsModel");
const RopidGTFSStopTimesModel_1 = require("../../ropid-gtfs/RopidGTFSStopTimesModel");
const RopidGTFSCisStopsModel_1 = require("../../ropid-gtfs/RopidGTFSCisStopsModel");
const cache_1 = require("../../ropid-gtfs/data-access/cache");
const CommonRunsRepository_1 = require("../workers/runs/data-access/CommonRunsRepository");
const RunTripsRedisRepository_1 = require("../../ropid-gtfs/data-access/cache/RunTripsRedisRepository");
const PublicApiTripTransformation_1 = require("../workers/vehicle-positions/transformations/PublicApiTripTransformation");
const VPContainerToken_1 = require("./VPContainerToken");
const GtfsRtRedisRepository_1 = require("../workers/gtfs-rt/data-access/GtfsRtRedisRepository");
const GenerateFilesTask_1 = require("../workers/gtfs-rt/tasks/GenerateFilesTask");
const JISContainerToken_1 = require("../../jis/ioc/JISContainerToken");
const JISEventsRepository_1 = require("../../jis/repositories/JISEventsRepository");
const JISEventsRopidGTFSRoutesRepository_1 = require("../../jis/repositories/JISEventsRopidGTFSRoutesRepository");
//#region Initialization
const VPContainer = Di_1.PidContainer.createChildContainer();
exports.VPContainer = VPContainer;
//#endregion
//#region Datasources
VPContainer.register(VPContainerToken_1.VPContainerToken.SeznamAutobusuDataSourceProvider, SeznamAutobusuDataSourceProvider_1.SeznamAutobusuDataSourceProvider);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DescriptorDataSourceFactory, DescriptorDataSourceFactory_1.DescriptorDataSourceFactory);
//#endregion
//#region Repositories
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TripRepository, TripsRepository_1.TripsRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorRepository, DescriptorRepository_1.DescriptorRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusCisCacheRepository, RegionalBusCisCacheRepository_1.RegionalBusCisCacheRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusGtfsCacheRepository, RegionalBusGtfsCacheRepository_1.RegionalBusGtfsCacheRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessagesRepository, RegionalBusRunsMessagesRepository_1.RegionalBusRunsMessagesRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicStopTimeRepository, PublicStopTimeRepository_1.PublicStopTimeRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicApiCacheRepository, PublicApiCacheRepository_1.PublicApiCacheRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicStopTimeCacheRepository, PublicStopTimeCacheRepository_1.PublicStopTimeCacheRepository);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.MetroRailtrackGPSRepository, MetroRailtrackGPSRepository_1.MetroRailtrackGPSRepository);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CachedMetroRailTrackLookup, CachedMetroRailtrackLookup_1.CachedMetroRailTrackLookup);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.NotPublicVehiclesRedisRepository, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.PositionsRepository, PositionsRepository_1.PositionsRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.CisStopRepository, CisStopRepository_1.CisStopRepository);
//#endregion
//#region Transformations
VPContainer.register(VPContainerToken_1.VPContainerToken.DescriptorTransformation, DescriptorTransformation_1.DescriptorTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.RegionalBusRunsMessagesTransformation, RegionalBusRunsMessagesTransformation_1.RegionalBusRunsMessagesTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.PublicApiTripTransformation, PublicApiTripTransformation_1.PublicApiTripTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.CommonRunsMessagesTransformation, CommonRunsMessagesTransformation_1.CommonRunsMessagesTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.MetroRunsMessagesTransformation, MetroRunsMessagesTransformation_1.MetroRunsMessagesTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.MetroRunsMessageProcessingTransformation, MetroRunsMessageProcessingTransformation_1.MetroRunsMessageProcessingTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.TripScheduleRepository, TripScheduleRepository_1.TripScheduleRepository);
//#endregion
//#region Helpers
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DescriptorFilter, DescriptorFilter_1.DescriptorFilter);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.CisLookupManager, CisLookupManager_1.CisLookupManager);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsLookupManager, GtfsLookupManager_1.GtfsLookupManager);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TripScheduleManager, TripScheduleManager_1.TripScheduleManager);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.BusMessageFilter, BusMessageFilter_1.BusMessageFilter);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TramMessageFilter, TramMessageFilter_1.TramMessageFilter);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusMessageFilter, RegionalBusMessageFilter_1.RegionalBusMessageFilter);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusRunsFacade, RegionalBusRunsFacade_1.RegionalBusRunsFacade);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.HttpGtfsTripDataFixer, HttpGtfsTripDataFixer_1.HttpGtfsTripDataFixer);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsTripDataFixerFactory, GtfsTripDataFixerFactory_1.GtfsTripDataFixerFactory);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.TimestampValidator, TimestampValidator_1.TimestampValidator);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ValidToCalculator, ValidToCalculator_1.ValidToCalculator);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.PositionsManager, PositionsManager_1.PositionsManager);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RegionalBusPositionsManager, RegionalBusPositionsManager_1.RegionalBusPositionsManager);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsTripRegionalBusRunManager, GtfsTripRegionalBusRunManager_1.GtfsTripRegionalBusRunManager);
VPContainer.register(VPContainerToken_1.VPContainerToken.MetroShapePointsFixer, MetroShapePointsFixer_1.MetroShapePointsFixer);
VPContainer.register(VPContainerToken_1.VPContainerToken.MpvMessageTransformation, MpvMessageTransformation_1.MpvMessageTransformation);
VPContainer.register(VPContainerToken_1.VPContainerToken.RopidGTFSTripsModel, RopidGTFSTripsModel_1.RopidGTFSTripsModel);
VPContainer.register(VPContainerToken_1.VPContainerToken.RopidGTFSStopTimesModel, RopidGTFSStopTimesModel_1.RopidGTFSStopTimesModel);
VPContainer.register(VPContainerToken_1.VPContainerToken.RopidGTFSCisStopsModel, RopidGTFSCisStopsModel_1.RopidGTFSCisStopsModel);
VPContainer.register(VPContainerToken_1.VPContainerToken.DelayComputationRedisRepository, cache_1.DelayComputationRedisRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.BlockStopsRedisRepository, cache_1.BlockStopsRedisRepository);
VPContainer.register(JISContainerToken_1.JISContainerToken.JISEventsRopidGTFSRoutesRepository, JISEventsRopidGTFSRoutesRepository_1.JISEventsRopidGTFSRoutesRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.JISEventsRepository, JISEventsRepository_1.JISEventsRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.CommonRunsRepository, CommonRunsRepository_1.CommonRunsRepository);
VPContainer.register(VPContainerToken_1.VPContainerToken.RunTripsRedisRepository, RunTripsRedisRepository_1.RunTripsRedisRepository);
//#endregion
//#region Tasks
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshDescriptorsTask, RefreshDescriptorsTask_1.RefreshDescriptorsTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.SaveArrivaCityRunsToDBTask, SaveArrivaCityRunsToDBTask_1.SaveArrivaCityRunsToDBTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessRegionalBusRunMessagesTask, ProcessRegionalBusRunMessagesTask_1.ProcessRegionalBusRunMessagesTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicTripCacheTask, RefreshPublicTripCacheTask_1.RefreshPublicTripCacheTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshPublicStopTimeCacheTask, RefreshPublicStopTimeCacheTask_1.RefreshPublicStopTimeCacheTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.RefreshGtfsTripDataTask, RefreshGtfsTripDataTask_1.RefreshGtfsTripDataTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.SaveTramRunsToDBTask, SaveTramRunsToDBTask_1.SaveTramRunsToDBTask);
VPContainer.register(VPContainerToken_1.VPContainerToken.SaveBusRunsToDBTask, SaveBusRunsToDBTask_1.SaveBusRunsToDBTask);
VPContainer.register(VPContainerToken_1.VPContainerToken.SaveMetroRunsToDBTask, SaveMetroRunsToDBTask_1.SaveMetroRunsToDBTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessMetroRunMessagesTask, ProcessMetroRunMessagesTask_1.ProcessMetroRunMessagesTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.DataRetentionTask, DataRetentionTask_1.DataRetentionTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.ProcessRegionalBusPositionsTask, ProcessRegionalBusPositionsTask_1.ProcessRegionalBusPositionsTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.PropagateDelayTask, PropagateDelayTask_1.PropagateDelayTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.PropagateTrainDelayTask, PropagateTrainDelayTask_1.PropagateTrainDelayTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.SaveDataToDBTask, SaveDataToDBTask_1.SaveDataToDBTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.UpdateDelayTask, UpdateDelayTask_1.UpdateDelayTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.UpdateGtfsTripIdTask, UpdateGtfsTripIdTask_1.UpdateGtfsTripIdTask);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.UpdateRunsGtfsTripIdTask, UpdateRunsGtfsTripIdTask_1.UpdateRunsGtfsTripIdTask);
//#endregion
//#region GTFS-RT
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GtfsRtRedisRepository, GtfsRtRedisRepository_1.GtfsRtRedisRepository);
VPContainer.registerSingleton(VPContainerToken_1.VPContainerToken.GenerateFilesTask, GenerateFilesTask_1.GenerateFilesTask);
//# sourceMappingURL=Di.js.map