website refactor

This commit is contained in:
2026-01-16 22:32:55 +01:00
parent 27f5a52e04
commit 9edf64130f
84 changed files with 497 additions and 300 deletions

View File

@@ -1,5 +1,5 @@
import { ListUsersUseCase } from '@core/admin/application/use-cases/ListUsersUseCase';
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
import type { Provider } from '@nestjs/common';
import { Module } from '@nestjs/common';
import { InMemoryAdminPersistenceModule } from '../../persistence/inmemory/InMemoryAdminPersistenceModule';
@@ -18,14 +18,14 @@ const adminProviders: Provider[] = [
{
provide: ListUsersUseCase,
useFactory: (
repository: IAdminUserRepository,
repository: AdminUserRepository,
) => new ListUsersUseCase(repository),
inject: [ADMIN_USER_REPOSITORY_TOKEN],
},
{
provide: GetDashboardStatsUseCase,
useFactory: (
repository: IAdminUserRepository,
repository: AdminUserRepository,
) => new GetDashboardStatsUseCase(repository),
inject: [ADMIN_USER_REPOSITORY_TOKEN],
},

View File

@@ -1,4 +1,4 @@
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { DashboardStatsResult } from '../use-cases/GetDashboardStatsUseCase';
export interface DashboardStatsResponse {

View File

@@ -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';
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto';
export type ListUsersViewModel = UserListResponseDto;

View File

@@ -1,8 +1,10 @@
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
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 { 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;
@@ -44,7 +46,7 @@ export type GetDashboardStatsApplicationError = ApplicationErrorCode<GetDashboar
export class GetDashboardStatsUseCase {
constructor(
private readonly adminUserRepo: IAdminUserRepository,
private readonly adminUserRepo: AdminUserRepository,
) {}
async execute(input: GetDashboardStatsInput): Promise<Result<DashboardStatsResult, GetDashboardStatsApplicationError>> {
@@ -73,25 +75,25 @@ export class GetDashboardStatsUseCase {
// Calculate basic stats
const totalUsers = allUsers.length;
const activeUsers = allUsers.filter(u => u.status.value === 'active').length;
const suspendedUsers = allUsers.filter(u => u.status.value === 'suspended').length;
const deletedUsers = allUsers.filter(u => u.status.value === 'deleted').length;
const systemAdmins = allUsers.filter(u => u.isSystemAdmin()).length;
const activeUsers = allUsers.filter((u: AdminUser) => u.status.value === 'active').length;
const suspendedUsers = allUsers.filter((u: AdminUser) => u.status.value === 'suspended').length;
const deletedUsers = allUsers.filter((u: AdminUser) => u.status.value === 'deleted').length;
const systemAdmins = allUsers.filter((u: AdminUser) => u.isSystemAdmin()).length;
// Recent logins (last 24 hours)
const oneDayAgo = new Date();
oneDayAgo.setDate(oneDayAgo.getDate() - 1);
const recentLogins = allUsers.filter(u => u.lastLoginAt && u.lastLoginAt > oneDayAgo).length;
const recentLogins = allUsers.filter((u: AdminUser) => u.lastLoginAt && u.lastLoginAt > oneDayAgo).length;
// New users today
const today = new Date();
today.setHours(0, 0, 0, 0);
const newUsersToday = allUsers.filter(u => u.createdAt > today).length;
const newUsersToday = allUsers.filter((u: AdminUser) => u.createdAt > today).length;
// Role distribution
const roleCounts: Record<string, number> = {};
allUsers.forEach(user => {
user.roles.forEach(role => {
allUsers.forEach((user: AdminUser) => {
user.roles.forEach((role: UserRole) => {
const roleValue = role.value;
roleCounts[roleValue] = (roleCounts[roleValue] || 0) + 1;
});
@@ -110,7 +112,7 @@ export class GetDashboardStatsUseCase {
date.setDate(date.getDate() - i);
const dateStr = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
const count = allUsers.filter(u => {
const count = allUsers.filter((u: AdminUser) => {
const userDate = new Date(u.createdAt);
return userDate.toDateString() === date.toDateString();
}).length;
@@ -129,12 +131,12 @@ export class GetDashboardStatsUseCase {
date.setDate(date.getDate() - i);
const dateStr = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
const newUsers = allUsers.filter(u => {
const newUsers = allUsers.filter((u: AdminUser) => {
const userDate = new Date(u.createdAt);
return userDate.toDateString() === date.toDateString();
}).length;
const logins = allUsers.filter(u => {
const logins = allUsers.filter((u: AdminUser) => {
const loginDate = u.lastLoginAt;
return loginDate && loginDate.toDateString() === date.toDateString();
}).length;

View File

@@ -1,6 +1,6 @@
import type { IPageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import type { Logger } from '@core/shared/domain/Logger';
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 { Provider } from '@nestjs/common';
import {
@@ -28,13 +28,13 @@ export const AnalyticsProviders: Provider[] = [
GetAnalyticsMetricsPresenter,
{
provide: RecordPageViewUseCase,
useFactory: (repo: IPageViewRepository, logger: Logger) =>
useFactory: (repo: PageViewRepository, logger: Logger) =>
new RecordPageViewUseCase(repo, logger),
inject: [ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
{
provide: RecordEngagementUseCase,
useFactory: (repo: IEngagementRepository, logger: Logger) =>
useFactory: (repo: EngagementRepository, logger: Logger) =>
new RecordEngagementUseCase(repo, logger),
inject: [ANALYTICS_ENGAGEMENT_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
@@ -46,7 +46,7 @@ export const AnalyticsProviders: Provider[] = [
},
{
provide: GetAnalyticsMetricsUseCase,
useFactory: (logger: Logger, repo: IPageViewRepository) =>
useFactory: (logger: Logger, repo: PageViewRepository) =>
new GetAnalyticsMetricsUseCase(logger, repo),
inject: [LOGGER_TOKEN, ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN],
},

View File

@@ -8,12 +8,12 @@ import { LogoutUseCase } from '@core/identity/application/use-cases/LogoutUseCas
import { ResetPasswordUseCase } from '@core/identity/application/use-cases/ResetPasswordUseCase';
import { SignupSponsorUseCase } from '@core/identity/application/use-cases/SignupSponsorUseCase';
import { SignupUseCase } from '@core/identity/application/use-cases/SignupUseCase';
import type { IMagicLinkNotificationPort } from '@core/identity/domain/ports/MagicLinkNotificationPort';
import type { IAuthRepository } from '@core/identity/domain/repositories/AuthRepository';
import type { ICompanyRepository } from '@core/identity/domain/repositories/CompanyRepository';
import type { IMagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { Logger } from '@core/shared/domain/Logger';
import type { MagicLinkNotificationPort } from '@core/identity/domain/ports/MagicLinkNotificationPort';
import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository';
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 {
AUTH_REPOSITORY_TOKEN,
@@ -66,8 +66,8 @@ export const AuthProviders: Provider[] = [
{
provide: LOGIN_USE_CASE_TOKEN,
useFactory: (
authRepo: IAuthRepository,
passwordHashing: IPasswordHashingService,
authRepo: AuthRepository,
passwordHashing: PasswordHashingService,
logger: Logger,
) => new LoginUseCase(authRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],
@@ -75,8 +75,8 @@ export const AuthProviders: Provider[] = [
{
provide: SIGNUP_USE_CASE_TOKEN,
useFactory: (
authRepo: IAuthRepository,
passwordHashing: IPasswordHashingService,
authRepo: AuthRepository,
passwordHashing: PasswordHashingService,
logger: Logger,
) => new SignupUseCase(authRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],
@@ -84,9 +84,9 @@ export const AuthProviders: Provider[] = [
{
provide: SIGNUP_SPONSOR_USE_CASE_TOKEN,
useFactory: (
authRepo: IAuthRepository,
companyRepo: ICompanyRepository,
passwordHashing: IPasswordHashingService,
authRepo: AuthRepository,
companyRepo: CompanyRepository,
passwordHashing: PasswordHashingService,
logger: Logger,
) => new SignupSponsorUseCase(authRepo, companyRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, COMPANY_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],
@@ -119,9 +119,9 @@ export const AuthProviders: Provider[] = [
{
provide: FORGOT_PASSWORD_USE_CASE_TOKEN,
useFactory: (
authRepo: IAuthRepository,
magicLinkRepo: IMagicLinkRepository,
notificationPort: IMagicLinkNotificationPort,
authRepo: AuthRepository,
magicLinkRepo: MagicLinkRepository,
notificationPort: MagicLinkNotificationPort,
logger: Logger,
) => new ForgotPasswordUseCase(authRepo, magicLinkRepo, notificationPort, logger),
inject: [AUTH_REPOSITORY_TOKEN, MAGIC_LINK_REPOSITORY_TOKEN, MAGIC_LINK_NOTIFICATION_PORT_TOKEN, LOGGER_TOKEN],
@@ -129,9 +129,9 @@ export const AuthProviders: Provider[] = [
{
provide: RESET_PASSWORD_USE_CASE_TOKEN,
useFactory: (
authRepo: IAuthRepository,
magicLinkRepo: IMagicLinkRepository,
passwordHashing: IPasswordHashingService,
authRepo: AuthRepository,
magicLinkRepo: MagicLinkRepository,
passwordHashing: PasswordHashingService,
logger: Logger,
) => new ResetPasswordUseCase(authRepo, magicLinkRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, MAGIC_LINK_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],

View File

@@ -1,6 +1,6 @@
import { Inject } from '@nestjs/common';
import type { Logger } from '@core/shared/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import {
ForgotPasswordUseCase,

View File

@@ -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';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { AuthenticatedUserDTO } from '../dtos/AuthDto';
type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult;

View File

@@ -1,5 +1,5 @@
import type { LogoutResult } from '@core/identity/application/use-cases/LogoutUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
export interface CommandResultDTO {
success: boolean;

View File

@@ -1,5 +1,5 @@
import { ForgotPasswordResult } from '@core/identity/application/use-cases/ForgotPasswordUseCase';
import { UseCaseOutputPort } from '@core/shared/application';
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Injectable } from '@nestjs/common';
@Injectable()

View File

@@ -1,5 +1,5 @@
import { ResetPasswordResult } from '@core/identity/application/use-cases/ResetPasswordUseCase';
import { UseCaseOutputPort } from '@core/shared/application';
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Injectable } from '@nestjs/common';
@Injectable()

View File

@@ -1,4 +1,4 @@
import type { Logger } from '@core/shared/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Inject, Module, OnModuleInit } from '@nestjs/common';
import type { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';

View File

@@ -2,10 +2,10 @@ import type { IdentitySessionPort } from '@core/identity/application/ports/Ident
import { SignupWithEmailUseCase } from '@core/identity/application/use-cases/SignupWithEmailUseCase';
import {
CreateAchievementUseCase,
type IAchievementRepository,
type AchievementRepository,
} from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase';
import type { IUserRepository } from '@core/identity/domain/repositories/UserRepository';
import type { Logger } from '@core/shared/domain/Logger';
import type { UserRepository } from '@core/identity/domain/repositories/UserRepository';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Provider } from '@nestjs/common';
import { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';
@@ -116,7 +116,7 @@ export const BootstrapProviders: Provider[] = [
},
{
provide: USER_REPOSITORY_TOKEN,
useFactory: (userRepository: IUserRepository) => userRepository,
useFactory: (userRepository: UserRepository) => userRepository,
inject: [IDENTITY_USER_REPOSITORY_TOKEN],
},
// Achievement repository is now provided by AchievementPersistenceModule
@@ -128,7 +128,7 @@ export const BootstrapProviders: Provider[] = [
{
provide: SIGNUP_USE_CASE_TOKEN,
useFactory: (
userRepository: IUserRepository,
userRepository: UserRepository,
sessionPort: IdentitySessionPort,
logger: Logger
) => {
@@ -143,7 +143,7 @@ export const BootstrapProviders: Provider[] = [
{
provide: CREATE_ACHIEVEMENT_USE_CASE_TOKEN,
useFactory: (
achievementRepository: IAchievementRepository,
achievementRepository: AchievementRepository,
logger: Logger
) => {
return new CreateAchievementUseCase(

View File

@@ -224,7 +224,7 @@ describe('Racing seed (bootstrap)', () => {
assertNoDuplicateIds(seed.seasonSponsorships.map((s) => s.id));
assertNoDuplicateIds(seed.sponsorshipRequests.map((r) => r.id));
assertNoDuplicateIds(seed.protests.map((p) => p.id));
assertNoDuplicateIds(seed.penalties.map((p) => p.id));
assertNoDuplicateIds(seed.penalties.map((p) => p.id.toString()));
assertNoDuplicateIds(seed.leagueWallets.map((w) => w.id.toString()));
assertNoDuplicateIds(seed.leagueWalletTransactions.map((t) => t.id.toString()));
});

View File

@@ -1,16 +1,16 @@
import { Provider } from '@nestjs/common';
// Import core interfaces
import { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/application/Logger';
import { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
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 { FeedRepository } from '@core/social/domain/repositories/FeedRepository';
import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import { ImageServicePort } from '@core/media/application/ports/ImageServicePort';
import { DashboardOverviewUseCase } from '@core/racing/application/use-cases/DashboardOverviewUseCase';
@@ -61,15 +61,15 @@ export const DashboardProviders: Provider[] = [
{
provide: DASHBOARD_OVERVIEW_USE_CASE_TOKEN,
useFactory: (
driverRepo: IDriverRepository,
raceRepo: IRaceRepository,
resultRepo: IResultRepository,
leagueRepo: ILeagueRepository,
standingRepo: IStandingRepository,
membershipRepo: ILeagueMembershipRepository,
registrationRepo: IRaceRegistrationRepository,
feedRepo: IFeedRepository,
socialRepo: ISocialGraphRepository,
driverRepo: DriverRepository,
raceRepo: RaceRepository,
resultRepo: ResultRepository,
leagueRepo: LeagueRepository,
standingRepo: StandingRepository,
membershipRepo: LeagueMembershipRepository,
registrationRepo: RaceRegistrationRepository,
feedRepo: FeedRepository,
socialRepo: SocialGraphRepository,
imageService: ImageServicePort,
) =>
new DashboardOverviewUseCase(

View File

@@ -4,7 +4,7 @@ import { DashboardOverviewDTO } from './dtos/DashboardOverviewDTO';
import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter';
// Core imports
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
// Tokens (standalone to avoid circular imports)
import {

View File

@@ -3,15 +3,15 @@ import { Provider } from '@nestjs/common';
// Import core interfaces
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import { DriverExtendedProfileProvider } from '@core/racing/application/ports/DriverExtendedProfileProvider';
import { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { ILiveryRepository } from '@core/racing/domain/repositories/LiveryRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { LiveryRepository } from '@core/racing/domain/repositories/LiveryRepository';
import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { Logger } from '@core/shared/domain/Logger';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
// Import use cases
import { CompleteDriverOnboardingUseCase } from '@core/racing/application/use-cases/CompleteDriverOnboardingUseCase';
@@ -37,10 +37,10 @@ import { InMemoryMediaRepository } from '@adapters/racing/persistence/media/InMe
// Import MediaResolverAdapter
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
// Import repository tokens
import { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
// Import use case interfaces
import type { IDriverStatsUseCase } from '@core/racing/application/use-cases/DriverStatsUseCase';
import type { IRankingUseCase } from '@core/racing/application/use-cases/RankingUseCase';
import { DriverStatsUseCase } from '@core/racing/application/use-cases/DriverStatsUseCase';
import { RankingUseCase } from '@core/racing/application/use-cases/RankingUseCase';
// Import presenters
import { CompleteOnboardingPresenter } from './presenters/CompleteOnboardingPresenter';
@@ -104,7 +104,7 @@ export const DriverProviders: Provider[] = createLoggedProviders([
DriverRegistrationStatusPresenter,
{
provide: DriverPresenter,
useFactory: (driverStatsRepository: IDriverStatsRepository, mediaResolver: MediaResolverPort) => {
useFactory: (driverStatsRepository: DriverStatsRepository, mediaResolver: MediaResolverPort) => {
const presenter = new DriverPresenter(driverStatsRepository, mediaResolver);
return presenter;
},
@@ -161,8 +161,8 @@ export const DriverProviders: Provider[] = createLoggedProviders([
{
provide: RANKING_SERVICE_TOKEN,
useFactory: (
standingRepo: IStandingRepository,
driverRepo: IDriverRepository,
standingRepo: StandingRepository,
driverRepo: DriverRepository,
logger: Logger
) => new RankingUseCase(standingRepo, driverRepo, logger),
inject: ['IStandingRepository', DRIVER_REPOSITORY_TOKEN, LOGGER_TOKEN],
@@ -170,8 +170,8 @@ export const DriverProviders: Provider[] = createLoggedProviders([
{
provide: DRIVER_STATS_SERVICE_TOKEN,
useFactory: (
resultRepo: IResultRepository,
standingRepo: IStandingRepository,
resultRepo: ResultRepository,
standingRepo: StandingRepository,
logger: Logger
) => new DriverStatsUseCase(resultRepo, standingRepo, logger),
inject: ['IResultRepository', 'IStandingRepository', LOGGER_TOKEN],
@@ -206,9 +206,9 @@ export const DriverProviders: Provider[] = createLoggedProviders([
{
provide: GET_DRIVERS_LEADERBOARD_USE_CASE_TOKEN,
useFactory: (
driverRepo: IDriverRepository,
rankingUseCase: IRankingUseCase,
driverStatsUseCase: IDriverStatsUseCase,
driverRepo: DriverRepository,
rankingUseCase: RankingUseCase,
driverStatsUseCase: DriverStatsUseCase,
logger: Logger,
) => new GetDriversLeaderboardUseCase(
driverRepo,
@@ -220,36 +220,36 @@ export const DriverProviders: Provider[] = createLoggedProviders([
},
{
provide: GET_TOTAL_DRIVERS_USE_CASE_TOKEN,
useFactory: (driverRepo: IDriverRepository) => new GetTotalDriversUseCase(driverRepo),
useFactory: (driverRepo: DriverRepository) => new GetTotalDriversUseCase(driverRepo),
inject: [DRIVER_REPOSITORY_TOKEN],
},
{
provide: COMPLETE_DRIVER_ONBOARDING_USE_CASE_TOKEN,
useFactory: (driverRepo: IDriverRepository, logger: Logger) => new CompleteDriverOnboardingUseCase(driverRepo, logger),
useFactory: (driverRepo: DriverRepository, logger: Logger) => new CompleteDriverOnboardingUseCase(driverRepo, logger),
inject: [DRIVER_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
{
provide: IS_DRIVER_REGISTERED_FOR_RACE_USE_CASE_TOKEN,
useFactory: (registrationRepo: IRaceRegistrationRepository, logger: Logger) =>
useFactory: (registrationRepo: RaceRegistrationRepository, logger: Logger) =>
new IsDriverRegisteredForRaceUseCase(registrationRepo, logger),
inject: [RACE_REGISTRATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
{
provide: UPDATE_DRIVER_PROFILE_USE_CASE_TOKEN,
useFactory: (driverRepo: IDriverRepository, logger: Logger) =>
useFactory: (driverRepo: DriverRepository, logger: Logger) =>
new UpdateDriverProfileUseCase(driverRepo, logger),
inject: [DRIVER_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
{
provide: GET_PROFILE_OVERVIEW_USE_CASE_TOKEN,
useFactory: (
driverRepo: IDriverRepository,
teamRepository: ITeamRepository,
teamMembershipRepository: ITeamMembershipRepository,
socialRepository: ISocialGraphRepository,
driverRepo: DriverRepository,
teamRepository: TeamRepository,
teamMembershipRepository: TeamMembershipRepository,
socialRepository: SocialGraphRepository,
driverExtendedProfileProvider: DriverExtendedProfileProvider,
driverStatsUseCase: IDriverStatsUseCase,
rankingUseCase: IRankingUseCase,
driverStatsUseCase: DriverStatsUseCase,
rankingUseCase: RankingUseCase,
) =>
new GetProfileOverviewUseCase(
driverRepo,
@@ -272,13 +272,13 @@ export const DriverProviders: Provider[] = createLoggedProviders([
},
{
provide: GET_DRIVER_LIVERIES_USE_CASE_TOKEN,
useFactory: (liveryRepository: ILiveryRepository, logger: Logger) =>
useFactory: (liveryRepository: LiveryRepository, logger: Logger) =>
new GetDriverLiveriesUseCase(liveryRepository, logger),
inject: [LIVERY_REPOSITORY_TOKEN, LOGGER_TOKEN],
},
{
provide: GET_DRIVER_USE_CASE_TOKEN,
useFactory: (driverRepo: IDriverRepository) => new GetDriverUseCase(driverRepo),
useFactory: (driverRepo: DriverRepository) => new GetDriverUseCase(driverRepo),
inject: [DRIVER_REPOSITORY_TOKEN],
},
], initLogger);

View File

@@ -30,7 +30,7 @@ import { DriverStatsPresenter } from './presenters/DriverStatsPresenter';
import { GetDriverLiveriesPresenter } from './presenters/GetDriverLiveriesPresenter';
// Tokens
import type { Logger } from '@core/shared/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import {
COMPLETE_DRIVER_ONBOARDING_USE_CASE_TOKEN,
GET_DRIVER_LIVERIES_USE_CASE_TOKEN,

View File

@@ -1,7 +1,7 @@
import { MediaReference } from '@core/domain/media/MediaReference';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { Driver } from '@core/racing/domain/entities/Driver';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import { Result } from '@core/shared/domain/Result';
import type { GetDriverOutputDTO } from '../dtos/GetDriverOutputDTO';
@@ -10,7 +10,7 @@ export class DriverPresenter {
private mediaResolver: MediaResolverPort | undefined;
constructor(
private readonly driverStatsRepository: IDriverStatsRepository,
private readonly driverStatsRepository: DriverStatsRepository,
mediaResolver?: MediaResolverPort
) {
this.mediaResolver = mediaResolver;

View File

@@ -5,23 +5,23 @@ import * as LeagueTokens from './LeagueTokens';
// Import core interfaces
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
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 { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/application/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 { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
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 concrete in-memory implementations
import { getLeagueScoringPresetById, listLeagueScoringPresets } from '@adapters/bootstrap/LeagueScoringPresets';
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
import { InMemoryLeagueStandingsRepository } from '@adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository';
import type { ILeagueWalletRepository } from "@core/racing/domain/repositories/LeagueWalletRepository";
import type { ITransactionRepository } from "@core/racing/domain/repositories/TransactionRepository";
import type { LeagueWalletRepository } from "@core/racing/domain/repositories/LeagueWalletRepository";
import type { TransactionRepository } from "@core/racing/domain/repositories/TransactionRepository";
// Import use cases
import { ApproveLeagueJoinRequestUseCase } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
@@ -205,18 +205,18 @@ export const LeagueProviders: Provider[] = [
// Use cases
{
provide: GET_ALL_LEAGUES_WITH_CAPACITY_USE_CASE,
useFactory: (leagueRepo: ILeagueRepository, membershipRepo: ILeagueMembershipRepository) =>
useFactory: (leagueRepo: LeagueRepository, membershipRepo: LeagueMembershipRepository) =>
new GetAllLeaguesWithCapacityUseCase(leagueRepo, membershipRepo),
inject: [LEAGUE_REPOSITORY_TOKEN, LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN],
},
{
provide: GET_ALL_LEAGUES_WITH_CAPACITY_AND_SCORING_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
membershipRepo: ILeagueMembershipRepository,
seasonRepo: ISeasonRepository,
scoringRepo: import('@core/racing/domain/repositories/LeagueScoringConfigRepository').ILeagueScoringConfigRepository,
gameRepo: import('@core/racing/domain/repositories/GameRepository').IGameRepository,
leagueRepo: LeagueRepository,
membershipRepo: LeagueMembershipRepository,
seasonRepo: SeasonRepository,
scoringRepo: import('@core/racing/domain/repositories/LeagueScoringConfigRepository').LeagueScoringConfigRepository,
gameRepo: import('@core/racing/domain/repositories/GameRepository').GameRepository,
) =>
new GetAllLeaguesWithCapacityAndScoringUseCase(
leagueRepo,
@@ -237,8 +237,8 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_STANDINGS_USE_CASE,
useFactory: (
standingRepo: IStandingRepository,
driverRepo: IDriverRepository,
standingRepo: StandingRepository,
driverRepo: DriverRepository,
) => new GetLeagueStandingsUseCase(standingRepo, driverRepo),
inject: [
STANDING_REPOSITORY_TOKEN,
@@ -263,54 +263,54 @@ export const LeagueProviders: Provider[] = [
},
{
provide: GET_TOTAL_LEAGUES_USE_CASE,
useFactory: (leagueRepo: ILeagueRepository) =>
useFactory: (leagueRepo: LeagueRepository) =>
new GetTotalLeaguesUseCase(leagueRepo),
inject: [LEAGUE_REPOSITORY_TOKEN],
},
{
provide: GET_LEAGUE_JOIN_REQUESTS_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
driverRepo: IDriverRepository,
leagueRepo: ILeagueRepository,
membershipRepo: LeagueMembershipRepository,
driverRepo: DriverRepository,
leagueRepo: LeagueRepository,
) => new GetLeagueJoinRequestsUseCase(membershipRepo, driverRepo, leagueRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, LEAGUE_REPOSITORY_TOKEN],
},
{
provide: APPROVE_LEAGUE_JOIN_REQUEST_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
leagueRepo: ILeagueRepository,
membershipRepo: LeagueMembershipRepository,
leagueRepo: LeagueRepository,
) => new ApproveLeagueJoinRequestUseCase(membershipRepo, leagueRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN, LEAGUE_REPOSITORY_TOKEN],
},
{
provide: REJECT_LEAGUE_JOIN_REQUEST_USE_CASE,
useFactory: (membershipRepo: ILeagueMembershipRepository) =>
useFactory: (membershipRepo: LeagueMembershipRepository) =>
new RejectLeagueJoinRequestUseCase(membershipRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN],
},
{
provide: REMOVE_LEAGUE_MEMBER_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
membershipRepo: LeagueMembershipRepository,
) => new RemoveLeagueMemberUseCase(membershipRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN],
},
{
provide: UPDATE_LEAGUE_MEMBER_ROLE_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
membershipRepo: LeagueMembershipRepository,
) => new UpdateLeagueMemberRoleUseCase(membershipRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN],
},
{
provide: GET_LEAGUE_OWNER_SUMMARY_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
driverRepo: IDriverRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
standingRepo: IStandingRepository,
leagueRepo: LeagueRepository,
driverRepo: DriverRepository,
leagueMembershipRepo: LeagueMembershipRepository,
standingRepo: StandingRepository,
) => new GetLeagueOwnerSummaryUseCase(leagueRepo, driverRepo, leagueMembershipRepo, standingRepo),
inject: [
LEAGUE_REPOSITORY_TOKEN,
@@ -322,10 +322,10 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_PROTESTS_USE_CASE,
useFactory: (
raceRepo: IRaceRepository,
protestRepo: IProtestRepository,
driverRepo: IDriverRepository,
leagueRepo: ILeagueRepository,
raceRepo: RaceRepository,
protestRepo: ProtestRepository,
driverRepo: DriverRepository,
leagueRepo: LeagueRepository,
) => new GetLeagueProtestsUseCase(raceRepo, protestRepo, driverRepo, leagueRepo),
inject: [
RACE_REPOSITORY_TOKEN,
@@ -341,18 +341,18 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_MEMBERSHIPS_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
driverRepo: IDriverRepository,
leagueRepo: ILeagueRepository,
membershipRepo: LeagueMembershipRepository,
driverRepo: DriverRepository,
leagueRepo: LeagueRepository,
) => new GetLeagueMembershipsUseCase(membershipRepo, driverRepo, leagueRepo),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, LEAGUE_REPOSITORY_TOKEN],
},
{
provide: GET_LEAGUE_ROSTER_MEMBERS_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
driverRepo: IDriverRepository,
leagueRepo: ILeagueRepository,
membershipRepo: LeagueMembershipRepository,
driverRepo: DriverRepository,
leagueRepo: LeagueRepository,
) => new GetLeagueRosterMembersUseCase(membershipRepo, driverRepo, leagueRepo),
inject: [
LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN,
@@ -363,9 +363,9 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_ROSTER_JOIN_REQUESTS_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
driverRepo: IDriverRepository,
leagueRepo: ILeagueRepository,
membershipRepo: LeagueMembershipRepository,
driverRepo: DriverRepository,
leagueRepo: LeagueRepository,
) => new GetLeagueRosterJoinRequestsUseCase(membershipRepo, driverRepo, leagueRepo),
inject: [
LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN,
@@ -376,9 +376,9 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_SCHEDULE_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
seasonRepo: ISeasonRepository,
raceRepo: IRaceRepository,
leagueRepo: LeagueRepository,
seasonRepo: SeasonRepository,
raceRepo: RaceRepository,
logger: Logger,
) => new GetLeagueScheduleUseCase(leagueRepo, seasonRepo, raceRepo, logger),
inject: [
@@ -391,8 +391,8 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_ADMIN_PERMISSIONS_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
leagueRepo: LeagueRepository,
leagueMembershipRepo: LeagueMembershipRepository,
logger: Logger,
) => new GetLeagueAdminPermissionsUseCase(leagueRepo, leagueMembershipRepo, logger),
inject: [
@@ -404,9 +404,9 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_LEAGUE_WALLET_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
walletRepo: ILeagueWalletRepository,
transactionRepo: ITransactionRepository,
leagueRepo: LeagueRepository,
walletRepo: LeagueWalletRepository,
transactionRepo: TransactionRepository,
) => new GetLeagueWalletUseCase(leagueRepo, walletRepo, transactionRepo),
inject: [
LEAGUE_REPOSITORY_TOKEN,
@@ -417,9 +417,9 @@ export const LeagueProviders: Provider[] = [
{
provide: WITHDRAW_FROM_LEAGUE_WALLET_USE_CASE,
useFactory: (
leagueRepo: ILeagueRepository,
walletRepo: ILeagueWalletRepository,
transactionRepo: ITransactionRepository,
leagueRepo: LeagueRepository,
walletRepo: LeagueWalletRepository,
transactionRepo: TransactionRepository,
logger: Logger,
) => new WithdrawFromLeagueWalletUseCase(leagueRepo, walletRepo, transactionRepo, logger),
inject: [
@@ -432,11 +432,11 @@ export const LeagueProviders: Provider[] = [
{
provide: GET_SEASON_SPONSORSHIPS_USE_CASE,
useFactory: (
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
seasonRepo: ISeasonRepository,
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: IRaceRepository,
seasonSponsorshipRepo: SeasonSponsorshipRepository,
seasonRepo: SeasonRepository,
leagueRepo: LeagueRepository,
leagueMembershipRepo: LeagueMembershipRepository,
raceRepo: RaceRepository,
) =>
new GetSeasonSponsorshipsUseCase(
seasonSponsorshipRepo,
@@ -462,7 +462,7 @@ export const LeagueProviders: Provider[] = [
{
provide: JOIN_LEAGUE_USE_CASE,
useFactory: (
membershipRepo: ILeagueMembershipRepository,
membershipRepo: LeagueMembershipRepository,
logger: Logger,
) => new JoinLeagueUseCase(membershipRepo, logger),
inject: [LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
@@ -480,8 +480,8 @@ export const LeagueProviders: Provider[] = [
{
provide: LeagueTokens.CREATE_LEAGUE_SEASON_SCHEDULE_RACE_USE_CASE,
useFactory: (
seasonRepo: ISeasonRepository,
raceRepo: IRaceRepository,
seasonRepo: SeasonRepository,
raceRepo: RaceRepository,
logger: Logger,
) =>
new CreateLeagueSeasonScheduleRaceUseCase(seasonRepo, raceRepo, logger, {
@@ -496,8 +496,8 @@ export const LeagueProviders: Provider[] = [
{
provide: LeagueTokens.UPDATE_LEAGUE_SEASON_SCHEDULE_RACE_USE_CASE,
useFactory: (
seasonRepo: ISeasonRepository,
raceRepo: IRaceRepository,
seasonRepo: SeasonRepository,
raceRepo: RaceRepository,
logger: Logger,
) => new UpdateLeagueSeasonScheduleRaceUseCase(seasonRepo, raceRepo, logger),
inject: [
@@ -509,8 +509,8 @@ export const LeagueProviders: Provider[] = [
{
provide: LeagueTokens.DELETE_LEAGUE_SEASON_SCHEDULE_RACE_USE_CASE,
useFactory: (
seasonRepo: ISeasonRepository,
raceRepo: IRaceRepository,
seasonRepo: SeasonRepository,
raceRepo: RaceRepository,
logger: Logger,
) => new DeleteLeagueSeasonScheduleRaceUseCase(seasonRepo, raceRepo, logger),
inject: [
@@ -522,7 +522,7 @@ export const LeagueProviders: Provider[] = [
{
provide: LeagueTokens.PUBLISH_LEAGUE_SEASON_SCHEDULE_USE_CASE,
useFactory: (
seasonRepo: ISeasonRepository,
seasonRepo: SeasonRepository,
logger: Logger,
) => new PublishLeagueSeasonScheduleUseCase(seasonRepo, logger),
inject: [
@@ -533,7 +533,7 @@ export const LeagueProviders: Provider[] = [
{
provide: LeagueTokens.UNPUBLISH_LEAGUE_SEASON_SCHEDULE_USE_CASE,
useFactory: (
seasonRepo: ISeasonRepository,
seasonRepo: SeasonRepository,
logger: Logger,
) => new UnpublishLeagueSeasonScheduleUseCase(seasonRepo, logger),
inject: [

View File

@@ -58,7 +58,7 @@ import type { LeagueScoringConfigViewModel } from './presenters/LeagueScoringCon
import type { LeagueScoringPresetsViewModel } from './presenters/LeagueScoringPresetsPresenter';
// Core imports
import type { Logger } from '@core/shared/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
// Use cases
import { ApproveLeagueJoinRequestUseCase } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';

View File

@@ -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';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type {
AllLeaguesWithCapacityAndScoringDTO,
LeagueWithCapacityAndScoringDTO,

View File

@@ -1,5 +1,5 @@
import type { GetAllLeaguesWithCapacityResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { AllLeaguesWithCapacityDTO, LeagueWithCapacityDTO } from '../dtos/AllLeaguesWithCapacityDTO';
export class AllLeaguesWithCapacityPresenter implements UseCaseOutputPort<GetAllLeaguesWithCapacityResult> {

View File

@@ -1,6 +1,6 @@
import { ApproveLeagueJoinRequestResult } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { ApproveLeagueJoinRequestDTO } from '../dtos/ApproveLeagueJoinRequestDTO';
export class ApproveLeagueJoinRequestPresenter implements UseCaseOutputPort<ApproveLeagueJoinRequestResult> {

View File

@@ -1,5 +1,5 @@
import type { GetLeagueAdminPermissionsResult } from '@core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { LeagueAdminPermissionsDTO } from '../dtos/LeagueAdminPermissionsDTO';
export class GetLeagueAdminPermissionsPresenter implements UseCaseOutputPort<GetLeagueAdminPermissionsResult> {

View File

@@ -1,5 +1,5 @@
import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO';
import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO';

View File

@@ -1,5 +1,5 @@
import type { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
export class GetLeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {

View File

@@ -1,5 +1,5 @@
import type { GetLeagueWalletResult } from '@core/racing/application/use-cases/GetLeagueWalletUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { GetLeagueWalletOutputDTO, WalletTransactionDTO } from '../dtos/GetLeagueWalletOutputDTO';
export class GetLeagueWalletPresenter implements UseCaseOutputPort<GetLeagueWalletResult> {

View File

@@ -1,5 +1,5 @@
import type { GetSeasonSponsorshipsResult } from '@core/racing/application/use-cases/GetSeasonSponsorshipsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { SponsorshipDetailDTO } from '../../sponsor/dtos/SponsorshipDetailDTO';
import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO';

View File

@@ -1,5 +1,5 @@
import type { JoinLeagueResult } from '@core/racing/application/use-cases/JoinLeagueUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { JoinLeagueOutputDTO } from '../dtos/JoinLeagueOutputDTO';
export class JoinLeaguePresenter implements UseCaseOutputPort<JoinLeagueResult> {

View File

@@ -1,5 +1,5 @@
import type { GetLeagueFullConfigResult } from '@core/racing/application/use-cases/GetLeagueFullConfigUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { LeagueConfigFormModelDTO } from '../dtos/LeagueConfigFormModelDTO';
export class LeagueConfigPresenter implements UseCaseOutputPort<GetLeagueFullConfigResult> {

View File

@@ -1,5 +1,5 @@
import { GetLeagueJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueJoinRequestsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { LeagueJoinRequestWithDriverDTO } from '../dtos/LeagueJoinRequestWithDriverDTO';
export interface LeagueJoinRequestsViewModel {

View File

@@ -1,5 +1,5 @@
import { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {

View File

@@ -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';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Injectable } from '@nestjs/common';
import type { DriverDTO } from '../../driver/dtos/DriverDTO';
import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO';

View File

@@ -1,5 +1,5 @@
import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { RaceDTO } from '../../race/dtos/RaceDTO';
import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO';

View File

@@ -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';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
export interface LeagueScoringChampionshipViewModel {
id: string;

View File

@@ -1,5 +1,5 @@
import type { ListLeagueScoringPresetsResult } from '@core/racing/application/use-cases/ListLeagueScoringPresetsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { LeagueScoringPresetsDTO } from '../dtos/LeagueScoringPresetsDTO';
export type LeagueScoringPresetsViewModel = LeagueScoringPresetsDTO;

View File

@@ -1,4 +1,4 @@
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type {
CreateLeagueScheduleRaceOutputDTO,

View File

@@ -1,5 +1,5 @@
import type { RejectLeagueJoinRequestResult } from '@core/racing/application/use-cases/RejectLeagueJoinRequestUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { RejectJoinRequestOutputDTO } from '../dtos/RejectJoinRequestOutputDTO';
export class RejectLeagueJoinRequestPresenter implements UseCaseOutputPort<RejectLeagueJoinRequestResult> {

View File

@@ -1,5 +1,5 @@
import type { RemoveLeagueMemberResult } from '@core/racing/application/use-cases/RemoveLeagueMemberUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { RemoveLeagueMemberOutputDTO } from '../dtos/RemoveLeagueMemberOutputDTO';
export class RemoveLeagueMemberPresenter implements UseCaseOutputPort<RemoveLeagueMemberResult> {

View File

@@ -1,5 +1,5 @@
import type { TransferLeagueOwnershipResult } from '@core/racing/application/use-cases/TransferLeagueOwnershipUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { TransferLeagueOwnershipOutputDTO } from '../dtos/TransferLeagueOwnershipOutputDTO';
export class TransferLeagueOwnershipPresenter implements UseCaseOutputPort<TransferLeagueOwnershipResult> {

View File

@@ -1,5 +1,5 @@
import type { UpdateLeagueMemberRoleResult } from '@core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { UpdateLeagueMemberRoleOutputDTO } from '../dtos/UpdateLeagueMemberRoleOutputDTO';
export class UpdateLeagueMemberRolePresenter implements UseCaseOutputPort<UpdateLeagueMemberRoleResult> {

View File

@@ -1,5 +1,5 @@
import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO';
export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort<WithdrawFromLeagueWalletResult> {

View File

@@ -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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/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';

View File

@@ -8,7 +8,7 @@ import { IAvatarGenerationRepository } from '@core/media/domain/repositories/Ava
import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { Logger } from '@core/shared/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
// Import use cases
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';

View File

@@ -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/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import {
DELETE_MEDIA_USE_CASE_TOKEN,
GET_AVATAR_USE_CASE_TOKEN,

View File

@@ -3,7 +3,7 @@ import { GetAllNotificationsUseCase } from '@core/notifications/application/use-
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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { Provider } from '@nestjs/common';
import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens';
import {

View File

@@ -1,4 +1,4 @@
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { Inject, Injectable } from '@nestjs/common';
// Use cases

View File

@@ -1,5 +1,5 @@
import type { CreatePaymentResult } from '@core/payments/application/use-cases/CreatePaymentUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { CreatePaymentOutput } from '../dtos/PaymentsDto';
export class CreatePaymentPresenter implements UseCaseOutputPort<CreatePaymentResult> {

View File

@@ -1,5 +1,5 @@
import type { GetPaymentsResult } from '@core/payments/application/use-cases/GetPaymentsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetPaymentsOutput } from '../dtos/PaymentsDto';
export class GetPaymentsPresenter implements UseCaseOutputPort<GetPaymentsResult> {

View File

@@ -1,5 +1,5 @@
import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto';
export class UpdatePaymentStatusPresenter implements UseCaseOutputPort<UpdatePaymentStatusResult> {

View File

@@ -4,7 +4,7 @@ import { Provider } from '@nestjs/common';
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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
// Import concrete in-memory implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';

View File

@@ -3,7 +3,7 @@ import type {
ReviewProtestResult,
ReviewProtestUseCase,
} from '@core/racing/application/use-cases/ReviewProtestUseCase';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest';
import { ProtestsService } from './ProtestsService';

View File

@@ -1,4 +1,4 @@
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { Inject, Injectable } from '@nestjs/common';
// Use cases

View File

@@ -1,5 +1,5 @@
import type { ReviewProtestApplicationError, ReviewProtestResult } from '@core/racing/application/use-cases/ReviewProtestUseCase';
import type { UseCaseOutputPort } from '@core/shared/application';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
export interface ReviewProtestResponseDTO {
success: boolean;

View File

@@ -11,7 +11,7 @@ import type { IRaceRegistrationRepository } from '@core/racing/domain/repositori
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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
// Import concrete in-memory implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';

View File

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

View File

@@ -14,7 +14,7 @@ import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/S
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/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase';

View File

@@ -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/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO';

View File

@@ -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/domain/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
// Tokens
import {

View File

@@ -34,7 +34,7 @@ import type { IDriverRepository } from '@core/racing/domain/repositories/DriverR
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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
// Import concrete implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';

View File

@@ -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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO';

View File

@@ -11,7 +11,7 @@ import { UpdateTeamInputDTO } from './dtos/UpdateTeamInputDTO';
import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO';
// Core imports
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
// Use cases
import { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase';

View File

@@ -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';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { GetAllTeamsOutputDTO } from '../dtos/GetAllTeamsOutputDTO';
import { TeamListItemDTO } from '../dtos/TeamListItemDTO';

View File

@@ -1,5 +1,5 @@
import type { CreateTeamResult } from '@core/racing/application/use-cases/CreateTeamUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { CreateTeamOutputDTO } from '../dtos/CreateTeamOutputDTO';
export class CreateTeamPresenter implements UseCaseOutputPort<CreateTeamResult> {

View File

@@ -1,5 +1,5 @@
import type { GetDriverTeamResult } from '@core/racing/application/use-cases/GetDriverTeamUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { GetDriverTeamOutputDTO } from '../dtos/GetDriverTeamOutputDTO';
export class DriverTeamPresenter implements UseCaseOutputPort<GetDriverTeamResult> {

View File

@@ -1,5 +1,5 @@
import type { GetTeamDetailsResult } from '@core/racing/application/use-cases/GetTeamDetailsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetTeamDetailsOutputDTO } from '../dtos/GetTeamDetailsOutputDTO';
export class TeamDetailsPresenter implements UseCaseOutputPort<GetTeamDetailsResult> {

View File

@@ -1,5 +1,5 @@
import type { GetTeamJoinRequestsResult } from '@core/racing/application/use-cases/GetTeamJoinRequestsUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetTeamJoinRequestsOutputDTO } from '../dtos/GetTeamJoinRequestsOutputDTO';
export class TeamJoinRequestsPresenter implements UseCaseOutputPort<GetTeamJoinRequestsResult> {

View File

@@ -1,5 +1,5 @@
import type { GetTeamMembersResult } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetTeamMembersOutputDTO } from '../dtos/GetTeamMembersOutputDTO';
export class TeamMembersPresenter implements UseCaseOutputPort<GetTeamMembersResult> {

View File

@@ -1,5 +1,5 @@
import type { GetTeamMembershipResult } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetTeamMembershipOutputDTO } from '../dtos/GetTeamMembershipOutputDTO';
export class TeamMembershipPresenter implements UseCaseOutputPort<GetTeamMembershipResult> {

View File

@@ -1,5 +1,5 @@
import type { GetTeamsLeaderboardResult } from '@core/racing/application/use-cases/GetTeamsLeaderboardUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { GetTeamsLeaderboardOutputDTO } from '../dtos/GetTeamsLeaderboardOutputDTO';
export class TeamsLeaderboardPresenter implements UseCaseOutputPort<GetTeamsLeaderboardResult> {

View File

@@ -1,5 +1,5 @@
import type { UpdateTeamResult } from '@core/racing/application/use-cases/UpdateTeamUseCase';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { UpdateTeamOutputDTO } from '../dtos/UpdateTeamOutputDTO';
export class UpdateTeamPresenter implements UseCaseOutputPort<UpdateTeamResult> {

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { InMemoryAchievementRepository } from '@adapters/identity/persistence/inmemory/InMemoryAchievementRepository';

View File

@@ -2,11 +2,11 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { IPageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import type { IAnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import type { AnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository';
import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import { InMemoryAnalyticsSnapshotRepository } from '@adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository';
import { InMemoryEngagementRepository } from '@adapters/analytics/persistence/inmemory/InMemoryEngagementRepository';
@@ -23,17 +23,17 @@ import {
providers: [
{
provide: ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IPageViewRepository => new InMemoryPageViewRepository(logger),
useFactory: (logger: Logger): PageViewRepository => new InMemoryPageViewRepository(logger),
inject: ['Logger'],
},
{
provide: ANALYTICS_ENGAGEMENT_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IEngagementRepository => new InMemoryEngagementRepository(logger),
useFactory: (logger: Logger): EngagementRepository => new InMemoryEngagementRepository(logger),
inject: ['Logger'],
},
{
provide: ANALYTICS_SNAPSHOT_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IAnalyticsSnapshotRepository => new InMemoryAnalyticsSnapshotRepository(logger),
useFactory: (logger: Logger): AnalyticsSnapshotRepository => new InMemoryAnalyticsSnapshotRepository(logger),
inject: ['Logger'],
},
],

View File

@@ -3,8 +3,8 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { StoredUser } from '@core/identity/domain/repositories/UserRepository';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { Logger } from '@core/shared/application/Logger';
import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository';
import { InMemoryCompanyRepository } from '@adapters/identity/persistence/inmemory/InMemoryCompanyRepository';
@@ -36,7 +36,7 @@ import { AUTH_REPOSITORY_TOKEN, COMPANY_REPOSITORY_TOKEN, MAGIC_LINK_REPOSITORY_
},
{
provide: AUTH_REPOSITORY_TOKEN,
useFactory: (userRepository: InMemoryUserRepository, passwordHashingService: IPasswordHashingService, logger: Logger) =>
useFactory: (userRepository: InMemoryUserRepository, passwordHashingService: PasswordHashingService, logger: Logger) =>
new InMemoryAuthRepository(userRepository, passwordHashingService, logger),
inject: [USER_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, 'Logger'],
},

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import type { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type {
IMemberPaymentRepository,

View File

@@ -2,31 +2,31 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { IGameRepository } from '@core/racing/domain/repositories/GameRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import type { IMediaRepository } from '@core/racing/domain/repositories/MediaRepository';
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 { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import type { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
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 { ITransactionRepository } from '@core/racing/domain/repositories/TransactionRepository';
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { GameRepository } from '@core/racing/domain/repositories/GameRepository';
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import type { MediaRepository } from '@core/racing/domain/repositories/MediaRepository';
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 { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import type { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import type { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
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 { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository';
import { getPointsSystems } from '@adapters/bootstrap/PointsSystems';
@@ -83,22 +83,22 @@ export const MEDIA_REPOSITORY_TOKEN = 'IMediaRepository';
providers: [
{
provide: DRIVER_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IDriverRepository => new InMemoryDriverRepository(logger),
useFactory: (logger: Logger): DriverRepository => new InMemoryDriverRepository(logger),
inject: ['Logger'],
},
{
provide: LEAGUE_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ILeagueRepository => new InMemoryLeagueRepository(logger),
useFactory: (logger: Logger): LeagueRepository => new InMemoryLeagueRepository(logger),
inject: ['Logger'],
},
{
provide: RACE_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IRaceRepository => new InMemoryRaceRepository(logger),
useFactory: (logger: Logger): RaceRepository => new InMemoryRaceRepository(logger),
inject: ['Logger'],
},
{
provide: RESULT_REPOSITORY_TOKEN,
useFactory: (logger: Logger, raceRepo: IRaceRepository): IResultRepository =>
useFactory: (logger: Logger, raceRepo: RaceRepository): ResultRepository =>
new InMemoryResultRepository(logger, raceRepo),
inject: ['Logger', RACE_REPOSITORY_TOKEN],
},
@@ -106,100 +106,100 @@ export const MEDIA_REPOSITORY_TOKEN = 'IMediaRepository';
provide: STANDING_REPOSITORY_TOKEN,
useFactory: (
logger: Logger,
resultRepo: IResultRepository,
raceRepo: IRaceRepository,
leagueRepo: ILeagueRepository,
): IStandingRepository => new InMemoryStandingRepository(logger, getPointsSystems(), resultRepo, raceRepo, leagueRepo),
resultRepo: ResultRepository,
raceRepo: RaceRepository,
leagueRepo: LeagueRepository,
): StandingRepository => new InMemoryStandingRepository(logger, getPointsSystems(), resultRepo, raceRepo, leagueRepo),
inject: ['Logger', RESULT_REPOSITORY_TOKEN, RACE_REPOSITORY_TOKEN, LEAGUE_REPOSITORY_TOKEN],
},
{
provide: LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ILeagueMembershipRepository => new InMemoryLeagueMembershipRepository(logger),
useFactory: (logger: Logger): LeagueMembershipRepository => new InMemoryLeagueMembershipRepository(logger),
inject: ['Logger'],
},
{
provide: RACE_REGISTRATION_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IRaceRegistrationRepository => new InMemoryRaceRegistrationRepository(logger),
useFactory: (logger: Logger): RaceRegistrationRepository => new InMemoryRaceRegistrationRepository(logger),
inject: ['Logger'],
},
{
provide: TEAM_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ITeamRepository => new InMemoryTeamRepository(logger),
useFactory: (logger: Logger): TeamRepository => new InMemoryTeamRepository(logger),
inject: ['Logger'],
},
{
provide: TEAM_MEMBERSHIP_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ITeamMembershipRepository => new InMemoryTeamMembershipRepository(logger),
useFactory: (logger: Logger): TeamMembershipRepository => new InMemoryTeamMembershipRepository(logger),
inject: ['Logger'],
},
{
provide: PENALTY_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IPenaltyRepository => new InMemoryPenaltyRepository(logger),
useFactory: (logger: Logger): PenaltyRepository => new InMemoryPenaltyRepository(logger),
inject: ['Logger'],
},
{
provide: PROTEST_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IProtestRepository => new InMemoryProtestRepository(logger),
useFactory: (logger: Logger): ProtestRepository => new InMemoryProtestRepository(logger),
inject: ['Logger'],
},
{
provide: SEASON_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ISeasonRepository => new InMemorySeasonRepository(logger),
useFactory: (logger: Logger): SeasonRepository => new InMemorySeasonRepository(logger),
inject: ['Logger'],
},
{
provide: SEASON_SPONSORSHIP_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ISeasonSponsorshipRepository => new InMemorySeasonSponsorshipRepository(logger),
useFactory: (logger: Logger): SeasonSponsorshipRepository => new InMemorySeasonSponsorshipRepository(logger),
inject: ['Logger'],
},
{
provide: LEAGUE_SCORING_CONFIG_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ILeagueScoringConfigRepository => new InMemoryLeagueScoringConfigRepository(logger),
useFactory: (logger: Logger): LeagueScoringConfigRepository => new InMemoryLeagueScoringConfigRepository(logger),
inject: ['Logger'],
},
{
provide: GAME_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IGameRepository => new InMemoryGameRepository(logger),
useFactory: (logger: Logger): GameRepository => new InMemoryGameRepository(logger),
inject: ['Logger'],
},
{
provide: LEAGUE_WALLET_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ILeagueWalletRepository => new InMemoryLeagueWalletRepository(logger),
useFactory: (logger: Logger): LeagueWalletRepository => new InMemoryLeagueWalletRepository(logger),
inject: ['Logger'],
},
{
provide: TRANSACTION_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ITransactionRepository => new InMemoryTransactionRepository(logger),
useFactory: (logger: Logger): TransactionRepository => new InMemoryTransactionRepository(logger),
inject: ['Logger'],
},
{
provide: SPONSOR_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ISponsorRepository => new InMemorySponsorRepository(logger),
useFactory: (logger: Logger): SponsorRepository => new InMemorySponsorRepository(logger),
inject: ['Logger'],
},
{
provide: SPONSORSHIP_PRICING_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ISponsorshipPricingRepository => new InMemorySponsorshipPricingRepository(logger),
useFactory: (logger: Logger): SponsorshipPricingRepository => new InMemorySponsorshipPricingRepository(logger),
inject: ['Logger'],
},
{
provide: SPONSORSHIP_REQUEST_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ISponsorshipRequestRepository => new InMemorySponsorshipRequestRepository(logger),
useFactory: (logger: Logger): SponsorshipRequestRepository => new InMemorySponsorshipRequestRepository(logger),
inject: ['Logger'],
},
{
provide: DRIVER_STATS_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IDriverStatsRepository => new InMemoryDriverStatsRepository(logger),
useFactory: (logger: Logger): DriverStatsRepository => new InMemoryDriverStatsRepository(logger),
inject: ['Logger'],
},
{
provide: TEAM_STATS_REPOSITORY_TOKEN,
useFactory: (logger: Logger): ITeamStatsRepository => new InMemoryTeamStatsRepository(logger),
useFactory: (logger: Logger): TeamStatsRepository => new InMemoryTeamStatsRepository(logger),
inject: ['Logger'],
},
{
provide: MEDIA_REPOSITORY_TOKEN,
useFactory: (logger: Logger): IMediaRepository => new InMemoryMediaRepository(logger),
useFactory: (logger: Logger): MediaRepository => new InMemoryMediaRepository(logger),
inject: ['Logger'],
},
],

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';

View File

@@ -1,4 +1,4 @@
import type { Logger } from '@core/shared/application/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Module } from '@nestjs/common';
import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm';
import type { DataSource } from 'typeorm';

View File

@@ -6,7 +6,7 @@ import type { NotificationGatewayRegistry } from '@core/notifications/applicatio
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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
import { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity';
import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity';

View File

@@ -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/Logger';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
const RACING_POINTS_SYSTEMS_TOKEN = 'RACING_POINTS_SYSTEMS_TOKEN';

195
tsc_output.txt Normal file
View File

@@ -0,0 +1,195 @@
adapters/bootstrap/SeedDemoUsers.ts(6,1): error TS6133: 'UserRepository' is declared but its value is never read.
apps/api/src/domain/admin/AdminModule.ts(2,15): error TS2724: '"@core/admin/domain/repositories/AdminUserRepository"' has no exported member named 'IAdminUserRepository'. Did you mean 'AdminUserRepository'?
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(1,15): error TS2724: '"@core/admin/domain/repositories/AdminUserRepository"' has no exported member named 'IAdminUserRepository'. Did you mean 'AdminUserRepository'?
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(76,43): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(77,46): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(78,44): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(79,44): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(84,44): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(89,45): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(93,24): error TS7006: Parameter 'user' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(94,28): error TS7006: Parameter 'role' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(113,39): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(132,42): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts(137,40): error TS7006: Parameter 'u' implicitly has an 'any' type.
apps/api/src/domain/analytics/AnalyticsProviders.ts(1,15): error TS2724: '"@core/analytics/application/repositories/PageViewRepository"' has no exported member named 'IPageViewRepository'. Did you mean 'PageViewRepository'?
apps/api/src/domain/analytics/AnalyticsProviders.ts(2,15): error TS2724: '"@core/analytics/domain/repositories/EngagementRepository"' has no exported member named 'IEngagementRepository'. Did you mean 'EngagementRepository'?
apps/api/src/domain/auth/AuthProviders.ts(11,15): error TS2724: '"@core/identity/domain/ports/MagicLinkNotificationPort"' has no exported member named 'IMagicLinkNotificationPort'. Did you mean 'MagicLinkNotificationPort'?
apps/api/src/domain/auth/AuthProviders.ts(12,15): error TS2724: '"@core/identity/domain/repositories/AuthRepository"' has no exported member named 'IAuthRepository'. Did you mean 'AuthRepository'?
apps/api/src/domain/auth/AuthProviders.ts(13,15): error TS2724: '"@core/identity/domain/repositories/CompanyRepository"' has no exported member named 'ICompanyRepository'. Did you mean 'CompanyRepository'?
apps/api/src/domain/auth/AuthProviders.ts(14,15): error TS2724: '"@core/identity/domain/repositories/MagicLinkRepository"' has no exported member named 'IMagicLinkRepository'. Did you mean 'MagicLinkRepository'?
apps/api/src/domain/auth/AuthProviders.ts(15,15): error TS2724: '"@core/identity/domain/services/PasswordHashingService"' has no exported member named 'IPasswordHashingService'. Did you mean 'PasswordHashingService'?
apps/api/src/domain/auth/presenters/ForgotPasswordPresenter.ts(2,35): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/auth/presenters/ResetPasswordPresenter.ts(2,35): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/bootstrap/BootstrapProviders.ts(5,10): error TS2724: '"@core/identity/application/use-cases/achievement/CreateAchievementUseCase"' has no exported member named 'IAchievementRepository'. Did you mean 'AchievementRepository'?
apps/api/src/domain/bootstrap/BootstrapProviders.ts(7,15): error TS2724: '"@core/identity/domain/repositories/UserRepository"' has no exported member named 'IUserRepository'. Did you mean 'UserRepository'?
apps/api/src/domain/bootstrap/RacingSeed.test.ts(227,26): error TS2345: Argument of type 'PenaltyId[]' is not assignable to parameter of type 'string[]'.
Type 'PenaltyId' is not assignable to type 'string'.
apps/api/src/domain/dashboard/DashboardProviders.ts(4,10): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(5,10): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(6,10): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(7,10): error TS2724: '"@core/racing/domain/repositories/RaceRegistrationRepository"' has no exported member named 'IRaceRegistrationRepository'. Did you mean 'RaceRegistrationRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(8,10): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(9,10): error TS2724: '"@core/racing/domain/repositories/ResultRepository"' has no exported member named 'IResultRepository'. Did you mean 'ResultRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(10,10): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(11,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/domain/dashboard/DashboardProviders.ts(12,10): error TS2724: '"@core/social/domain/repositories/FeedRepository"' has no exported member named 'IFeedRepository'. Did you mean 'FeedRepository'?
apps/api/src/domain/dashboard/DashboardProviders.ts(13,10): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'?
apps/api/src/domain/dashboard/DashboardService.ts(7,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/domain/driver/DriverProviders.ts(6,10): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
apps/api/src/domain/driver/DriverProviders.ts(7,10): error TS2724: '"@core/racing/domain/repositories/LiveryRepository"' has no exported member named 'ILiveryRepository'. Did you mean 'LiveryRepository'?
apps/api/src/domain/driver/DriverProviders.ts(8,10): error TS2724: '"@core/racing/domain/repositories/RaceRegistrationRepository"' has no exported member named 'IRaceRegistrationRepository'. Did you mean 'RaceRegistrationRepository'?
apps/api/src/domain/driver/DriverProviders.ts(9,15): error TS2724: '"@core/racing/domain/repositories/ResultRepository"' has no exported member named 'IResultRepository'. Did you mean 'ResultRepository'?
apps/api/src/domain/driver/DriverProviders.ts(10,15): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'?
apps/api/src/domain/driver/DriverProviders.ts(11,15): error TS2724: '"@core/racing/domain/repositories/TeamMembershipRepository"' has no exported member named 'ITeamMembershipRepository'. Did you mean 'TeamMembershipRepository'?
apps/api/src/domain/driver/DriverProviders.ts(12,15): error TS2724: '"@core/racing/domain/repositories/TeamRepository"' has no exported member named 'ITeamRepository'. Did you mean 'TeamRepository'?
apps/api/src/domain/driver/DriverProviders.ts(14,15): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'?
apps/api/src/domain/driver/DriverProviders.ts(40,10): error TS2724: '"@core/racing/domain/repositories/DriverStatsRepository"' has no exported member named 'IDriverStatsRepository'. Did you mean 'DriverStatsRepository'?
apps/api/src/domain/driver/DriverProviders.ts(42,15): error TS2724: '"@core/racing/application/use-cases/DriverStatsUseCase"' has no exported member named 'IDriverStatsUseCase'. Did you mean 'DriverStatsUseCase'?
apps/api/src/domain/driver/DriverProviders.ts(43,15): error TS2724: '"@core/racing/application/use-cases/RankingUseCase"' has no exported member named 'IRankingUseCase'. Did you mean 'RankingUseCase'?
apps/api/src/domain/driver/DriverProviders.ts(167,14): error TS2552: Cannot find name 'RankingUseCase'. Did you mean 'IRankingUseCase'?
apps/api/src/domain/driver/DriverProviders.ts(176,14): error TS2552: Cannot find name 'DriverStatsUseCase'. Did you mean 'IDriverStatsUseCase'?
apps/api/src/domain/driver/presenters/DriverPresenter.ts(4,15): error TS2724: '"@core/racing/domain/repositories/DriverStatsRepository"' has no exported member named 'IDriverStatsRepository'. Did you mean 'DriverStatsRepository'?
apps/api/src/domain/league/LeagueProviders.ts(8,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
apps/api/src/domain/league/LeagueProviders.ts(9,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
apps/api/src/domain/league/LeagueProviders.ts(10,15): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'?
apps/api/src/domain/league/LeagueProviders.ts(11,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'?
apps/api/src/domain/league/LeagueProviders.ts(12,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
apps/api/src/domain/league/LeagueProviders.ts(13,15): error TS2724: '"@core/racing/domain/repositories/SeasonRepository"' has no exported member named 'ISeasonRepository'. Did you mean 'SeasonRepository'?
apps/api/src/domain/league/LeagueProviders.ts(14,15): error TS2724: '"@core/racing/domain/repositories/SeasonSponsorshipRepository"' has no exported member named 'ISeasonSponsorshipRepository'. Did you mean 'SeasonSponsorshipRepository'?
apps/api/src/domain/league/LeagueProviders.ts(15,15): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'?
apps/api/src/domain/league/LeagueProviders.ts(16,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/domain/league/LeagueProviders.ts(23,15): error TS2724: '"@core/racing/domain/repositories/LeagueWalletRepository"' has no exported member named 'ILeagueWalletRepository'. Did you mean 'LeagueWalletRepository'?
apps/api/src/domain/league/LeagueProviders.ts(24,15): error TS2724: '"@core/racing/domain/repositories/TransactionRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'?
apps/api/src/domain/league/LeagueProviders.ts(218,93): error TS2694: Namespace '"/Users/marcmintel/Projects/gridpilot/core/racing/domain/repositories/LeagueScoringConfigRepository"' has no exported member 'ILeagueScoringConfigRepository'.
apps/api/src/domain/league/LeagueProviders.ts(219,75): error TS2694: Namespace '"/Users/marcmintel/Projects/gridpilot/core/racing/domain/repositories/GameRepository"' has no exported member 'IGameRepository'.
apps/api/src/domain/league/presenters/ApproveLeagueJoinRequestPresenter.ts(3,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/GetLeagueAdminPermissionsPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/GetLeagueMembershipsPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/GetLeagueOwnerSummaryPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/GetLeagueWalletPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/LeagueJoinRequestsPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/LeagueOwnerSummaryPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/LeagueRosterAdminReadPresenters.ts(3,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/LeagueSchedulePresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/LeagueSeasonScheduleMutationPresenters.ts(1,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/league/presenters/WithdrawFromLeagueWalletPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/media/MediaController.ts(3,29): error TS2307: Cannot find module '@core/shared/application/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/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/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/Logger' or its corresponding type declarations.
apps/api/src/domain/payments/presenters/CreatePaymentPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/payments/presenters/GetPaymentsPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/payments/presenters/UpdatePaymentStatusPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' or its corresponding type declarations.
apps/api/src/domain/protests/presenters/ReviewProtestPresenter.ts(2,40): error TS2307: Cannot find module '@core/shared/application' 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/Logger' or its corresponding type declarations.
apps/api/src/domain/protests/ProtestsService.test.ts(6,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/domain/protests/ProtestsService.ts(1,29): error TS2307: Cannot find module '@core/shared/application/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/Logger' or its corresponding type declarations.
apps/api/src/domain/race/RaceService.ts(11,29): error TS2307: Cannot find module '@core/shared/application/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/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/Logger' or its corresponding type declarations.
apps/api/src/domain/team/TeamService.test.ts(9,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/domain/team/TeamService.ts(14,29): error TS2307: Cannot find module '@core/shared/application/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,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(7,15): error TS2724: '"@core/analytics/application/repositories/PageViewRepository"' has no exported member named 'IPageViewRepository'. Did you mean 'PageViewRepository'?
apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(8,15): error TS2724: '"@core/analytics/domain/repositories/AnalyticsSnapshotRepository"' has no exported member named 'IAnalyticsSnapshotRepository'. Did you mean 'AnalyticsSnapshotRepository'?
apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(9,15): error TS2724: '"@core/analytics/domain/repositories/EngagementRepository"' has no exported member named 'IEngagementRepository'. Did you mean 'EngagementRepository'?
apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts(6,15): error TS2724: '"@core/identity/domain/services/PasswordHashingService"' has no exported member named 'IPasswordHashingService'. Did you mean 'PasswordHashingService'?
apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts(7,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/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/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/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,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(7,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(8,15): error TS2724: '"@core/racing/domain/repositories/DriverStatsRepository"' has no exported member named 'IDriverStatsRepository'. Did you mean 'DriverStatsRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(9,15): error TS2724: '"@core/racing/domain/repositories/GameRepository"' has no exported member named 'IGameRepository'. Did you mean 'GameRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(10,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(11,15): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(12,15): error TS2724: '"@core/racing/domain/repositories/LeagueScoringConfigRepository"' has no exported member named 'ILeagueScoringConfigRepository'. Did you mean 'LeagueScoringConfigRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(13,15): error TS2724: '"@core/racing/domain/repositories/LeagueWalletRepository"' has no exported member named 'ILeagueWalletRepository'. Did you mean 'LeagueWalletRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(14,15): error TS2724: '"@core/racing/domain/repositories/MediaRepository"' has no exported member named 'IMediaRepository'. Did you mean 'MediaRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(15,15): error TS2724: '"@core/racing/domain/repositories/PenaltyRepository"' has no exported member named 'IPenaltyRepository'. Did you mean 'PenaltyRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(16,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(17,15): error TS2724: '"@core/racing/domain/repositories/RaceRegistrationRepository"' has no exported member named 'IRaceRegistrationRepository'. Did you mean 'RaceRegistrationRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(18,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(19,15): error TS2724: '"@core/racing/domain/repositories/ResultRepository"' has no exported member named 'IResultRepository'. Did you mean 'ResultRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(20,15): error TS2724: '"@core/racing/domain/repositories/SeasonRepository"' has no exported member named 'ISeasonRepository'. Did you mean 'SeasonRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(21,15): error TS2724: '"@core/racing/domain/repositories/SeasonSponsorshipRepository"' has no exported member named 'ISeasonSponsorshipRepository'. Did you mean 'SeasonSponsorshipRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(22,15): error TS2724: '"@core/racing/domain/repositories/SponsorRepository"' has no exported member named 'ISponsorRepository'. Did you mean 'SponsorRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(23,15): error TS2724: '"@core/racing/domain/repositories/SponsorshipPricingRepository"' has no exported member named 'ISponsorshipPricingRepository'. Did you mean 'SponsorshipPricingRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(24,15): error TS2724: '"@core/racing/domain/repositories/SponsorshipRequestRepository"' has no exported member named 'ISponsorshipRequestRepository'. Did you mean 'SponsorshipRequestRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(25,15): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(26,15): error TS2724: '"@core/racing/domain/repositories/TeamMembershipRepository"' has no exported member named 'ITeamMembershipRepository'. Did you mean 'TeamMembershipRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(27,15): error TS2724: '"@core/racing/domain/repositories/TeamRepository"' has no exported member named 'ITeamRepository'. Did you mean 'TeamRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(28,15): error TS2724: '"@core/racing/domain/repositories/TeamStatsRepository"' has no exported member named 'ITeamStatsRepository'. Did you mean 'TeamStatsRepository'?
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(29,15): error TS2724: '"@core/racing/domain/repositories/TransactionRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'?
apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/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,29): error TS2307: Cannot find module '@core/shared/application/Logger' or its corresponding type declarations.
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/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/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'?