Files
gridpilot.gg/core/rating/domain/events/RatingCalculatedEvent.ts
Marc Mintel afef777961
Some checks failed
CI / lint-typecheck (pull_request) Failing after 12s
CI / tests (pull_request) Has been skipped
CI / contract-tests (pull_request) Has been skipped
CI / e2e-tests (pull_request) Has been skipped
CI / comment-pr (pull_request) Has been skipped
CI / commit-types (pull_request) Has been skipped
code quality
2026-01-26 02:27:37 +01:00

37 lines
788 B
TypeScript

/**
* RatingCalculatedEvent
*
* Event published when a driver's rating is calculated.
*/
import { DomainEvent } from '../../../shared/ports/EventPublisher';
import { Rating, RatingJSON } from '../Rating';
export interface RatingCalculatedEventJSON {
type: string;
timestamp: string;
rating: RatingJSON;
}
export class RatingCalculatedEvent implements DomainEvent {
readonly type = 'RatingCalculatedEvent';
readonly timestamp: Date;
[key: string]: unknown;
constructor(private readonly rating: Rating) {
this.timestamp = new Date();
}
getRating(): Rating {
return this.rating;
}
toJSON(): RatingCalculatedEventJSON {
return {
type: this.type,
timestamp: this.timestamp.toISOString(),
rating: this.rating.toJSON(),
};
}
}