website refactor

This commit is contained in:
2026-01-16 19:46:49 +01:00
parent 26fc726556
commit 77a923e6a3
563 changed files with 1643 additions and 2259 deletions

View File

@@ -1,12 +1,12 @@
import type { DomainService } from '@core/shared/domain/Service';
import type { UserRatingRepository } from '../repositories/UserRatingRepository';
import { RatingEvent } from '../entities/RatingEvent';
import type { RatingEventRepository } from '../repositories/RatingEventRepository';
import type { UserRatingRepository } from '../repositories/UserRatingRepository';
import { RatingDelta } from '../value-objects/RatingDelta';
import { RatingDimensionKey } from '../value-objects/RatingDimensionKey';
import { RatingEventId } from '../value-objects/RatingEventId';
import { RatingEventFactory } from './RatingEventFactory';
import { RatingSnapshotCalculator } from './RatingSnapshotCalculator';
import { RatingEvent } from '../entities/RatingEvent';
import { RatingEventId } from '../value-objects/RatingEventId';
import { RatingDimensionKey } from '../value-objects/RatingDimensionKey';
import { RatingDelta } from '../value-objects/RatingDelta';
/**
* Domain Service: RatingUpdateService
@@ -112,20 +112,6 @@ export class RatingUpdateService implements DomainService {
}
}
/**
* Update individual driver rating based on race result (LEGACY - DEPRECATED)
* Kept for backward compatibility but now uses event-based approach
*/
private async updateDriverRating(result: {
driverId: string;
position: number;
totalDrivers: number;
incidents: number;
startPosition: number;
}): Promise<void> {
// Delegate to new event-based approach
await this.updateDriverRatingsAfterRace([result]);
}
/**
* Update trust score based on sportsmanship actions (USES LEDGER)
@@ -193,34 +179,5 @@ export class RatingUpdateService implements DomainService {
await this.userRatingRepository.save(snapshot);
}
/**
* Calculate performance score based on finishing position and field strength
* (Utility method kept for reference, but now handled by RatingEventFactory)
*/
private calculatePerformanceScore(
position: number,
totalDrivers: number,
startPosition: number
): number {
const positionScore = ((totalDrivers - position + 1) / totalDrivers) * 100;
const positionsGained = startPosition - position;
const gainBonus = Math.max(0, positionsGained * 2);
const fieldStrengthMultiplier = 0.8 + (totalDrivers / 50);
const rawScore = (positionScore + gainBonus) * fieldStrengthMultiplier;
return Math.max(0, Math.min(100, rawScore));
}
/**
* Calculate fairness score based on incident involvement
* (Utility method kept for reference, but now handled by RatingEventFactory)
*/
private calculateFairnessScore(incidents: number, totalDrivers: number): number {
let fairnessScore = 100;
fairnessScore -= incidents * 15;
const incidentRate = incidents / totalDrivers;
if (incidentRate > 0.5) {
fairnessScore -= 20;
}
return Math.max(0, Math.min(100, fairnessScore));
}
}