diff --git a/src/entity/CityEvent.ts b/src/entity/CityEvent.ts index 9999639..62d9917 100644 --- a/src/entity/CityEvent.ts +++ b/src/entity/CityEvent.ts @@ -7,7 +7,7 @@ abstract class Event { constructor( public readonly type: CityEventType, public readonly _payload: Record, - public readonly createdAt: Date = new Date(), + public readonly createdAt: Date, ) {} get payload(): Record { @@ -16,14 +16,14 @@ abstract class Event { } export class CityInitializedEvent extends Event { - constructor(payload: Record) { - super(CityEventType.CityInitializedEvent, payload); + constructor(payload: Record, createdAt: Date = new Date()) { + super(CityEventType.CityInitializedEvent, payload, createdAt); } } export class RefreshEvent extends Event { - constructor(payload: Record) { - super(CityEventType.RefreshEvent, payload); + constructor(payload: Record, createdAt: Date = new Date()) { + super(CityEventType.RefreshEvent, payload, createdAt); } } diff --git a/src/repository/KvCityRepository.ts b/src/repository/KvCityRepository.ts index d863c76..12625cd 100644 --- a/src/repository/KvCityRepository.ts +++ b/src/repository/KvCityRepository.ts @@ -6,6 +6,7 @@ import { CityEvent, CityEventType, CityInitializedEvent, + RefreshEvent, } from "@entity/CityEvent"; import { addBreadcrumb } from "@sentry/cloudflare"; @@ -77,7 +78,12 @@ export class KvCityRepository { private rebuildEvent(event: EventSchema): CityEvent { switch (event.type) { case CityEventType.CityInitializedEvent: - return new CityInitializedEvent(event.payload); + return new CityInitializedEvent( + event.payload, + new Date(event.createdAt), + ); + case CityEventType.RefreshEvent: + return new RefreshEvent(event.payload, new Date(event.createdAt)); default: throw new Error(`Unknown event type: ${event.type}`); }