diff --git a/src/entity/City.ts b/src/entity/City.ts index 803450b..aaf5572 100644 --- a/src/entity/City.ts +++ b/src/entity/City.ts @@ -4,6 +4,8 @@ import { CityEvent, CityEventType, CityInitializedEvent } from "./CityEvent"; type EventHandler = (event: T) => void; export class City { + static readonly MAX_DAMAGE = 100; + private _events: CityEvent[] = []; constructor(public readonly id: string) { @@ -21,6 +23,14 @@ export class City { this._events.push(event); } + public get damage(): number { + return 0; + } + + public get isDestroyed(): boolean { + return this.damage >= City.MAX_DAMAGE; + } + public get events(): CityEvent[] { return this._events.map((event) => ({ ...event }) as CityEvent); } diff --git a/src/usecase/CitySnapshotUsecase.ts b/src/usecase/CitySnapshotUsecase.ts index 6f26360..deeac7d 100644 --- a/src/usecase/CitySnapshotUsecase.ts +++ b/src/usecase/CitySnapshotUsecase.ts @@ -2,6 +2,8 @@ import { CityRepository } from "./interface"; export type CitySnapshot = { id: string; + damage: number; + isDestroyed: boolean; }; export class CitySnapshotUsecase { @@ -15,6 +17,8 @@ export class CitySnapshotUsecase { return { id: city.id, + damage: city.damage, + isDestroyed: city.isDestroyed, }; } }