website refactor

This commit is contained in:
2026-01-16 23:30:55 +01:00
parent 9edf64130f
commit b22c705674
86 changed files with 407 additions and 301 deletions

View File

@@ -2,16 +2,16 @@ import type { Provider } from '@nestjs/common';
// Import core interfaces
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/domain/Logger';
// Import concrete in-memory implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
@@ -149,8 +149,8 @@ export const RaceProviders: Provider[] = [
{
provide: GetAllRacesUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
logger: Logger,
) => {
return new GetAllRacesUseCase(raceRepo, leagueRepo, logger);
@@ -160,7 +160,7 @@ export const RaceProviders: Provider[] = [
{
provide: GetTotalRacesUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRepo: RaceRepository,
) => {
return new GetTotalRacesUseCase(raceRepo);
},
@@ -169,11 +169,11 @@ export const RaceProviders: Provider[] = [
{
provide: ImportRaceResultsApiUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
resultRepo: IResultRepository,
driverRepo: IDriverRepository,
standingRepo: IStandingRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
resultRepo: ResultRepository,
driverRepo: DriverRepository,
standingRepo: StandingRepository,
logger: Logger,
) => {
return new ImportRaceResultsApiUseCase(
@@ -197,12 +197,12 @@ export const RaceProviders: Provider[] = [
{
provide: GetRaceDetailUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
driverRepo: IDriverRepository,
raceRegRepo: IRaceRegistrationRepository,
resultRepo: IResultRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
driverRepo: DriverRepository,
raceRegRepo: RaceRegistrationRepository,
resultRepo: ResultRepository,
leagueMembershipRepo: LeagueMembershipRepository,
) => {
return new GetRaceDetailUseCase(
raceRepo,
@@ -225,8 +225,8 @@ export const RaceProviders: Provider[] = [
{
provide: GetRacesPageDataUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
logger: Logger,
) => {
return new GetRacesPageDataUseCase(
@@ -240,8 +240,8 @@ export const RaceProviders: Provider[] = [
{
provide: GetAllRacesPageDataUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
logger: Logger,
) => {
return new GetAllRacesPageDataUseCase(
@@ -255,11 +255,11 @@ export const RaceProviders: Provider[] = [
{
provide: GetRaceResultsDetailUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
resultRepo: IResultRepository,
driverRepo: IDriverRepository,
penaltyRepo: IPenaltyRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
resultRepo: ResultRepository,
driverRepo: DriverRepository,
penaltyRepo: PenaltyRepository,
) => {
return new GetRaceResultsDetailUseCase(
raceRepo,
@@ -280,9 +280,9 @@ export const RaceProviders: Provider[] = [
{
provide: GetRaceWithSOFUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRegRepo: IRaceRegistrationRepository,
resultRepo: IResultRepository,
raceRepo: RaceRepository,
raceRegRepo: RaceRegistrationRepository,
resultRepo: ResultRepository,
driverRatingProvider: DriverRatingProvider,
) => {
return new GetRaceWithSOFUseCase(
@@ -305,8 +305,8 @@ export const RaceProviders: Provider[] = [
{
provide: GetRaceProtestsUseCase,
useFactory: (
protestRepo: IProtestRepository,
driverRepo: IDriverRepository,
protestRepo: ProtestRepository,
driverRepo: DriverRepository,
) => {
return new GetRaceProtestsUseCase(
protestRepo,
@@ -318,8 +318,8 @@ export const RaceProviders: Provider[] = [
{
provide: GetRacePenaltiesUseCase,
useFactory: (
penaltyRepo: IPenaltyRepository,
driverRepo: IDriverRepository,
penaltyRepo: PenaltyRepository,
driverRepo: DriverRepository,
) => {
return new GetRacePenaltiesUseCase(
penaltyRepo,
@@ -331,8 +331,8 @@ export const RaceProviders: Provider[] = [
{
provide: RegisterForRaceUseCase,
useFactory: (
raceRegRepo: IRaceRegistrationRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRegRepo: RaceRegistrationRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => {
return new RegisterForRaceUseCase(
@@ -346,8 +346,8 @@ export const RaceProviders: Provider[] = [
{
provide: WithdrawFromRaceUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRegRepo: IRaceRegistrationRepository,
raceRepo: RaceRepository,
raceRegRepo: RaceRegistrationRepository,
logger: Logger,
) => {
return new WithdrawFromRaceUseCase(
@@ -361,7 +361,7 @@ export const RaceProviders: Provider[] = [
{
provide: CancelRaceUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRepo: RaceRepository,
logger: Logger,
) => {
return new CancelRaceUseCase(
@@ -374,10 +374,10 @@ export const RaceProviders: Provider[] = [
{
provide: CompleteRaceUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRegRepo: IRaceRegistrationRepository,
resultRepo: IResultRepository,
standingRepo: IStandingRepository,
raceRepo: RaceRepository,
raceRegRepo: RaceRegistrationRepository,
resultRepo: ResultRepository,
standingRepo: StandingRepository,
driverRatingProvider: DriverRatingProvider,
) => {
return new CompleteRaceUseCase(
@@ -402,7 +402,7 @@ export const RaceProviders: Provider[] = [
{
provide: ReopenRaceUseCase,
useFactory: (
raceRepo: IRaceRepository,
raceRepo: RaceRepository,
logger: Logger,
) => {
return new ReopenRaceUseCase(
@@ -415,11 +415,11 @@ export const RaceProviders: Provider[] = [
{
provide: ImportRaceResultsUseCase,
useFactory: (
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
resultRepo: IResultRepository,
driverRepo: IDriverRepository,
standingRepo: IStandingRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
resultRepo: ResultRepository,
driverRepo: DriverRepository,
standingRepo: StandingRepository,
logger: Logger,
) => {
return new ImportRaceResultsUseCase(
@@ -443,9 +443,9 @@ export const RaceProviders: Provider[] = [
{
provide: FileProtestUseCase,
useFactory: (
protestRepo: IProtestRepository,
raceRepo: IRaceRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
protestRepo: ProtestRepository,
raceRepo: RaceRepository,
leagueMembershipRepo: LeagueMembershipRepository,
) => {
return new FileProtestUseCase(
protestRepo,
@@ -458,9 +458,9 @@ export const RaceProviders: Provider[] = [
{
provide: QuickPenaltyUseCase,
useFactory: (
penaltyRepo: IPenaltyRepository,
raceRepo: IRaceRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
penaltyRepo: PenaltyRepository,
raceRepo: RaceRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => {
return new QuickPenaltyUseCase(
@@ -475,10 +475,10 @@ export const RaceProviders: Provider[] = [
{
provide: ApplyPenaltyUseCase,
useFactory: (
penaltyRepo: IPenaltyRepository,
protestRepo: IProtestRepository,
raceRepo: IRaceRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
penaltyRepo: PenaltyRepository,
protestRepo: ProtestRepository,
raceRepo: RaceRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => {
return new ApplyPenaltyUseCase(
@@ -494,9 +494,9 @@ export const RaceProviders: Provider[] = [
{
provide: RequestProtestDefenseUseCase,
useFactory: (
protestRepo: IProtestRepository,
raceRepo: IRaceRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
protestRepo: ProtestRepository,
raceRepo: RaceRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => {
return new RequestProtestDefenseUseCase(
@@ -511,9 +511,9 @@ export const RaceProviders: Provider[] = [
{
provide: ReviewProtestUseCase,
useFactory: (
protestRepo: IProtestRepository,
raceRepo: IRaceRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
protestRepo: ProtestRepository,
raceRepo: RaceRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => {
return new ReviewProtestUseCase(

View File

@@ -8,7 +8,7 @@ import { RegisterForRaceParamsDTO } from './dtos/RegisterForRaceParamsDTO';
import { WithdrawFromRaceParamsDTO } from './dtos/WithdrawFromRaceParamsDTO';
// Core imports
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type { Logger } from '@core/shared/domain/Logger';
// Use cases
import { CancelRaceUseCase } from '@core/racing/application/use-cases/CancelRaceUseCase';

View File

@@ -1,5 +1,5 @@
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type { ImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type { GetRaceDetailResult } from '@core/racing/application/use-cases/GetRaceDetailUseCase';
import type { GetRaceDetailParamsDTO } from '../dtos/GetRaceDetailParamsDTO';
import type { RaceDetailDTO } from '../dtos/RaceDetailDTO';
@@ -16,7 +16,7 @@ export class RaceDetailPresenter {
constructor(
private readonly driverRatingProvider: DriverRatingProvider,
private readonly imageService: IImageServicePort,
private readonly imageService: ImageServicePort,
private readonly params: GetRaceDetailParamsDTO,
) {}

View File

@@ -13,7 +13,7 @@ export class RacePenaltiesPresenter {
present(result: GetRacePenaltiesResult): void {
const penalties: RacePenaltyDTO[] = result.penalties.map(penalty => ({
id: penalty.id,
id: penalty.id.toString(),
driverId: penalty.driverId,
type: penalty.type,
value: penalty.value ?? 0,

View File

@@ -1,4 +1,4 @@
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type { ImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type {
GetRaceResultsDetailErrorCode,
GetRaceResultsDetailResult,
@@ -17,7 +17,7 @@ export type GetRaceResultsDetailApplicationError = ApplicationErrorCode<
export class RaceResultsDetailPresenter {
private result: GetRaceResultsDetailResult | null = null;
constructor(private readonly imageService: IImageServicePort) {}
constructor(private readonly imageService: ImageServicePort) {}
present(result: GetRaceResultsDetailResult): void {
this.result = result;