public Announcer2(
            PogoTelegramProxy proxy,
            TelegramProxies.NimRaidBot raidBotProxy,
            DataAccess.Queries.Raid.IGetActivePogoGroups activeUsers,
            DataAccess.Queries.Pokes.IMarkAsProcessedQuery markAsProcessedQuery,
            DataAccess.Queries.Pokes.IGetPokesForChatQuery getPokesForChatQuery,
            DataAccess.Commands.Pokes.IAddPokeNotificationCommand addPokeNotificationCommand,
            Queries.IGetPokeQueueQuery getPokeQueueQuery,
            DataAccess.Queries.PoGo.IGetAllChatsForArea getAllChatsForArea,
            Queries.IGetThrottleQuery getThrottleQuery
            )
        {
            this.proxy        = proxy;
            this.raidBotProxy = raidBotProxy;
            this.activeUsers  = activeUsers;

            this.markAsProcessedQuery = markAsProcessedQuery;

            this.getPokesForChatQuery       = getPokesForChatQuery;
            this.addPokeNotificationCommand = addPokeNotificationCommand;

            this.getPokeQueueQuery  = getPokeQueueQuery;
            this.getThrottleQuery   = getThrottleQuery;
            this.getAllChatsForArea = getAllChatsForArea;
        }
        public Announcer(
            TelegramProxies.NimRaidBot proxy,
            TelegramProxies.MinunBot minunBot,
            IGetNextNewRaidQuery getNextNewRaidQuery,
            IMarkEventAsProcessedQuery markAsProcessedQuery,
            IMarkEventAsProcessingQuery markAsProcessingQuery,

            DataAccess.Queries.Raid.IGetActivePogoGroups activeUsers,
            IGetSpecialGymsForChatsQuery getSpecialGymsForChatsQuery,
            Commands.Raid.ICreatePollCommand pollCommand,
            Commands.Raid.ICreatePollText createPollText

            , DataAccess.Queries.PoGo.IPollVotesUsers pollVotesUsers
            , DataAccess.Queries.Raid.IGetActivePollByRaidId getActivePollByRaidId
            , DataAccess.Queries.Raid.IGetRaidTimeOffsetsQuery getRaidTimeOffsetsQuery

            , IGetNextPollToProcessQuery getNextPollToProcessQuery,
            IMarkPollAsProcessedQuery markPollAsProcessedQuery,
            IMarkPollAsProcessingQuery markPollAsProcessingQuery,
            IGetRaidByIdQuery getRaidByIdQuery,
            DataAccess.Queries.Pokes.IGetPokesForChatQuery getPokesForChatQuery,
            IGetRaidBossPreferencesAllQuery getRaidBossPreferencesQuery,
            DataAccess.Queries.Location.IGetCurrentNotificationsQuery getCurrentNotificationsQuery,
            IDeactiveMinunUserCommand deactiveMinunUserCommand
            )
        {
            this.proxy                 = proxy;
            this.minunBot              = minunBot;
            this.getNextNewRaidQuery   = getNextNewRaidQuery;
            this.markAsProcessedQuery  = markAsProcessedQuery;
            this.markAsProcessingQuery = markAsProcessingQuery;

            this.activeUsers = activeUsers;

            this.pollCommand = pollCommand;

            this.createPollText = createPollText;

            this.pollVotesUsers          = pollVotesUsers;
            this.getActivePollByRaidId   = getActivePollByRaidId;
            this.getRaidTimeOffsetsQuery = getRaidTimeOffsetsQuery;

            this.getNextPollToProcessQuery = getNextPollToProcessQuery;
            this.markPollAsProcessedQuery  = markPollAsProcessedQuery;
            this.markPollAsProcessingQuery = markPollAsProcessingQuery;
            this.getRaidByIdQuery          = getRaidByIdQuery;

            this.getSpecialGymsForChatsQuery  = getSpecialGymsForChatsQuery;
            this.getPokesForChatQuery         = getPokesForChatQuery;
            this.getRaidBossPreferencesQuery  = getRaidBossPreferencesQuery;
            this.getCurrentNotificationsQuery = getCurrentNotificationsQuery;
            this.deactiveMinunUserCommand     = deactiveMinunUserCommand;
        }