This commit is contained in:
2025-12-16 21:05:01 +01:00
parent f61e3a4e5a
commit 7532c7ed6d
207 changed files with 7861 additions and 2606 deletions

View File

@@ -8,15 +8,13 @@ import type { IRaceRegistrationRepository } from '../../domain/repositories/IRac
import type { IImageServicePort } from '../ports/IImageServicePort';
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import { Result } from '@core/shared/result/Result';
import { RacingDomainError } from '../../domain/errors/RacingDomainError';
import { Result } from '@core/shared/application/Result';
import { League } from '../../domain/entities/League';
import { Race } from '../../domain/entities/Race';
import { Result as RaceResult } from '../../domain/entities/Result';
import { Driver } from '../../domain/entities/Driver';
import { Standing } from '../../domain/entities/Standing';
import type { FeedItem } from '@core/social/domain/types/FeedItem';
import type { DashboardOverviewParams } from './DashboardOverviewParams';
import type {
DashboardOverviewViewModel,
DashboardDriverSummaryViewModel,
@@ -28,6 +26,10 @@ import type {
DashboardFriendSummaryViewModel,
} from '../presenters/IDashboardOverviewPresenter';
interface DashboardOverviewParams {
driverId: string;
}
interface DashboardDriverStatsAdapter {
rating: number | null;
wins: number;
@@ -52,7 +54,7 @@ export class DashboardOverviewUseCase {
private readonly getDriverStats: (driverId: string) => DashboardDriverStatsAdapter | null,
) {}
async execute(params: DashboardOverviewParams): Promise<Result<DashboardOverviewViewModel, RacingDomainError>> {
async execute(params: DashboardOverviewParams): Promise<Result<DashboardOverviewViewModel>> {
const { driverId } = params;
const [driver, allLeagues, allRaces, allResults, feedItems, friends] = await Promise.all([
@@ -285,13 +287,13 @@ export class DashboardOverviewUseCase {
id: item.id,
type: item.type,
headline: item.headline,
body: item.body,
timestamp:
item.timestamp instanceof Date
? item.timestamp.toISOString()
: new Date(item.timestamp).toISOString(),
ctaLabel: item.ctaLabel,
ctaHref: item.ctaHref,
...(item.body !== undefined ? { body: item.body } : {}),
...(item.ctaLabel !== undefined ? { ctaLabel: item.ctaLabel } : {}),
...(item.ctaHref !== undefined ? { ctaHref: item.ctaHref } : {}),
}));
return {