From 13bfc853e3128210e1e33eb78e5b725f8e9721e7 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 11 Nov 2025 12:26:22 -0800 Subject: [PATCH] Add getAverageTravelTimeSeconds in SelfUpdatingETARepository definition --- .../shuttle/eta/RedisSelfUpdatingETARepository.ts | 6 ++++-- .../shuttle/eta/SelfUpdatingETARepository.ts | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts index 8d26d60..7ab93ab 100644 --- a/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts +++ b/src/repositories/shuttle/eta/RedisSelfUpdatingETARepository.ts @@ -3,7 +3,7 @@ import { ETARepositoryEventName, ETARepositoryEventListener } from "./ETAGetterR import { SelfUpdatingETARepository } from "./SelfUpdatingETARepository"; import { BaseRedisRepository } from "../../BaseRedisRepository"; import { createClient, RedisClientType } from "redis"; -import { ShuttleGetterRepository } from "../ShuttleGetterRepository"; +import { ShuttleGetterRepository, ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository"; import { REDIS_RECONNECT_INTERVAL } from "../../../environment"; export class RedisSelfUpdatingETARepository extends BaseRedisRepository implements SelfUpdatingETARepository { @@ -20,7 +20,9 @@ export class RedisSelfUpdatingETARepository extends BaseRedisRepository implemen ) { super(redisClient); } - + getAverageTravelTimeSeconds(identifier: ShuttleTravelTimeDataIdentifier, dateFilter: ShuttleTravelTimeDateFilterArguments): Promise { + throw new Error("Method not implemented."); + } startListeningForUpdates(): void { throw new Error("Method not implemented."); } diff --git a/src/repositories/shuttle/eta/SelfUpdatingETARepository.ts b/src/repositories/shuttle/eta/SelfUpdatingETARepository.ts index 7f2c9f0..331e1cc 100644 --- a/src/repositories/shuttle/eta/SelfUpdatingETARepository.ts +++ b/src/repositories/shuttle/eta/SelfUpdatingETARepository.ts @@ -1,3 +1,4 @@ +import { ShuttleTravelTimeDataIdentifier, ShuttleTravelTimeDateFilterArguments } from "../ShuttleGetterRepository"; import { ETAGetterRepository } from "./ETAGetterRepository"; export interface SelfUpdatingETARepository extends ETAGetterRepository { @@ -6,4 +7,15 @@ export interface SelfUpdatingETARepository extends ETAGetterRepository { * shuttle updates */ startListeningForUpdates(): void; + + /** + * Get average travel time between two stops based on historical data. + * Returns undefined if no data exists for the specified time range. + * @param identifier - The route and stop IDs to query + * @param dateFilter - The date range to filter data + */ + getAverageTravelTimeSeconds( + identifier: ShuttleTravelTimeDataIdentifier, + dateFilter: ShuttleTravelTimeDateFilterArguments + ): Promise; }