fix issues in core

This commit is contained in:
2025-12-23 14:43:49 +01:00
parent 11492d1ff2
commit df5c20c5cc
62 changed files with 480 additions and 334 deletions

View File

@@ -4,7 +4,9 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC
import type { NotificationService } from '../../../notifications/application/ports/NotificationService';
import type { NotificationType } from '../../../notifications/domain/types/NotificationTypes';
import type { RaceEvent } from '../../domain/entities/RaceEvent';
import type { Result as RaceResult } from '../../domain/entities/Result';
import type { Result as RaceResult } from '../../domain/entities/result/Result';
import { Position } from '../../domain/entities/result/Position';
import { IncidentCount } from '../../domain/entities/result/IncidentCount';
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
import type { IResultRepository } from '../../domain/repositories/IResultRepository';
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
@@ -72,7 +74,7 @@ export class SendPerformanceSummaryUseCase {
}
if (input.triggeredById !== input.driverId) {
const membership = await this.membershipRepository.getMembership(league.id, input.triggeredById);
const membership = await this.membershipRepository.getMembership(league.id.toString(), input.triggeredById);
if (!membership || !isLeagueStewardOrHigherRole(membership.role)) {
return Result.err({
code: 'INSUFFICIENT_PERMISSIONS',
@@ -90,7 +92,7 @@ export class SendPerformanceSummaryUseCase {
}
const results = await this.resultRepository.findByRaceId(mainRaceSession.id);
const driverResult = results.find(r => r.driverId === input.driverId);
const driverResult = results.find(r => r.driverId.toString() === input.driverId);
if (!driverResult) {
return Result.err({
@@ -101,11 +103,11 @@ export class SendPerformanceSummaryUseCase {
let notificationsSent = 0;
await this.sendPerformanceSummaryNotification(input.driverId, raceEvent, driverResult, league.id);
await this.sendPerformanceSummaryNotification(input.driverId, raceEvent, driverResult, league.id.toString());
notificationsSent += 1;
const result: SendPerformanceSummaryResult = {
leagueId: league.id,
leagueId: league.id.toString(),
raceId: raceEvent.id,
driverId: input.driverId,
notificationsSent,
@@ -131,10 +133,12 @@ export class SendPerformanceSummaryUseCase {
const positionChange = driverResult?.getPositionChange() ?? 0;
const incidents = driverResult?.incidents ?? 0;
const provisionalRatingChange = this.calculateProvisionalRatingChange(driverResult?.position, driverResult?.incidents);
const provisionalRatingChange = this.calculateProvisionalRatingChange(driverResult?.position?.toNumber(), driverResult?.incidents?.toNumber());
const title = `Race Complete: ${raceEvent.name}`;
const body = this.buildPerformanceSummaryBody(position, positionChange, incidents, provisionalRatingChange);
const positionValue = position instanceof Position ? position.toNumber() : position;
const incidentValue = incidents instanceof IncidentCount ? incidents.toNumber() : incidents;
const body = this.buildPerformanceSummaryBody(positionValue, positionChange, incidentValue, provisionalRatingChange);
await this.notificationService.sendNotification({
recipientId: driverId,
@@ -147,9 +151,9 @@ export class SendPerformanceSummaryUseCase {
raceEventId: raceEvent.id,
sessionId: raceEvent.getMainRaceSession()?.id ?? '',
leagueId,
position,
position: positionValue,
positionChange,
incidents,
incidents: incidentValue,
provisionalRatingChange,
},
actions: [