From b22c705674a6de4f64ed348ab4b54ac15f9144d1 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Fri, 16 Jan 2026 23:30:55 +0100 Subject: [PATCH] website refactor --- .../presenters/DashboardStatsPresenter.ts | 2 +- .../admin/presenters/ListUsersPresenter.ts | 2 +- .../use-cases/GetDashboardStatsUseCase.ts | 4 +- .../domain/analytics/AnalyticsProviders.ts | 2 +- apps/api/src/domain/auth/AuthProviders.ts | 2 +- apps/api/src/domain/auth/AuthService.ts | 2 +- .../auth/presenters/AuthSessionPresenter.ts | 2 +- .../auth/presenters/CommandResultPresenter.ts | 2 +- .../presenters/ForgotPasswordPresenter.ts | 2 +- .../auth/presenters/ResetPasswordPresenter.ts | 2 +- .../src/domain/bootstrap/BootstrapModule.ts | 2 +- .../domain/bootstrap/BootstrapProviders.ts | 2 +- .../domain/dashboard/DashboardProviders.ts | 2 +- .../src/domain/dashboard/DashboardService.ts | 2 +- apps/api/src/domain/driver/DriverService.ts | 2 +- apps/api/src/domain/league/LeagueProviders.ts | 2 +- apps/api/src/domain/league/LeagueService.ts | 2 +- ...lLeaguesWithCapacityAndScoringPresenter.ts | 2 +- .../AllLeaguesWithCapacityPresenter.ts | 2 +- .../ApproveLeagueJoinRequestPresenter.ts | 2 +- .../GetLeagueAdminPermissionsPresenter.ts | 2 +- .../GetLeagueMembershipsPresenter.ts | 2 +- .../GetLeagueOwnerSummaryPresenter.ts | 2 +- .../presenters/GetLeagueWalletPresenter.ts | 2 +- .../GetSeasonSponsorshipsPresenter.ts | 2 +- .../league/presenters/JoinLeaguePresenter.ts | 2 +- .../presenters/LeagueConfigPresenter.ts | 2 +- .../presenters/LeagueJoinRequestsPresenter.ts | 2 +- .../presenters/LeagueOwnerSummaryPresenter.ts | 2 +- .../LeagueRosterAdminReadPresenters.ts | 2 +- .../presenters/LeagueSchedulePresenter.ts | 2 +- .../LeagueScoringConfigPresenter.ts | 2 +- .../LeagueScoringPresetsPresenter.ts | 2 +- .../LeagueSeasonScheduleMutationPresenters.ts | 2 +- .../RejectLeagueJoinRequestPresenter.ts | 2 +- .../presenters/RemoveLeagueMemberPresenter.ts | 2 +- .../TransferLeagueOwnershipPresenter.ts | 2 +- .../UpdateLeagueMemberRolePresenter.ts | 2 +- .../WithdrawFromLeagueWalletPresenter.ts | 2 +- apps/api/src/domain/media/MediaController.ts | 2 +- apps/api/src/domain/media/MediaProviders.ts | 28 ++-- apps/api/src/domain/media/MediaService.ts | 2 +- .../notifications/NotificationsProviders.ts | 10 +- .../src/domain/payments/PaymentsProviders.ts | 32 ++-- .../src/domain/payments/PaymentsService.ts | 2 +- .../presenters/CreatePaymentPresenter.ts | 2 +- .../presenters/GetPaymentsPresenter.ts | 2 +- .../UpdatePaymentStatusPresenter.ts | 2 +- .../src/domain/protests/ProtestsProviders.ts | 14 +- .../domain/protests/ProtestsService.test.ts | 2 +- .../src/domain/protests/ProtestsService.ts | 2 +- .../presenters/ReviewProtestPresenter.ts | 2 +- apps/api/src/domain/race/RaceProviders.ts | 142 +++++++++--------- apps/api/src/domain/race/RaceService.ts | 2 +- .../race/presenters/RaceDetailPresenter.ts | 4 +- .../race/presenters/RacePenaltiesPresenter.ts | 2 +- .../presenters/RaceResultsDetailPresenter.ts | 4 +- .../src/domain/sponsor/SponsorProviders.ts | 100 ++++++------ .../src/domain/sponsor/SponsorService.test.ts | 2 +- apps/api/src/domain/sponsor/SponsorService.ts | 2 +- apps/api/src/domain/team/TeamProviders.ts | 28 ++-- apps/api/src/domain/team/TeamService.test.ts | 2 +- apps/api/src/domain/team/TeamService.ts | 2 +- .../team/presenters/AllTeamsPresenter.ts | 2 +- .../team/presenters/CreateTeamPresenter.ts | 2 +- .../team/presenters/DriverTeamPresenter.ts | 2 +- .../team/presenters/TeamDetailsPresenter.ts | 2 +- .../presenters/TeamJoinRequestsPresenter.ts | 2 +- .../team/presenters/TeamMembersPresenter.ts | 2 +- .../presenters/TeamMembershipPresenter.ts | 2 +- .../presenters/TeamsLeaderboardPresenter.ts | 2 +- .../team/presenters/UpdateTeamPresenter.ts | 2 +- .../InMemoryAchievementPersistenceModule.ts | 2 +- .../InMemoryAnalyticsPersistenceModule.ts | 2 +- .../InMemoryIdentityPersistenceModule.ts | 2 +- .../InMemoryMediaPersistenceModule.ts | 14 +- .../InMemoryNotificationsPersistenceModule.ts | 14 +- .../InMemoryPaymentsPersistenceModule.ts | 24 +-- .../InMemoryRacingPersistenceModule.ts | 2 +- .../InMemorySocialPersistenceModule.ts | 10 +- .../PostgresIdentityPersistenceModule.ts | 2 +- .../PostgresNotificationsPersistenceModule.ts | 10 +- .../PostgresPaymentsPersistenceModule.ts | 20 +-- .../PostgresRacingPersistenceModule.ts | 2 +- ...tgresSocialPersistence.integration.test.ts | 8 +- my_tsc_output.txt | 106 +++++++++++++ 86 files changed, 407 insertions(+), 301 deletions(-) create mode 100644 my_tsc_output.txt diff --git a/apps/api/src/domain/admin/presenters/DashboardStatsPresenter.ts b/apps/api/src/domain/admin/presenters/DashboardStatsPresenter.ts index 44bbdf223..b4c857bbc 100644 --- a/apps/api/src/domain/admin/presenters/DashboardStatsPresenter.ts +++ b/apps/api/src/domain/admin/presenters/DashboardStatsPresenter.ts @@ -1,4 +1,4 @@ -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { DashboardStatsResult } from '../use-cases/GetDashboardStatsUseCase'; export interface DashboardStatsResponse { diff --git a/apps/api/src/domain/admin/presenters/ListUsersPresenter.ts b/apps/api/src/domain/admin/presenters/ListUsersPresenter.ts index c1effbd93..3e85c8072 100644 --- a/apps/api/src/domain/admin/presenters/ListUsersPresenter.ts +++ b/apps/api/src/domain/admin/presenters/ListUsersPresenter.ts @@ -1,6 +1,6 @@ import { ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase'; import type { AdminUser } from '@core/admin/domain/entities/AdminUser'; -import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto'; export type ListUsersViewModel = UserListResponseDto; diff --git a/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts b/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts index 90a794a13..85b25ef34 100644 --- a/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts +++ b/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts @@ -1,10 +1,10 @@ +import type { AdminUser } from '@core/admin/domain/entities/AdminUser'; import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository'; import { AuthorizationService } from '@core/admin/domain/services/AuthorizationService'; import { UserId } from '@core/admin/domain/value-objects/UserId'; +import type { UserRole } from '@core/admin/domain/value-objects/UserRole'; import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { AdminUser } from '@core/admin/domain/entities/AdminUser'; -import type { UserRole } from '@core/admin/domain/value-objects/UserRole'; export interface DashboardStatsResult { totalUsers: number; diff --git a/apps/api/src/domain/analytics/AnalyticsProviders.ts b/apps/api/src/domain/analytics/AnalyticsProviders.ts index 0097b7f1f..2bdbe96a0 100644 --- a/apps/api/src/domain/analytics/AnalyticsProviders.ts +++ b/apps/api/src/domain/analytics/AnalyticsProviders.ts @@ -1,6 +1,6 @@ import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository'; import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { Provider } from '@nestjs/common'; import { diff --git a/apps/api/src/domain/auth/AuthProviders.ts b/apps/api/src/domain/auth/AuthProviders.ts index c62e1ecbb..c93c72f26 100644 --- a/apps/api/src/domain/auth/AuthProviders.ts +++ b/apps/api/src/domain/auth/AuthProviders.ts @@ -13,7 +13,7 @@ import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepo import type { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository'; import type { MagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository'; import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { AUTH_REPOSITORY_TOKEN, diff --git a/apps/api/src/domain/auth/AuthService.ts b/apps/api/src/domain/auth/AuthService.ts index 058a233d9..e46dfea4a 100644 --- a/apps/api/src/domain/auth/AuthService.ts +++ b/apps/api/src/domain/auth/AuthService.ts @@ -1,6 +1,6 @@ import { Inject } from '@nestjs/common'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { ForgotPasswordUseCase, diff --git a/apps/api/src/domain/auth/presenters/AuthSessionPresenter.ts b/apps/api/src/domain/auth/presenters/AuthSessionPresenter.ts index 949c0286c..9471100b0 100644 --- a/apps/api/src/domain/auth/presenters/AuthSessionPresenter.ts +++ b/apps/api/src/domain/auth/presenters/AuthSessionPresenter.ts @@ -1,7 +1,7 @@ import type { LoginResult } from '@core/identity/application/use-cases/LoginUseCase'; import type { SignupSponsorResult } from '@core/identity/application/use-cases/SignupSponsorUseCase'; import type { SignupResult } from '@core/identity/application/use-cases/SignupUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { AuthenticatedUserDTO } from '../dtos/AuthDto'; type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult; diff --git a/apps/api/src/domain/auth/presenters/CommandResultPresenter.ts b/apps/api/src/domain/auth/presenters/CommandResultPresenter.ts index b5fe2257f..b73dd16c8 100644 --- a/apps/api/src/domain/auth/presenters/CommandResultPresenter.ts +++ b/apps/api/src/domain/auth/presenters/CommandResultPresenter.ts @@ -1,5 +1,5 @@ import type { LogoutResult } from '@core/identity/application/use-cases/LogoutUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; export interface CommandResultDTO { success: boolean; diff --git a/apps/api/src/domain/auth/presenters/ForgotPasswordPresenter.ts b/apps/api/src/domain/auth/presenters/ForgotPasswordPresenter.ts index a882d5c3b..d29416c8b 100644 --- a/apps/api/src/domain/auth/presenters/ForgotPasswordPresenter.ts +++ b/apps/api/src/domain/auth/presenters/ForgotPasswordPresenter.ts @@ -1,5 +1,5 @@ import { ForgotPasswordResult } from '@core/identity/application/use-cases/ForgotPasswordUseCase'; -import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { Injectable } from '@nestjs/common'; @Injectable() diff --git a/apps/api/src/domain/auth/presenters/ResetPasswordPresenter.ts b/apps/api/src/domain/auth/presenters/ResetPasswordPresenter.ts index e59035476..b2a817a53 100644 --- a/apps/api/src/domain/auth/presenters/ResetPasswordPresenter.ts +++ b/apps/api/src/domain/auth/presenters/ResetPasswordPresenter.ts @@ -1,5 +1,5 @@ import { ResetPasswordResult } from '@core/identity/application/use-cases/ResetPasswordUseCase'; -import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { Injectable } from '@nestjs/common'; @Injectable() diff --git a/apps/api/src/domain/bootstrap/BootstrapModule.ts b/apps/api/src/domain/bootstrap/BootstrapModule.ts index fbb393bae..690787753 100644 --- a/apps/api/src/domain/bootstrap/BootstrapModule.ts +++ b/apps/api/src/domain/bootstrap/BootstrapModule.ts @@ -1,4 +1,4 @@ -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { Inject, Module, OnModuleInit } from '@nestjs/common'; import type { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData'; import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers'; diff --git a/apps/api/src/domain/bootstrap/BootstrapProviders.ts b/apps/api/src/domain/bootstrap/BootstrapProviders.ts index 98789315f..f0096b442 100644 --- a/apps/api/src/domain/bootstrap/BootstrapProviders.ts +++ b/apps/api/src/domain/bootstrap/BootstrapProviders.ts @@ -5,7 +5,7 @@ import { type AchievementRepository, } from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase'; import type { UserRepository } from '@core/identity/domain/repositories/UserRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { Provider } from '@nestjs/common'; import { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData'; import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers'; diff --git a/apps/api/src/domain/dashboard/DashboardProviders.ts b/apps/api/src/domain/dashboard/DashboardProviders.ts index 50f73fde5..9d6884ce1 100644 --- a/apps/api/src/domain/dashboard/DashboardProviders.ts +++ b/apps/api/src/domain/dashboard/DashboardProviders.ts @@ -8,7 +8,7 @@ import { RaceRegistrationRepository } from '@core/racing/domain/repositories/Rac import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; import { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; import { StandingRepository } from '@core/racing/domain/repositories/StandingRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; diff --git a/apps/api/src/domain/dashboard/DashboardService.ts b/apps/api/src/domain/dashboard/DashboardService.ts index b88d99399..537e026e4 100644 --- a/apps/api/src/domain/dashboard/DashboardService.ts +++ b/apps/api/src/domain/dashboard/DashboardService.ts @@ -4,7 +4,7 @@ import { DashboardOverviewDTO } from './dtos/DashboardOverviewDTO'; import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter'; // Core imports -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; // Tokens (standalone to avoid circular imports) import { diff --git a/apps/api/src/domain/driver/DriverService.ts b/apps/api/src/domain/driver/DriverService.ts index 0f2616cc9..8a3a0e01b 100644 --- a/apps/api/src/domain/driver/DriverService.ts +++ b/apps/api/src/domain/driver/DriverService.ts @@ -30,7 +30,7 @@ import { DriverStatsPresenter } from './presenters/DriverStatsPresenter'; import { GetDriverLiveriesPresenter } from './presenters/GetDriverLiveriesPresenter'; // Tokens -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { COMPLETE_DRIVER_ONBOARDING_USE_CASE_TOKEN, GET_DRIVER_LIVERIES_USE_CASE_TOKEN, diff --git a/apps/api/src/domain/league/LeagueProviders.ts b/apps/api/src/domain/league/LeagueProviders.ts index 201d36a3e..4fe67c666 100644 --- a/apps/api/src/domain/league/LeagueProviders.ts +++ b/apps/api/src/domain/league/LeagueProviders.ts @@ -13,7 +13,7 @@ import type { RaceRepository } from '@core/racing/domain/repositories/RaceReposi import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; // Import concrete in-memory implementations import { getLeagueScoringPresetById, listLeagueScoringPresets } from '@adapters/bootstrap/LeagueScoringPresets'; diff --git a/apps/api/src/domain/league/LeagueService.ts b/apps/api/src/domain/league/LeagueService.ts index 90f4547e5..a39ec2963 100644 --- a/apps/api/src/domain/league/LeagueService.ts +++ b/apps/api/src/domain/league/LeagueService.ts @@ -58,7 +58,7 @@ import type { LeagueScoringConfigViewModel } from './presenters/LeagueScoringCon import type { LeagueScoringPresetsViewModel } from './presenters/LeagueScoringPresetsPresenter'; // Core imports -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; // Use cases import { ApproveLeagueJoinRequestUseCase } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase'; diff --git a/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityAndScoringPresenter.ts b/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityAndScoringPresenter.ts index 1f6ed5f99..5d347eb77 100644 --- a/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityAndScoringPresenter.ts +++ b/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityAndScoringPresenter.ts @@ -1,7 +1,7 @@ import { MediaReference } from '@core/domain/media/MediaReference'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; import type { GetAllLeaguesWithCapacityAndScoringResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { AllLeaguesWithCapacityAndScoringDTO, LeagueWithCapacityAndScoringDTO, diff --git a/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityPresenter.ts b/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityPresenter.ts index 10956f4d6..27ff2ea16 100644 --- a/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityPresenter.ts +++ b/apps/api/src/domain/league/presenters/AllLeaguesWithCapacityPresenter.ts @@ -1,5 +1,5 @@ import type { GetAllLeaguesWithCapacityResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { AllLeaguesWithCapacityDTO, LeagueWithCapacityDTO } from '../dtos/AllLeaguesWithCapacityDTO'; export class AllLeaguesWithCapacityPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/ApproveLeagueJoinRequestPresenter.ts b/apps/api/src/domain/league/presenters/ApproveLeagueJoinRequestPresenter.ts index 1f471c254..525bd051f 100644 --- a/apps/api/src/domain/league/presenters/ApproveLeagueJoinRequestPresenter.ts +++ b/apps/api/src/domain/league/presenters/ApproveLeagueJoinRequestPresenter.ts @@ -1,6 +1,6 @@ import { ApproveLeagueJoinRequestResult } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { ApproveLeagueJoinRequestDTO } from '../dtos/ApproveLeagueJoinRequestDTO'; export class ApproveLeagueJoinRequestPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/GetLeagueAdminPermissionsPresenter.ts b/apps/api/src/domain/league/presenters/GetLeagueAdminPermissionsPresenter.ts index ff23d7264..049adb9bd 100644 --- a/apps/api/src/domain/league/presenters/GetLeagueAdminPermissionsPresenter.ts +++ b/apps/api/src/domain/league/presenters/GetLeagueAdminPermissionsPresenter.ts @@ -1,5 +1,5 @@ import type { GetLeagueAdminPermissionsResult } from '@core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { LeagueAdminPermissionsDTO } from '../dtos/LeagueAdminPermissionsDTO'; export class GetLeagueAdminPermissionsPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.ts b/apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.ts index f7428ee80..8af67ba37 100644 --- a/apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.ts +++ b/apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.ts @@ -1,5 +1,5 @@ import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO'; import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO'; diff --git a/apps/api/src/domain/league/presenters/GetLeagueOwnerSummaryPresenter.ts b/apps/api/src/domain/league/presenters/GetLeagueOwnerSummaryPresenter.ts index f431effd5..23015d2f5 100644 --- a/apps/api/src/domain/league/presenters/GetLeagueOwnerSummaryPresenter.ts +++ b/apps/api/src/domain/league/presenters/GetLeagueOwnerSummaryPresenter.ts @@ -1,5 +1,5 @@ import type { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO'; export class GetLeagueOwnerSummaryPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/GetLeagueWalletPresenter.ts b/apps/api/src/domain/league/presenters/GetLeagueWalletPresenter.ts index cab5abce7..a39dc501c 100644 --- a/apps/api/src/domain/league/presenters/GetLeagueWalletPresenter.ts +++ b/apps/api/src/domain/league/presenters/GetLeagueWalletPresenter.ts @@ -1,5 +1,5 @@ import type { GetLeagueWalletResult } from '@core/racing/application/use-cases/GetLeagueWalletUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { GetLeagueWalletOutputDTO, WalletTransactionDTO } from '../dtos/GetLeagueWalletOutputDTO'; export class GetLeagueWalletPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/GetSeasonSponsorshipsPresenter.ts b/apps/api/src/domain/league/presenters/GetSeasonSponsorshipsPresenter.ts index 2aedc8878..9307ac497 100644 --- a/apps/api/src/domain/league/presenters/GetSeasonSponsorshipsPresenter.ts +++ b/apps/api/src/domain/league/presenters/GetSeasonSponsorshipsPresenter.ts @@ -1,5 +1,5 @@ import type { GetSeasonSponsorshipsResult } from '@core/racing/application/use-cases/GetSeasonSponsorshipsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { SponsorshipDetailDTO } from '../../sponsor/dtos/SponsorshipDetailDTO'; import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO'; diff --git a/apps/api/src/domain/league/presenters/JoinLeaguePresenter.ts b/apps/api/src/domain/league/presenters/JoinLeaguePresenter.ts index d2b512c3d..6656d4e3d 100644 --- a/apps/api/src/domain/league/presenters/JoinLeaguePresenter.ts +++ b/apps/api/src/domain/league/presenters/JoinLeaguePresenter.ts @@ -1,5 +1,5 @@ import type { JoinLeagueResult } from '@core/racing/application/use-cases/JoinLeagueUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { JoinLeagueOutputDTO } from '../dtos/JoinLeagueOutputDTO'; export class JoinLeaguePresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/LeagueConfigPresenter.ts b/apps/api/src/domain/league/presenters/LeagueConfigPresenter.ts index ceff4d674..847cfa5c5 100644 --- a/apps/api/src/domain/league/presenters/LeagueConfigPresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueConfigPresenter.ts @@ -1,5 +1,5 @@ import type { GetLeagueFullConfigResult } from '@core/racing/application/use-cases/GetLeagueFullConfigUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { LeagueConfigFormModelDTO } from '../dtos/LeagueConfigFormModelDTO'; export class LeagueConfigPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/LeagueJoinRequestsPresenter.ts b/apps/api/src/domain/league/presenters/LeagueJoinRequestsPresenter.ts index e732f2961..b34f6f16d 100644 --- a/apps/api/src/domain/league/presenters/LeagueJoinRequestsPresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueJoinRequestsPresenter.ts @@ -1,5 +1,5 @@ import { GetLeagueJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueJoinRequestsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { LeagueJoinRequestWithDriverDTO } from '../dtos/LeagueJoinRequestWithDriverDTO'; export interface LeagueJoinRequestsViewModel { diff --git a/apps/api/src/domain/league/presenters/LeagueOwnerSummaryPresenter.ts b/apps/api/src/domain/league/presenters/LeagueOwnerSummaryPresenter.ts index b3a3f8833..1c56ffea9 100644 --- a/apps/api/src/domain/league/presenters/LeagueOwnerSummaryPresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueOwnerSummaryPresenter.ts @@ -1,5 +1,5 @@ import { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO'; export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/LeagueRosterAdminReadPresenters.ts b/apps/api/src/domain/league/presenters/LeagueRosterAdminReadPresenters.ts index 63bde9685..0f0d58683 100644 --- a/apps/api/src/domain/league/presenters/LeagueRosterAdminReadPresenters.ts +++ b/apps/api/src/domain/league/presenters/LeagueRosterAdminReadPresenters.ts @@ -1,6 +1,6 @@ import type { GetLeagueRosterJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase'; import type { GetLeagueRosterMembersResult } from '@core/racing/application/use-cases/GetLeagueRosterMembersUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { Injectable } from '@nestjs/common'; import type { DriverDTO } from '../../driver/dtos/DriverDTO'; import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO'; diff --git a/apps/api/src/domain/league/presenters/LeagueSchedulePresenter.ts b/apps/api/src/domain/league/presenters/LeagueSchedulePresenter.ts index bf8ca41f5..8825a636d 100644 --- a/apps/api/src/domain/league/presenters/LeagueSchedulePresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueSchedulePresenter.ts @@ -1,5 +1,5 @@ import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { RaceDTO } from '../../race/dtos/RaceDTO'; import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO'; diff --git a/apps/api/src/domain/league/presenters/LeagueScoringConfigPresenter.ts b/apps/api/src/domain/league/presenters/LeagueScoringConfigPresenter.ts index c73d9d0d6..ae4b7f5ef 100644 --- a/apps/api/src/domain/league/presenters/LeagueScoringConfigPresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueScoringConfigPresenter.ts @@ -1,7 +1,7 @@ import type { GetLeagueScoringConfigResult } from '@core/racing/application/use-cases/GetLeagueScoringConfigUseCase'; import type { BonusRule } from '@core/racing/domain/types/BonusRule'; import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; export interface LeagueScoringChampionshipViewModel { id: string; diff --git a/apps/api/src/domain/league/presenters/LeagueScoringPresetsPresenter.ts b/apps/api/src/domain/league/presenters/LeagueScoringPresetsPresenter.ts index eabe7f22a..ce184e18e 100644 --- a/apps/api/src/domain/league/presenters/LeagueScoringPresetsPresenter.ts +++ b/apps/api/src/domain/league/presenters/LeagueScoringPresetsPresenter.ts @@ -1,5 +1,5 @@ import type { ListLeagueScoringPresetsResult } from '@core/racing/application/use-cases/ListLeagueScoringPresetsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { LeagueScoringPresetsDTO } from '../dtos/LeagueScoringPresetsDTO'; export type LeagueScoringPresetsViewModel = LeagueScoringPresetsDTO; diff --git a/apps/api/src/domain/league/presenters/LeagueSeasonScheduleMutationPresenters.ts b/apps/api/src/domain/league/presenters/LeagueSeasonScheduleMutationPresenters.ts index 1a5177f53..c5cc5a9d2 100644 --- a/apps/api/src/domain/league/presenters/LeagueSeasonScheduleMutationPresenters.ts +++ b/apps/api/src/domain/league/presenters/LeagueSeasonScheduleMutationPresenters.ts @@ -1,4 +1,4 @@ -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { CreateLeagueScheduleRaceOutputDTO, diff --git a/apps/api/src/domain/league/presenters/RejectLeagueJoinRequestPresenter.ts b/apps/api/src/domain/league/presenters/RejectLeagueJoinRequestPresenter.ts index c715d05dd..bb10fe32d 100644 --- a/apps/api/src/domain/league/presenters/RejectLeagueJoinRequestPresenter.ts +++ b/apps/api/src/domain/league/presenters/RejectLeagueJoinRequestPresenter.ts @@ -1,5 +1,5 @@ import type { RejectLeagueJoinRequestResult } from '@core/racing/application/use-cases/RejectLeagueJoinRequestUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { RejectJoinRequestOutputDTO } from '../dtos/RejectJoinRequestOutputDTO'; export class RejectLeagueJoinRequestPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/RemoveLeagueMemberPresenter.ts b/apps/api/src/domain/league/presenters/RemoveLeagueMemberPresenter.ts index 09361b78a..7278902e7 100644 --- a/apps/api/src/domain/league/presenters/RemoveLeagueMemberPresenter.ts +++ b/apps/api/src/domain/league/presenters/RemoveLeagueMemberPresenter.ts @@ -1,5 +1,5 @@ import type { RemoveLeagueMemberResult } from '@core/racing/application/use-cases/RemoveLeagueMemberUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { RemoveLeagueMemberOutputDTO } from '../dtos/RemoveLeagueMemberOutputDTO'; export class RemoveLeagueMemberPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/TransferLeagueOwnershipPresenter.ts b/apps/api/src/domain/league/presenters/TransferLeagueOwnershipPresenter.ts index 6859f72c4..746f779c5 100644 --- a/apps/api/src/domain/league/presenters/TransferLeagueOwnershipPresenter.ts +++ b/apps/api/src/domain/league/presenters/TransferLeagueOwnershipPresenter.ts @@ -1,5 +1,5 @@ import type { TransferLeagueOwnershipResult } from '@core/racing/application/use-cases/TransferLeagueOwnershipUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { TransferLeagueOwnershipOutputDTO } from '../dtos/TransferLeagueOwnershipOutputDTO'; export class TransferLeagueOwnershipPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/UpdateLeagueMemberRolePresenter.ts b/apps/api/src/domain/league/presenters/UpdateLeagueMemberRolePresenter.ts index f42d6c15e..09a78afce 100644 --- a/apps/api/src/domain/league/presenters/UpdateLeagueMemberRolePresenter.ts +++ b/apps/api/src/domain/league/presenters/UpdateLeagueMemberRolePresenter.ts @@ -1,5 +1,5 @@ import type { UpdateLeagueMemberRoleResult } from '@core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { UpdateLeagueMemberRoleOutputDTO } from '../dtos/UpdateLeagueMemberRoleOutputDTO'; export class UpdateLeagueMemberRolePresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/league/presenters/WithdrawFromLeagueWalletPresenter.ts b/apps/api/src/domain/league/presenters/WithdrawFromLeagueWalletPresenter.ts index d97bd7553..2cefc186d 100644 --- a/apps/api/src/domain/league/presenters/WithdrawFromLeagueWalletPresenter.ts +++ b/apps/api/src/domain/league/presenters/WithdrawFromLeagueWalletPresenter.ts @@ -1,5 +1,5 @@ import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO'; export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/media/MediaController.ts b/apps/api/src/domain/media/MediaController.ts index 8f2833c29..dc966f758 100644 --- a/apps/api/src/domain/media/MediaController.ts +++ b/apps/api/src/domain/media/MediaController.ts @@ -1,6 +1,6 @@ import { MediaReference } from '@core/domain/media/MediaReference'; import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import { Body, Controller, Delete, Get, HttpStatus, Inject, Param, Post, Put, Res, UploadedFile, UseInterceptors } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { ApiConsumes, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger'; diff --git a/apps/api/src/domain/media/MediaProviders.ts b/apps/api/src/domain/media/MediaProviders.ts index 6346cbcf0..8511e7cf2 100644 --- a/apps/api/src/domain/media/MediaProviders.ts +++ b/apps/api/src/domain/media/MediaProviders.ts @@ -4,11 +4,11 @@ import { Provider } from '@nestjs/common'; import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort'; import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort'; import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort'; -import { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; -import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; -import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository'; +import { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; +import { AvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; +import { MediaRepository } from '@core/media/domain/repositories/MediaRepository'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; // Import use cases import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase'; @@ -78,10 +78,10 @@ class MockAvatarGenerationAdapter implements AvatarGenerationPort { } class MockLogger implements Logger { - debug(): void {} - info(): void {} - warn(): void {} - error(): void {} + debug(message: string, context?: unknown): void {} + info(message: string, context?: unknown): void {} + warn(message: string, context?: unknown): void {} + error(message: string, error?: Error, context?: unknown): void {} } import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter'; @@ -128,37 +128,37 @@ export const MediaProviders: Provider[] = createLoggedProviders([ // Use cases - simplified without output ports { provide: REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN, - useFactory: (avatarRepo: IAvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, logger: Logger) => + useFactory: (avatarRepo: AvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, logger: Logger) => new RequestAvatarGenerationUseCase(avatarRepo, faceValidation, avatarGeneration, logger), inject: [AVATAR_GENERATION_REPOSITORY_TOKEN, FACE_VALIDATION_PORT_TOKEN, AVATAR_GENERATION_PORT_TOKEN, LOGGER_TOKEN], }, { provide: UPLOAD_MEDIA_USE_CASE_TOKEN, - useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) => + useFactory: (mediaRepo: MediaRepository, mediaStorage: MediaStoragePort, logger: Logger) => new UploadMediaUseCase(mediaRepo, mediaStorage, logger), inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN], }, { provide: GET_MEDIA_USE_CASE_TOKEN, - useFactory: (mediaRepo: IMediaRepository, logger: Logger) => + useFactory: (mediaRepo: MediaRepository, logger: Logger) => new GetMediaUseCase(mediaRepo, logger), inject: [MEDIA_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: DELETE_MEDIA_USE_CASE_TOKEN, - useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) => + useFactory: (mediaRepo: MediaRepository, mediaStorage: MediaStoragePort, logger: Logger) => new DeleteMediaUseCase(mediaRepo, mediaStorage, logger), inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN], }, { provide: GET_AVATAR_USE_CASE_TOKEN, - useFactory: (avatarRepo: IAvatarRepository, logger: Logger) => + useFactory: (avatarRepo: AvatarRepository, logger: Logger) => new GetAvatarUseCase(avatarRepo, logger), inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: UPDATE_AVATAR_USE_CASE_TOKEN, - useFactory: (avatarRepo: IAvatarRepository, logger: Logger) => + useFactory: (avatarRepo: AvatarRepository, logger: Logger) => new UpdateAvatarUseCase(avatarRepo, logger), inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN], }, diff --git a/apps/api/src/domain/media/MediaService.ts b/apps/api/src/domain/media/MediaService.ts index c2848e978..050123f07 100644 --- a/apps/api/src/domain/media/MediaService.ts +++ b/apps/api/src/domain/media/MediaService.ts @@ -36,7 +36,7 @@ import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGene import { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter'; import { UploadMediaPresenter } from './presenters/UploadMediaPresenter'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { DELETE_MEDIA_USE_CASE_TOKEN, GET_AVATAR_USE_CASE_TOKEN, diff --git a/apps/api/src/domain/notifications/NotificationsProviders.ts b/apps/api/src/domain/notifications/NotificationsProviders.ts index 9f681f3ac..2009be637 100644 --- a/apps/api/src/domain/notifications/NotificationsProviders.ts +++ b/apps/api/src/domain/notifications/NotificationsProviders.ts @@ -2,8 +2,8 @@ import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; import { GetAllNotificationsUseCase } from '@core/notifications/application/use-cases/GetAllNotificationsUseCase'; import { GetUnreadNotificationsUseCase } from '@core/notifications/application/use-cases/GetUnreadNotificationsUseCase'; import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase'; -import { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; +import type { Logger } from '@core/shared/domain/Logger'; import { Provider } from '@nestjs/common'; import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens'; import { @@ -20,17 +20,17 @@ export const NotificationsProviders: Provider[] = [ }, { provide: GET_UNREAD_NOTIFICATIONS_USE_CASE_TOKEN, - useFactory: (repo: INotificationRepository, logger: Logger) => new GetUnreadNotificationsUseCase(repo, logger), + useFactory: (repo: NotificationRepository, logger: Logger) => new GetUnreadNotificationsUseCase(repo, logger), inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: GET_ALL_NOTIFICATIONS_USE_CASE_TOKEN, - useFactory: (repo: INotificationRepository, logger: Logger) => new GetAllNotificationsUseCase(repo, logger), + useFactory: (repo: NotificationRepository, logger: Logger) => new GetAllNotificationsUseCase(repo, logger), inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: MARK_NOTIFICATION_READ_USE_CASE_TOKEN, - useFactory: (repo: INotificationRepository, logger: Logger) => new MarkNotificationReadUseCase(repo, logger), + useFactory: (repo: NotificationRepository, logger: Logger) => new MarkNotificationReadUseCase(repo, logger), inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN], }, ]; diff --git a/apps/api/src/domain/payments/PaymentsProviders.ts b/apps/api/src/domain/payments/PaymentsProviders.ts index db76dcb99..63145bf44 100644 --- a/apps/api/src/domain/payments/PaymentsProviders.ts +++ b/apps/api/src/domain/payments/PaymentsProviders.ts @@ -1,10 +1,10 @@ import { Provider } from '@nestjs/common'; // Import core interfaces -import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; -import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; -import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository'; +import type { MemberPaymentRepository, MembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; +import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; +import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; // Import use cases import { AwardPrizeUseCase } from '@core/payments/application/use-cases/AwardPrizeUseCase'; @@ -60,65 +60,65 @@ export const PaymentsProviders: Provider[] = [ // Use cases (use cases receive repositories, services receive use cases) { provide: GET_PAYMENTS_USE_CASE_TOKEN, - useFactory: (paymentRepo: IPaymentRepository) => new GetPaymentsUseCase(paymentRepo), + useFactory: (paymentRepo: PaymentRepository) => new GetPaymentsUseCase(paymentRepo), inject: [PAYMENT_REPOSITORY_TOKEN], }, { provide: CREATE_PAYMENT_USE_CASE_TOKEN, - useFactory: (paymentRepo: IPaymentRepository) => new CreatePaymentUseCase(paymentRepo), + useFactory: (paymentRepo: PaymentRepository) => new CreatePaymentUseCase(paymentRepo), inject: [PAYMENT_REPOSITORY_TOKEN], }, { provide: UPDATE_PAYMENT_STATUS_USE_CASE_TOKEN, - useFactory: (paymentRepo: IPaymentRepository) => new UpdatePaymentStatusUseCase(paymentRepo), + useFactory: (paymentRepo: PaymentRepository) => new UpdatePaymentStatusUseCase(paymentRepo), inject: [PAYMENT_REPOSITORY_TOKEN], }, { provide: GET_MEMBERSHIP_FEES_USE_CASE_TOKEN, - useFactory: (membershipFeeRepo: IMembershipFeeRepository, memberPaymentRepo: IMemberPaymentRepository) => + useFactory: (membershipFeeRepo: MembershipFeeRepository, memberPaymentRepo: MemberPaymentRepository) => new GetMembershipFeesUseCase(membershipFeeRepo, memberPaymentRepo), inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN], }, { provide: UPSERT_MEMBERSHIP_FEE_USE_CASE_TOKEN, - useFactory: (membershipFeeRepo: IMembershipFeeRepository) => new UpsertMembershipFeeUseCase(membershipFeeRepo), + useFactory: (membershipFeeRepo: MembershipFeeRepository) => new UpsertMembershipFeeUseCase(membershipFeeRepo), inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN], }, { provide: UPDATE_MEMBER_PAYMENT_USE_CASE_TOKEN, - useFactory: (membershipFeeRepo: IMembershipFeeRepository, memberPaymentRepo: IMemberPaymentRepository) => + useFactory: (membershipFeeRepo: MembershipFeeRepository, memberPaymentRepo: MemberPaymentRepository) => new UpdateMemberPaymentUseCase(membershipFeeRepo, memberPaymentRepo), inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN], }, { provide: GET_PRIZES_USE_CASE_TOKEN, - useFactory: (prizeRepo: IPrizeRepository) => new GetPrizesUseCase(prizeRepo), + useFactory: (prizeRepo: PrizeRepository) => new GetPrizesUseCase(prizeRepo), inject: [PRIZE_REPOSITORY_TOKEN], }, { provide: CREATE_PRIZE_USE_CASE_TOKEN, - useFactory: (prizeRepo: IPrizeRepository) => new CreatePrizeUseCase(prizeRepo), + useFactory: (prizeRepo: PrizeRepository) => new CreatePrizeUseCase(prizeRepo), inject: [PRIZE_REPOSITORY_TOKEN], }, { provide: AWARD_PRIZE_USE_CASE_TOKEN, - useFactory: (prizeRepo: IPrizeRepository) => new AwardPrizeUseCase(prizeRepo), + useFactory: (prizeRepo: PrizeRepository) => new AwardPrizeUseCase(prizeRepo), inject: [PRIZE_REPOSITORY_TOKEN], }, { provide: DELETE_PRIZE_USE_CASE_TOKEN, - useFactory: (prizeRepo: IPrizeRepository) => new DeletePrizeUseCase(prizeRepo), + useFactory: (prizeRepo: PrizeRepository) => new DeletePrizeUseCase(prizeRepo), inject: [PRIZE_REPOSITORY_TOKEN], }, { provide: GET_WALLET_USE_CASE_TOKEN, - useFactory: (walletRepo: IWalletRepository, transactionRepo: ITransactionRepository) => + useFactory: (walletRepo: WalletRepository, transactionRepo: TransactionRepository) => new GetWalletUseCase(walletRepo, transactionRepo), inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN], }, { provide: PROCESS_WALLET_TRANSACTION_USE_CASE_TOKEN, - useFactory: (walletRepo: IWalletRepository, transactionRepo: ITransactionRepository) => + useFactory: (walletRepo: WalletRepository, transactionRepo: TransactionRepository) => new ProcessWalletTransactionUseCase(walletRepo, transactionRepo), inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN], }, diff --git a/apps/api/src/domain/payments/PaymentsService.ts b/apps/api/src/domain/payments/PaymentsService.ts index 479e80a9e..47b089b3c 100644 --- a/apps/api/src/domain/payments/PaymentsService.ts +++ b/apps/api/src/domain/payments/PaymentsService.ts @@ -1,4 +1,4 @@ -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import { Inject, Injectable } from '@nestjs/common'; // Use cases diff --git a/apps/api/src/domain/payments/presenters/CreatePaymentPresenter.ts b/apps/api/src/domain/payments/presenters/CreatePaymentPresenter.ts index 80435872e..402db9e19 100644 --- a/apps/api/src/domain/payments/presenters/CreatePaymentPresenter.ts +++ b/apps/api/src/domain/payments/presenters/CreatePaymentPresenter.ts @@ -1,5 +1,5 @@ import type { CreatePaymentResult } from '@core/payments/application/use-cases/CreatePaymentUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { CreatePaymentOutput } from '../dtos/PaymentsDto'; export class CreatePaymentPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/payments/presenters/GetPaymentsPresenter.ts b/apps/api/src/domain/payments/presenters/GetPaymentsPresenter.ts index 1f80afcaf..79aa2c09a 100644 --- a/apps/api/src/domain/payments/presenters/GetPaymentsPresenter.ts +++ b/apps/api/src/domain/payments/presenters/GetPaymentsPresenter.ts @@ -1,5 +1,5 @@ import type { GetPaymentsResult } from '@core/payments/application/use-cases/GetPaymentsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetPaymentsOutput } from '../dtos/PaymentsDto'; export class GetPaymentsPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/payments/presenters/UpdatePaymentStatusPresenter.ts b/apps/api/src/domain/payments/presenters/UpdatePaymentStatusPresenter.ts index 318187dfb..7affc94a1 100644 --- a/apps/api/src/domain/payments/presenters/UpdatePaymentStatusPresenter.ts +++ b/apps/api/src/domain/payments/presenters/UpdatePaymentStatusPresenter.ts @@ -1,5 +1,5 @@ import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto'; export class UpdatePaymentStatusPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/protests/ProtestsProviders.ts b/apps/api/src/domain/protests/ProtestsProviders.ts index 5c1ec40ab..32e9c9fa1 100644 --- a/apps/api/src/domain/protests/ProtestsProviders.ts +++ b/apps/api/src/domain/protests/ProtestsProviders.ts @@ -1,10 +1,10 @@ import { Provider } from '@nestjs/common'; // Import core interfaces -import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; -import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; +import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { Logger } from '@core/shared/domain/Logger'; // Import concrete in-memory implementations import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; @@ -31,9 +31,9 @@ export const ProtestsProviders: Provider[] = [ { provide: ReviewProtestUseCase, useFactory: ( - protestRepo: IProtestRepository, - raceRepo: IRaceRepository, - leagueMembershipRepo: ILeagueMembershipRepository, + protestRepo: ProtestRepository, + raceRepo: RaceRepository, + leagueMembershipRepo: LeagueMembershipRepository, logger: Logger, ) => new ReviewProtestUseCase(protestRepo, raceRepo, leagueMembershipRepo, logger), inject: [ diff --git a/apps/api/src/domain/protests/ProtestsService.test.ts b/apps/api/src/domain/protests/ProtestsService.test.ts index c22f74765..1045326a5 100644 --- a/apps/api/src/domain/protests/ProtestsService.test.ts +++ b/apps/api/src/domain/protests/ProtestsService.test.ts @@ -3,7 +3,7 @@ import type { ReviewProtestResult, ReviewProtestUseCase, } from '@core/racing/application/use-cases/ReviewProtestUseCase'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import { Result } from '@core/shared/domain/Result'; import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest'; import { ProtestsService } from './ProtestsService'; diff --git a/apps/api/src/domain/protests/ProtestsService.ts b/apps/api/src/domain/protests/ProtestsService.ts index f490b5ae5..090e9f4d9 100644 --- a/apps/api/src/domain/protests/ProtestsService.ts +++ b/apps/api/src/domain/protests/ProtestsService.ts @@ -1,4 +1,4 @@ -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import { Inject, Injectable } from '@nestjs/common'; // Use cases diff --git a/apps/api/src/domain/protests/presenters/ReviewProtestPresenter.ts b/apps/api/src/domain/protests/presenters/ReviewProtestPresenter.ts index 96f4ecb5d..dd8efc84f 100644 --- a/apps/api/src/domain/protests/presenters/ReviewProtestPresenter.ts +++ b/apps/api/src/domain/protests/presenters/ReviewProtestPresenter.ts @@ -1,5 +1,5 @@ import type { ReviewProtestApplicationError, ReviewProtestResult } from '@core/racing/application/use-cases/ReviewProtestUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; export interface ReviewProtestResponseDTO { success: boolean; diff --git a/apps/api/src/domain/race/RaceProviders.ts b/apps/api/src/domain/race/RaceProviders.ts index ee3a70c8b..92be8a051 100644 --- a/apps/api/src/domain/race/RaceProviders.ts +++ b/apps/api/src/domain/race/RaceProviders.ts @@ -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( diff --git a/apps/api/src/domain/race/RaceService.ts b/apps/api/src/domain/race/RaceService.ts index 859ffd5cf..4f01d6ee3 100644 --- a/apps/api/src/domain/race/RaceService.ts +++ b/apps/api/src/domain/race/RaceService.ts @@ -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'; diff --git a/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts b/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts index 2e6197cfa..d225d3c36 100644 --- a/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts +++ b/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts @@ -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, ) {} diff --git a/apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts b/apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts index 46ab8d6da..0dcabc7b0 100644 --- a/apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts +++ b/apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts @@ -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, diff --git a/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts b/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts index ca2605d7e..120d5e425 100644 --- a/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts +++ b/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts @@ -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; diff --git a/apps/api/src/domain/sponsor/SponsorProviders.ts b/apps/api/src/domain/sponsor/SponsorProviders.ts index 27b04ff8f..f29adb8e7 100644 --- a/apps/api/src/domain/sponsor/SponsorProviders.ts +++ b/apps/api/src/domain/sponsor/SponsorProviders.ts @@ -3,18 +3,18 @@ import { SponsorService } from './SponsorService'; // Import core interfaces import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; -import type { IWalletRepository } from '@core/payments/domain/repositories/WalletRepository'; -import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; -import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; -import { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository'; -import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository'; -import { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; -import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; -import { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository'; -import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository'; -import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; +import type { WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; +import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; +import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; +import { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository'; +import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; +import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository'; +import { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository'; +import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; +import type { Logger } from '@core/shared/domain/Logger'; import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase'; import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase'; @@ -33,18 +33,18 @@ import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemo import { InMemoryWalletRepository } from '@adapters/payments/persistence/inmemory/InMemoryWalletRepository'; // Define injection tokens -export const SPONSOR_REPOSITORY_TOKEN = 'ISponsorRepository'; -export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'ISeasonSponsorshipRepository'; -export const SEASON_REPOSITORY_TOKEN = 'ISeasonRepository'; -export const LEAGUE_REPOSITORY_TOKEN = 'ILeagueRepository'; -export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'ILeagueMembershipRepository'; -export const RACE_REPOSITORY_TOKEN = 'IRaceRepository'; -export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'ISponsorshipPricingRepository'; -export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'ISponsorshipRequestRepository'; -export const PAYMENT_REPOSITORY_TOKEN = 'IPaymentRepository'; -export const WALLET_REPOSITORY_TOKEN = 'IWalletRepository'; -export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'ILeagueWalletRepository'; -export const NOTIFICATION_SERVICE_TOKEN = 'INotificationService'; +export const SPONSOR_REPOSITORY_TOKEN = 'SponsorRepository'; +export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'SeasonSponsorshipRepository'; +export const SEASON_REPOSITORY_TOKEN = 'SeasonRepository'; +export const LEAGUE_REPOSITORY_TOKEN = 'LeagueRepository'; +export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'LeagueMembershipRepository'; +export const RACE_REPOSITORY_TOKEN = 'RaceRepository'; +export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'SponsorshipPricingRepository'; +export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'SponsorshipRequestRepository'; +export const PAYMENT_REPOSITORY_TOKEN = 'PaymentRepository'; +export const WALLET_REPOSITORY_TOKEN = 'WalletRepository'; +export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'LeagueWalletRepository'; +export const NOTIFICATION_SERVICE_TOKEN = 'NotificationService'; export const LOGGER_TOKEN = 'Logger'; // Use case / application service tokens @@ -88,23 +88,23 @@ export const SponsorProviders: Provider[] = [ // Use cases { provide: GET_SPONSORS_USE_CASE_TOKEN, - useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorsUseCase(sponsorRepo), + useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorsUseCase(sponsorRepo), inject: [SPONSOR_REPOSITORY_TOKEN], }, { provide: CREATE_SPONSOR_USE_CASE_TOKEN, - useFactory: (sponsorRepo: ISponsorRepository, logger: Logger) => new CreateSponsorUseCase(sponsorRepo, logger), + useFactory: (sponsorRepo: SponsorRepository, logger: Logger) => new CreateSponsorUseCase(sponsorRepo, logger), inject: [SPONSOR_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: GET_SPONSOR_DASHBOARD_USE_CASE_TOKEN, useFactory: ( - sponsorRepo: ISponsorRepository, - seasonSponsorshipRepo: ISeasonSponsorshipRepository, - seasonRepo: ISeasonRepository, - leagueRepo: ILeagueRepository, - leagueMembershipRepo: ILeagueMembershipRepository, - raceRepo: IRaceRepository, + sponsorRepo: SponsorRepository, + seasonSponsorshipRepo: SeasonSponsorshipRepository, + seasonRepo: SeasonRepository, + leagueRepo: LeagueRepository, + leagueMembershipRepo: LeagueMembershipRepository, + raceRepo: RaceRepository, ) => new GetSponsorDashboardUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo), inject: [ SPONSOR_REPOSITORY_TOKEN, @@ -118,12 +118,12 @@ export const SponsorProviders: Provider[] = [ { provide: GET_SPONSOR_SPONSORSHIPS_USE_CASE_TOKEN, useFactory: ( - sponsorRepo: ISponsorRepository, - seasonSponsorshipRepo: ISeasonSponsorshipRepository, - seasonRepo: ISeasonRepository, - leagueRepo: ILeagueRepository, - leagueMembershipRepo: ILeagueMembershipRepository, - raceRepo: IRaceRepository, + sponsorRepo: SponsorRepository, + seasonSponsorshipRepo: SeasonSponsorshipRepository, + seasonRepo: SeasonRepository, + leagueRepo: LeagueRepository, + leagueMembershipRepo: LeagueMembershipRepository, + raceRepo: RaceRepository, ) => new GetSponsorSponsorshipsUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo), inject: [ SPONSOR_REPOSITORY_TOKEN, @@ -137,8 +137,8 @@ export const SponsorProviders: Provider[] = [ { provide: GET_SPONSOR_BILLING_USE_CASE_TOKEN, useFactory: ( - paymentRepo: IPaymentRepository, - seasonSponsorshipRepo: ISeasonSponsorshipRepository, + paymentRepo: PaymentRepository, + seasonSponsorshipRepo: SeasonSponsorshipRepository, ) => { return new GetSponsorBillingUseCase(paymentRepo, seasonSponsorshipRepo); }, @@ -147,7 +147,7 @@ export const SponsorProviders: Provider[] = [ { provide: GET_ENTITY_SPONSORSHIP_PRICING_USE_CASE_TOKEN, useFactory: ( - sponsorshipPricingRepo: ISponsorshipPricingRepository, + sponsorshipPricingRepo: SponsorshipPricingRepository, logger: Logger, ) => new GetEntitySponsorshipPricingUseCase(sponsorshipPricingRepo, logger), inject: [ @@ -157,26 +157,26 @@ export const SponsorProviders: Provider[] = [ }, { provide: GET_SPONSOR_USE_CASE_TOKEN, - useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorUseCase(sponsorRepo), + useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorUseCase(sponsorRepo), inject: [SPONSOR_REPOSITORY_TOKEN], }, { provide: GET_PENDING_SPONSORSHIP_REQUESTS_USE_CASE_TOKEN, useFactory: ( - sponsorshipRequestRepo: ISponsorshipRequestRepository, - sponsorRepo: ISponsorRepository, + sponsorshipRequestRepo: SponsorshipRequestRepository, + sponsorRepo: SponsorRepository, ) => new GetPendingSponsorshipRequestsUseCase(sponsorshipRequestRepo, sponsorRepo), inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, SPONSOR_REPOSITORY_TOKEN], }, { provide: ACCEPT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN, useFactory: ( - sponsorshipRequestRepo: ISponsorshipRequestRepository, - seasonSponsorshipRepo: ISeasonSponsorshipRepository, - seasonRepo: ISeasonRepository, + sponsorshipRequestRepo: SponsorshipRequestRepository, + seasonSponsorshipRepo: SeasonSponsorshipRepository, + seasonRepo: SeasonRepository, notificationService: NotificationService, - walletRepository: IWalletRepository, - leagueWalletRepository: ILeagueWalletRepository, + walletRepository: WalletRepository, + leagueWalletRepository: LeagueWalletRepository, logger: Logger, ) => { // Create a mock payment processor function @@ -209,7 +209,7 @@ export const SponsorProviders: Provider[] = [ { provide: REJECT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN, useFactory: ( - sponsorshipRequestRepo: ISponsorshipRequestRepository, + sponsorshipRequestRepo: SponsorshipRequestRepository, logger: Logger, ) => new RejectSponsorshipRequestUseCase(sponsorshipRequestRepo, logger), inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, LOGGER_TOKEN], diff --git a/apps/api/src/domain/sponsor/SponsorService.test.ts b/apps/api/src/domain/sponsor/SponsorService.test.ts index 78fca6a94..0cc014956 100644 --- a/apps/api/src/domain/sponsor/SponsorService.test.ts +++ b/apps/api/src/domain/sponsor/SponsorService.test.ts @@ -10,7 +10,7 @@ import type { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSp import type { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase'; import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor'; import { Money } from '@core/racing/domain/value-objects/Money'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { Result } from '@core/shared/domain/Result'; import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO'; diff --git a/apps/api/src/domain/sponsor/SponsorService.ts b/apps/api/src/domain/sponsor/SponsorService.ts index a40a09ee3..d1331c26e 100644 --- a/apps/api/src/domain/sponsor/SponsorService.ts +++ b/apps/api/src/domain/sponsor/SponsorService.ts @@ -35,7 +35,7 @@ import { GetSponsorsUseCase } from '@core/racing/application/use-cases/GetSponso import { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSponsorUseCase'; import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase'; import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; // Tokens import { diff --git a/apps/api/src/domain/team/TeamProviders.ts b/apps/api/src/domain/team/TeamProviders.ts index 379937875..144237cd2 100644 --- a/apps/api/src/domain/team/TeamProviders.ts +++ b/apps/api/src/domain/team/TeamProviders.ts @@ -30,11 +30,11 @@ export { // Import core interfaces import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; -import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository'; -import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; -import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository'; -import type { ITeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository'; +import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; +import type { TeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository'; +import type { Logger } from '@core/shared/domain/Logger'; // Import concrete implementations import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; @@ -103,55 +103,55 @@ export const TeamProviders: Provider[] = [ // Use Cases { provide: GET_ALL_TEAMS_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, statsRepo: ITeamStatsRepository, logger: Logger) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, statsRepo: TeamStatsRepository, logger: Logger) => new GetAllTeamsUseCase(teamRepo, membershipRepo, statsRepo, logger), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, TEAM_STATS_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: GET_TEAM_DETAILS_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository) => new GetTeamDetailsUseCase(teamRepo, membershipRepo), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN], }, { provide: GET_TEAM_MEMBERS_USE_CASE_TOKEN, - useFactory: (membershipRepo: ITeamMembershipRepository, driverRepo: IDriverRepository, teamRepo: ITeamRepository, logger: Logger) => + useFactory: (membershipRepo: TeamMembershipRepository, driverRepo: DriverRepository, teamRepo: TeamRepository, logger: Logger) => new GetTeamMembersUseCase(membershipRepo, driverRepo, teamRepo, logger), inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: GET_TEAM_JOIN_REQUESTS_USE_CASE_TOKEN, - useFactory: (membershipRepo: ITeamMembershipRepository, driverRepo: IDriverRepository, teamRepo: ITeamRepository) => + useFactory: (membershipRepo: TeamMembershipRepository, driverRepo: DriverRepository, teamRepo: TeamRepository) => new GetTeamJoinRequestsUseCase(membershipRepo, driverRepo, teamRepo), inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN], }, { provide: CREATE_TEAM_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) => new CreateTeamUseCase(teamRepo, membershipRepo, logger), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: UPDATE_TEAM_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository) => new UpdateTeamUseCase(teamRepo, membershipRepo), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN], }, { provide: GET_DRIVER_TEAM_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) => new GetDriverTeamUseCase(teamRepo, membershipRepo, logger), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: GET_TEAM_MEMBERSHIP_USE_CASE_TOKEN, - useFactory: (membershipRepo: ITeamMembershipRepository, logger: Logger) => + useFactory: (membershipRepo: TeamMembershipRepository, logger: Logger) => new GetTeamMembershipUseCase(membershipRepo, logger), inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN], }, { provide: JOIN_TEAM_USE_CASE_TOKEN, - useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) => + useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) => new JoinTeamUseCase(teamRepo, membershipRepo, logger), inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN], }, diff --git a/apps/api/src/domain/team/TeamService.test.ts b/apps/api/src/domain/team/TeamService.test.ts index 954a70f51..4c553f00a 100644 --- a/apps/api/src/domain/team/TeamService.test.ts +++ b/apps/api/src/domain/team/TeamService.test.ts @@ -6,7 +6,7 @@ import { GetTeamJoinRequestsUseCase } from '@core/racing/application/use-cases/G import { GetTeamMembershipUseCase } from '@core/racing/application/use-cases/GetTeamMembershipUseCase'; import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase'; import { UpdateTeamUseCase } from '@core/racing/application/use-cases/UpdateTeamUseCase'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import { Result } from '@core/shared/domain/Result'; import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO'; diff --git a/apps/api/src/domain/team/TeamService.ts b/apps/api/src/domain/team/TeamService.ts index 099ec5803..8418dd38c 100644 --- a/apps/api/src/domain/team/TeamService.ts +++ b/apps/api/src/domain/team/TeamService.ts @@ -11,7 +11,7 @@ import { UpdateTeamInputDTO } from './dtos/UpdateTeamInputDTO'; import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO'; // 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 { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase'; diff --git a/apps/api/src/domain/team/presenters/AllTeamsPresenter.ts b/apps/api/src/domain/team/presenters/AllTeamsPresenter.ts index f2291e1c9..1cde9f10e 100644 --- a/apps/api/src/domain/team/presenters/AllTeamsPresenter.ts +++ b/apps/api/src/domain/team/presenters/AllTeamsPresenter.ts @@ -1,7 +1,7 @@ import { MediaReference } from '@core/domain/media/MediaReference'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; import type { GetAllTeamsResult } from '@core/racing/application/use-cases/GetAllTeamsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { GetAllTeamsOutputDTO } from '../dtos/GetAllTeamsOutputDTO'; import { TeamListItemDTO } from '../dtos/TeamListItemDTO'; diff --git a/apps/api/src/domain/team/presenters/CreateTeamPresenter.ts b/apps/api/src/domain/team/presenters/CreateTeamPresenter.ts index dfced5c61..942c67be2 100644 --- a/apps/api/src/domain/team/presenters/CreateTeamPresenter.ts +++ b/apps/api/src/domain/team/presenters/CreateTeamPresenter.ts @@ -1,5 +1,5 @@ import type { CreateTeamResult } from '@core/racing/application/use-cases/CreateTeamUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { CreateTeamOutputDTO } from '../dtos/CreateTeamOutputDTO'; export class CreateTeamPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/DriverTeamPresenter.ts b/apps/api/src/domain/team/presenters/DriverTeamPresenter.ts index fdd77eeba..578adc2ce 100644 --- a/apps/api/src/domain/team/presenters/DriverTeamPresenter.ts +++ b/apps/api/src/domain/team/presenters/DriverTeamPresenter.ts @@ -1,5 +1,5 @@ import type { GetDriverTeamResult } from '@core/racing/application/use-cases/GetDriverTeamUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import { GetDriverTeamOutputDTO } from '../dtos/GetDriverTeamOutputDTO'; export class DriverTeamPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/TeamDetailsPresenter.ts b/apps/api/src/domain/team/presenters/TeamDetailsPresenter.ts index 65c857e59..bc2df8c24 100644 --- a/apps/api/src/domain/team/presenters/TeamDetailsPresenter.ts +++ b/apps/api/src/domain/team/presenters/TeamDetailsPresenter.ts @@ -1,5 +1,5 @@ import type { GetTeamDetailsResult } from '@core/racing/application/use-cases/GetTeamDetailsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetTeamDetailsOutputDTO } from '../dtos/GetTeamDetailsOutputDTO'; export class TeamDetailsPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/TeamJoinRequestsPresenter.ts b/apps/api/src/domain/team/presenters/TeamJoinRequestsPresenter.ts index 8d4c9428e..360536af1 100644 --- a/apps/api/src/domain/team/presenters/TeamJoinRequestsPresenter.ts +++ b/apps/api/src/domain/team/presenters/TeamJoinRequestsPresenter.ts @@ -1,5 +1,5 @@ import type { GetTeamJoinRequestsResult } from '@core/racing/application/use-cases/GetTeamJoinRequestsUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetTeamJoinRequestsOutputDTO } from '../dtos/GetTeamJoinRequestsOutputDTO'; export class TeamJoinRequestsPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/TeamMembersPresenter.ts b/apps/api/src/domain/team/presenters/TeamMembersPresenter.ts index 750ff25bd..68bc103dd 100644 --- a/apps/api/src/domain/team/presenters/TeamMembersPresenter.ts +++ b/apps/api/src/domain/team/presenters/TeamMembersPresenter.ts @@ -1,5 +1,5 @@ import type { GetTeamMembersResult } from '@core/racing/application/use-cases/GetTeamMembersUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetTeamMembersOutputDTO } from '../dtos/GetTeamMembersOutputDTO'; export class TeamMembersPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/TeamMembershipPresenter.ts b/apps/api/src/domain/team/presenters/TeamMembershipPresenter.ts index 8231c7d08..684a3fdcf 100644 --- a/apps/api/src/domain/team/presenters/TeamMembershipPresenter.ts +++ b/apps/api/src/domain/team/presenters/TeamMembershipPresenter.ts @@ -1,5 +1,5 @@ import type { GetTeamMembershipResult } from '@core/racing/application/use-cases/GetTeamMembershipUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetTeamMembershipOutputDTO } from '../dtos/GetTeamMembershipOutputDTO'; export class TeamMembershipPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/TeamsLeaderboardPresenter.ts b/apps/api/src/domain/team/presenters/TeamsLeaderboardPresenter.ts index d175f63c1..400fe66fd 100644 --- a/apps/api/src/domain/team/presenters/TeamsLeaderboardPresenter.ts +++ b/apps/api/src/domain/team/presenters/TeamsLeaderboardPresenter.ts @@ -1,5 +1,5 @@ import type { GetTeamsLeaderboardResult } from '@core/racing/application/use-cases/GetTeamsLeaderboardUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { GetTeamsLeaderboardOutputDTO } from '../dtos/GetTeamsLeaderboardOutputDTO'; export class TeamsLeaderboardPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/domain/team/presenters/UpdateTeamPresenter.ts b/apps/api/src/domain/team/presenters/UpdateTeamPresenter.ts index aef6797c4..75b3b9be8 100644 --- a/apps/api/src/domain/team/presenters/UpdateTeamPresenter.ts +++ b/apps/api/src/domain/team/presenters/UpdateTeamPresenter.ts @@ -1,5 +1,5 @@ import type { UpdateTeamResult } from '@core/racing/application/use-cases/UpdateTeamUseCase'; -import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort'; import type { UpdateTeamOutputDTO } from '../dtos/UpdateTeamOutputDTO'; export class UpdateTeamPresenter implements UseCaseOutputPort { diff --git a/apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts index fd9393986..ca96a147b 100644 --- a/apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { InMemoryAchievementRepository } from '@adapters/identity/persistence/inmemory/InMemoryAchievementRepository'; diff --git a/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts index 3d02f42b6..bd7b02b63 100644 --- a/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository'; import type { AnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository'; diff --git a/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts index 9cb9ca087..0aca582e3 100644 --- a/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts @@ -4,7 +4,7 @@ import { LoggingModule } from '../../domain/logging/LoggingModule'; import type { StoredUser } from '@core/identity/domain/repositories/UserRepository'; import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository'; import { InMemoryCompanyRepository } from '@adapters/identity/persistence/inmemory/InMemoryCompanyRepository'; diff --git a/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts index 704863495..18b29d44d 100644 --- a/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts @@ -2,25 +2,25 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; -import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; -import type { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; -import type { IMediaRepository } from '@core/media/domain/repositories/MediaRepository'; +import type { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; +import type { AvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; +import type { MediaRepository } from '@core/media/domain/repositories/MediaRepository'; import { InMemoryAvatarGenerationRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository'; import { AVATAR_GENERATION_REPOSITORY_TOKEN, AVATAR_REPOSITORY_TOKEN, MEDIA_REPOSITORY_TOKEN } from '../media/MediaPersistenceTokens'; // Mock implementations for Media and Avatar repositories (inmemory only has AvatarGeneration) -class MockMediaRepository implements IMediaRepository { +class MockMediaRepository implements MediaRepository { async save(): Promise {} async findById(): Promise { return null; } async findByUploadedBy(): Promise<[]> { return []; } async delete(): Promise {} } -class MockAvatarRepository implements IAvatarRepository { +class MockAvatarRepository implements AvatarRepository { async save(): Promise {} async findById(): Promise { return null; } async findActiveByDriverId(): Promise { return null; } @@ -33,7 +33,7 @@ class MockAvatarRepository implements IAvatarRepository { providers: [ { provide: AVATAR_GENERATION_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IAvatarGenerationRepository => + useFactory: (logger: Logger): AvatarGenerationRepository => new InMemoryAvatarGenerationRepository(logger), inject: ['Logger'], }, diff --git a/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts index be0e20c89..88953f4aa 100644 --- a/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts @@ -2,12 +2,12 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway'; import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; -import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; -import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; +import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; +import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; import { InMemoryNotificationPreferenceRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository'; import { InMemoryNotificationRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationRepository'; @@ -24,13 +24,13 @@ export const NOTIFICATION_GATEWAY_REGISTRY_TOKEN = 'INotificationGatewayRegistry providers: [ { provide: NOTIFICATION_REPOSITORY_TOKEN, - useFactory: (logger: Logger): INotificationRepository => + useFactory: (logger: Logger): NotificationRepository => new InMemoryNotificationRepository(logger), inject: ['Logger'], }, { provide: NOTIFICATION_PREFERENCE_REPOSITORY_TOKEN, - useFactory: (logger: Logger): INotificationPreferenceRepository => + useFactory: (logger: Logger): NotificationPreferenceRepository => new InMemoryNotificationPreferenceRepository(logger), inject: ['Logger'], }, @@ -43,8 +43,8 @@ export const NOTIFICATION_GATEWAY_REGISTRY_TOKEN = 'INotificationGatewayRegistry { provide: NOTIFICATION_SERVICE_TOKEN, useFactory: ( - notificationRepo: INotificationRepository, - preferenceRepo: INotificationPreferenceRepository, + notificationRepo: NotificationRepository, + preferenceRepo: NotificationPreferenceRepository, gatewayRegistry: NotificationGatewayRegistry, logger: Logger, ): NotificationService => diff --git a/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts index 2b98c420c..40dc52987 100644 --- a/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts @@ -2,15 +2,15 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { - IMemberPaymentRepository, - IMembershipFeeRepository, + MemberPaymentRepository, + MembershipFeeRepository, } from '@core/payments/domain/repositories/MembershipFeeRepository'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; -import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; -import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; +import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; +import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; import { InMemoryMemberPaymentRepository, InMemoryMembershipFeeRepository } from '@adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository'; import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemory/InMemoryPaymentRepository'; @@ -31,32 +31,32 @@ import { providers: [ { provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IPaymentRepository => new InMemoryPaymentRepository(logger), + useFactory: (logger: Logger): PaymentRepository => new InMemoryPaymentRepository(logger), inject: ['Logger'], }, { provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IMembershipFeeRepository => new InMemoryMembershipFeeRepository(logger), + useFactory: (logger: Logger): MembershipFeeRepository => new InMemoryMembershipFeeRepository(logger), inject: ['Logger'], }, { provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IMemberPaymentRepository => new InMemoryMemberPaymentRepository(logger), + useFactory: (logger: Logger): MemberPaymentRepository => new InMemoryMemberPaymentRepository(logger), inject: ['Logger'], }, { provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IPrizeRepository => new InMemoryPrizeRepository(logger), + useFactory: (logger: Logger): PrizeRepository => new InMemoryPrizeRepository(logger), inject: ['Logger'], }, { provide: PAYMENTS_WALLET_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IWalletRepository => new InMemoryWalletRepository(logger), + useFactory: (logger: Logger): WalletRepository => new InMemoryWalletRepository(logger), inject: ['Logger'], }, { provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN, - useFactory: (logger: Logger): ITransactionRepository => new InMemoryTransactionRepository(logger), + useFactory: (logger: Logger): TransactionRepository => new InMemoryTransactionRepository(logger), inject: ['Logger'], }, ], diff --git a/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts index 78e58ec94..b3b858a5f 100644 --- a/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts @@ -2,7 +2,7 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository'; import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository'; diff --git a/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts index 927f95511..1bdf22297 100644 --- a/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts @@ -2,10 +2,10 @@ import { Module } from '@nestjs/common'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; -import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import { InMemoryFeedRepository, @@ -19,13 +19,13 @@ import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from '../ providers: [ { provide: SOCIAL_FEED_REPOSITORY_TOKEN, - useFactory: (logger: Logger): IFeedRepository => + useFactory: (logger: Logger): FeedRepository => new InMemoryFeedRepository(logger, { drivers: [], friendships: [], feedEvents: [] }), inject: ['Logger'], }, { provide: SOCIAL_GRAPH_REPOSITORY_TOKEN, - useFactory: (logger: Logger): ISocialGraphRepository => + useFactory: (logger: Logger): SocialGraphRepository => new InMemorySocialGraphRepository(logger, { drivers: [], friendships: [], feedEvents: [] }), inject: ['Logger'], }, diff --git a/apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts index 784b7043a..983a023ef 100644 --- a/apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts @@ -1,4 +1,4 @@ -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP'; +import type { Logger } from '@core/shared/domain/Logger'; import { Module } from '@nestjs/common'; import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm'; import type { DataSource } from 'typeorm'; diff --git a/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts index 6ba4f533e..c35bffa65 100644 --- a/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts @@ -4,9 +4,9 @@ import type { DataSource } from 'typeorm'; import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway'; import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; -import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; -import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; +import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; +import type { Logger } from '@core/shared/domain/Logger'; import { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity'; import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity'; @@ -58,8 +58,8 @@ const typeOrmFeatureImports = [ { provide: NOTIFICATION_SERVICE_TOKEN, useFactory: ( - notificationRepo: INotificationRepository, - preferenceRepo: INotificationPreferenceRepository, + notificationRepo: NotificationRepository, + preferenceRepo: NotificationPreferenceRepository, gatewayRegistry: NotificationGatewayRegistry, logger: Logger, ): NotificationService => diff --git a/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts index 47a7fd56f..ab2afddec 100644 --- a/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts @@ -4,10 +4,10 @@ import type { DataSource } from 'typeorm'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; -import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; -import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository'; +import type { MemberPaymentRepository, MembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; +import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; +import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; import { PaymentsMemberPaymentOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMemberPaymentOrmEntity'; import { PaymentsMembershipFeeOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMembershipFeeOrmEntity'; @@ -58,37 +58,37 @@ const typeOrmFeatureImports = [ { provide: PAYMENTS_WALLET_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): IWalletRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): WalletRepository => new TypeOrmWalletRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsWalletOrmMapper], }, { provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): ITransactionRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): TransactionRepository => new TypeOrmTransactionRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsWalletOrmMapper], }, { provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsPaymentOrmMapper): IPaymentRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsPaymentOrmMapper): PaymentRepository => new TypeOrmPaymentRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsPaymentOrmMapper], }, { provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsPrizeOrmMapper): IPrizeRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsPrizeOrmMapper): PrizeRepository => new TypeOrmPrizeRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsPrizeOrmMapper], }, { provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsMembershipFeeOrmMapper): IMembershipFeeRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsMembershipFeeOrmMapper): MembershipFeeRepository => new TypeOrmMembershipFeeRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsMembershipFeeOrmMapper], }, { provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN, - useFactory: (dataSource: DataSource, mapper: PaymentsMemberPaymentOrmMapper): IMemberPaymentRepository => + useFactory: (dataSource: DataSource, mapper: PaymentsMemberPaymentOrmMapper): MemberPaymentRepository => new TypeOrmMemberPaymentRepository(dataSource, mapper), inject: [getDataSourceToken(), PaymentsMemberPaymentOrmMapper], }, diff --git a/apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts index 8a1379c62..aa181bded 100644 --- a/apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts @@ -113,7 +113,7 @@ import { TeamMembershipOrmMapper, TeamOrmMapper } from '@adapters/racing/persist import { TeamStatsOrmMapper } from '@adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper'; import { getPointsSystems } from '@adapters/bootstrap/PointsSystems'; -import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; const RACING_POINTS_SYSTEMS_TOKEN = 'RACING_POINTS_SYSTEMS_TOKEN'; diff --git a/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts b/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts index 8bf81de48..a517ff8a4 100644 --- a/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts +++ b/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts @@ -10,8 +10,8 @@ import { DatabaseModule } from '../../domain/database/DatabaseModule'; import { PostgresSocialPersistenceModule } from '../postgres/PostgresSocialPersistenceModule'; import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from './SocialPersistenceTokens'; -import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import { DriverOrmEntity } from '@adapters/racing/persistence/typeorm/entities/DriverOrmEntity'; import { FeedItemOrmEntity } from '@adapters/social/persistence/typeorm/entities/FeedItemOrmEntity'; @@ -82,8 +82,8 @@ describe('PostgresSocialPersistenceModule (integration)', () => { await feedOrmRepo.save(item); - const feedRepo = module.get(SOCIAL_FEED_REPOSITORY_TOKEN); - const socialGraphRepo = module.get(SOCIAL_GRAPH_REPOSITORY_TOKEN); + const feedRepo = module.get(SOCIAL_FEED_REPOSITORY_TOKEN); + const socialGraphRepo = module.get(SOCIAL_GRAPH_REPOSITORY_TOKEN); const friendIds = await socialGraphRepo.getFriendIds(driverA.id); expect(friendIds).toEqual([driverB.id]); diff --git a/my_tsc_output.txt b/my_tsc_output.txt new file mode 100644 index 000000000..7427e2beb --- /dev/null +++ b/my_tsc_output.txt @@ -0,0 +1,106 @@ +adapters/bootstrap/SeedDemoUsers.ts(6,1): error TS6133: 'UserRepository' is declared but its value is never read. +apps/api/src/domain/analytics/AnalyticsProviders.ts(3,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/auth/AuthProviders.ts(16,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/auth/AuthService.ts(3,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/bootstrap/BootstrapModule.ts(1,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/bootstrap/BootstrapProviders.ts(8,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/dashboard/DashboardProviders.ts(11,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/dashboard/DashboardService.ts(7,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/driver/DriverProviders.ts(167,14): error TS2693: 'RankingUseCase' only refers to a type, but is being used as a value here. +apps/api/src/domain/driver/DriverProviders.ts(176,14): error TS2693: 'DriverStatsUseCase' only refers to a type, but is being used as a value here. +apps/api/src/domain/driver/DriverService.ts(33,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/league/LeagueProviders.ts(16,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/league/LeagueService.ts(61,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/media/MediaController.ts(3,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/media/MediaProviders.ts(7,10): error TS2724: '"@core/media/domain/repositories/AvatarGenerationRepository"' has no exported member named 'IAvatarGenerationRepository'. Did you mean 'AvatarGenerationRepository'? +apps/api/src/domain/media/MediaProviders.ts(8,10): error TS2724: '"@core/media/domain/repositories/AvatarRepository"' has no exported member named 'IAvatarRepository'. Did you mean 'AvatarRepository'? +apps/api/src/domain/media/MediaProviders.ts(9,10): error TS2724: '"@core/media/domain/repositories/MediaRepository"' has no exported member named 'IMediaRepository'. Did you mean 'MediaRepository'? +apps/api/src/domain/media/MediaProviders.ts(11,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/media/MediaService.ts(39,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/notifications/NotificationsProviders.ts(5,10): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'? +apps/api/src/domain/notifications/NotificationsProviders.ts(6,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/payments/PaymentsProviders.ts(4,15): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'? +apps/api/src/domain/payments/PaymentsProviders.ts(4,41): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'? +apps/api/src/domain/payments/PaymentsProviders.ts(5,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'? +apps/api/src/domain/payments/PaymentsProviders.ts(6,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'? +apps/api/src/domain/payments/PaymentsProviders.ts(7,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'? +apps/api/src/domain/payments/PaymentsProviders.ts(7,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'? +apps/api/src/domain/payments/PaymentsService.ts(1,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/protests/ProtestsProviders.ts(4,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'? +apps/api/src/domain/protests/ProtestsProviders.ts(5,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'? +apps/api/src/domain/protests/ProtestsProviders.ts(6,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'? +apps/api/src/domain/protests/ProtestsProviders.ts(7,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/protests/ProtestsService.test.ts(6,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/protests/ProtestsService.ts(1,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/race/presenters/RaceDetailPresenter.ts(2,15): error TS2724: '"@core/racing/application/ports/ImageServicePort"' has no exported member named 'IImageServicePort'. Did you mean 'ImageServicePort'? +apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts(15,74): error TS2352: Conversion of type '{ id: PenaltyId; driverId: string; type: string; value: number; reason: string; issuedBy: string; issuedAt: string; notes: string | undefined; }' to type 'RacePenaltyDTO' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + Types of property 'id' are incompatible. + Type 'PenaltyId' is not comparable to type 'string'. +apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts(1,15): error TS2724: '"@core/racing/application/ports/ImageServicePort"' has no exported member named 'IImageServicePort'. Did you mean 'ImageServicePort'? +apps/api/src/domain/race/RaceProviders.ts(5,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'? +apps/api/src/domain/race/RaceProviders.ts(6,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'? +apps/api/src/domain/race/RaceProviders.ts(7,15): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'? +apps/api/src/domain/race/RaceProviders.ts(8,15): error TS2724: '"@core/racing/domain/repositories/PenaltyRepository"' has no exported member named 'IPenaltyRepository'. Did you mean 'PenaltyRepository'? +apps/api/src/domain/race/RaceProviders.ts(9,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'? +apps/api/src/domain/race/RaceProviders.ts(10,15): error TS2724: '"@core/racing/domain/repositories/RaceRegistrationRepository"' has no exported member named 'IRaceRegistrationRepository'. Did you mean 'RaceRegistrationRepository'? +apps/api/src/domain/race/RaceProviders.ts(11,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'? +apps/api/src/domain/race/RaceProviders.ts(12,15): error TS2724: '"@core/racing/domain/repositories/ResultRepository"' has no exported member named 'IResultRepository'. Did you mean 'ResultRepository'? +apps/api/src/domain/race/RaceProviders.ts(13,15): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'? +apps/api/src/domain/race/RaceProviders.ts(14,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/race/RaceService.ts(11,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/sponsor/SponsorProviders.ts(6,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(7,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(8,10): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(9,10): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(10,10): error TS2724: '"@core/racing/domain/repositories/LeagueWalletRepository"' has no exported member named 'ILeagueWalletRepository'. Did you mean 'LeagueWalletRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(11,10): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(12,10): error TS2724: '"@core/racing/domain/repositories/SeasonRepository"' has no exported member named 'ISeasonRepository'. Did you mean 'SeasonRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(13,10): error TS2724: '"@core/racing/domain/repositories/SeasonSponsorshipRepository"' has no exported member named 'ISeasonSponsorshipRepository'. Did you mean 'SeasonSponsorshipRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(14,10): error TS2724: '"@core/racing/domain/repositories/SponsorRepository"' has no exported member named 'ISponsorRepository'. Did you mean 'SponsorRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(15,10): error TS2724: '"@core/racing/domain/repositories/SponsorshipPricingRepository"' has no exported member named 'ISponsorshipPricingRepository'. Did you mean 'SponsorshipPricingRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(16,10): error TS2724: '"@core/racing/domain/repositories/SponsorshipRequestRepository"' has no exported member named 'ISponsorshipRequestRepository'. Did you mean 'SponsorshipRequestRepository'? +apps/api/src/domain/sponsor/SponsorProviders.ts(17,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/sponsor/SponsorService.test.ts(13,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/sponsor/SponsorService.ts(38,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/domain/team/TeamProviders.ts(33,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'? +apps/api/src/domain/team/TeamProviders.ts(34,15): error TS2724: '"@core/racing/domain/repositories/TeamMembershipRepository"' has no exported member named 'ITeamMembershipRepository'. Did you mean 'TeamMembershipRepository'? +apps/api/src/domain/team/TeamProviders.ts(35,15): error TS2724: '"@core/racing/domain/repositories/TeamRepository"' has no exported member named 'ITeamRepository'. Did you mean 'TeamRepository'? +apps/api/src/domain/team/TeamProviders.ts(36,15): error TS2724: '"@core/racing/domain/repositories/TeamStatsRepository"' has no exported member named 'ITeamStatsRepository'. Did you mean 'TeamStatsRepository'? +apps/api/src/domain/team/TeamProviders.ts(37,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/team/TeamService.test.ts(9,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/domain/team/TeamService.ts(14,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts(1,15): error TS2724: '"@core/identity/domain/repositories/AchievementRepository"' has no exported member named 'IAchievementRepository'. Did you mean 'AchievementRepository'? +apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts(7,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(7,15): error TS2724: '"@core/media/domain/repositories/AvatarGenerationRepository"' has no exported member named 'IAvatarGenerationRepository'. Did you mean 'AvatarGenerationRepository'? +apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(8,15): error TS2724: '"@core/media/domain/repositories/AvatarRepository"' has no exported member named 'IAvatarRepository'. Did you mean 'AvatarRepository'? +apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(9,15): error TS2724: '"@core/media/domain/repositories/MediaRepository"' has no exported member named 'IMediaRepository'. Did you mean 'MediaRepository'? +apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(9,15): error TS2724: '"@core/notifications/domain/repositories/NotificationPreferenceRepository"' has no exported member named 'INotificationPreferenceRepository'. Did you mean 'NotificationPreferenceRepository'? +apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(10,15): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(8,5): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(9,5): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(11,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(12,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(13,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'? +apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(13,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'? +apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(7,15): error TS2724: '"@core/social/domain/repositories/FeedRepository"' has no exported member named 'IFeedRepository'. Did you mean 'FeedRepository'? +apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(8,15): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'? +apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts(1,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'. +apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(7,15): error TS2724: '"@core/notifications/domain/repositories/NotificationPreferenceRepository"' has no exported member named 'INotificationPreferenceRepository'. Did you mean 'NotificationPreferenceRepository'? +apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(8,15): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'? +apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(9,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(7,15): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'? +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(7,41): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'? +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(8,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'? +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(9,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'? +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(10,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'? +apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(10,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'? +apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts(116,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations. +apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts(13,15): error TS2724: '"@core/social/domain/repositories/FeedRepository"' has no exported member named 'IFeedRepository'. Did you mean 'FeedRepository'? +apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts(14,15): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'?