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
37 lines
788 B
TypeScript
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(),
|
|
};
|
|
}
|
|
}
|