wip
This commit is contained in:
@@ -1,8 +1,15 @@
|
||||
import { LeagueTimezone } from './LeagueTimezone';
|
||||
|
||||
import { RacingDomainValidationError } from '../errors/RacingDomainError';
|
||||
import type { IValueObject } from '@gridpilot/shared/domain';
|
||||
|
||||
export class ScheduledRaceSlot {
|
||||
export interface ScheduledRaceSlotProps {
|
||||
roundNumber: number;
|
||||
scheduledAt: Date;
|
||||
timezone: LeagueTimezone;
|
||||
}
|
||||
|
||||
export class ScheduledRaceSlot implements IValueObject<ScheduledRaceSlotProps> {
|
||||
readonly roundNumber: number;
|
||||
readonly scheduledAt: Date;
|
||||
readonly timezone: LeagueTimezone;
|
||||
@@ -19,4 +26,22 @@ export class ScheduledRaceSlot {
|
||||
this.scheduledAt = params.scheduledAt;
|
||||
this.timezone = params.timezone;
|
||||
}
|
||||
|
||||
get props(): ScheduledRaceSlotProps {
|
||||
return {
|
||||
roundNumber: this.roundNumber,
|
||||
scheduledAt: this.scheduledAt,
|
||||
timezone: this.timezone,
|
||||
};
|
||||
}
|
||||
|
||||
equals(other: IValueObject<ScheduledRaceSlotProps>): boolean {
|
||||
const a = this.props;
|
||||
const b = other.props;
|
||||
return (
|
||||
a.roundNumber === b.roundNumber &&
|
||||
a.scheduledAt.getTime() === b.scheduledAt.getTime() &&
|
||||
a.timezone.equals(b.timezone)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user