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 { 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 type { Provider } from '@nestjs/common';
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { InMemoryAdminPersistenceModule } from '../../persistence/inmemory/InMemoryAdminPersistenceModule'; import { InMemoryAdminPersistenceModule } from '../../persistence/inmemory/InMemoryAdminPersistenceModule';
@@ -18,14 +18,14 @@ const adminProviders: Provider[] = [
{ {
provide: ListUsersUseCase, provide: ListUsersUseCase,
useFactory: ( useFactory: (
repository: IAdminUserRepository, repository: AdminUserRepository,
) => new ListUsersUseCase(repository), ) => new ListUsersUseCase(repository),
inject: [ADMIN_USER_REPOSITORY_TOKEN], inject: [ADMIN_USER_REPOSITORY_TOKEN],
}, },
{ {
provide: GetDashboardStatsUseCase, provide: GetDashboardStatsUseCase,
useFactory: ( useFactory: (
repository: IAdminUserRepository, repository: AdminUserRepository,
) => new GetDashboardStatsUseCase(repository), ) => new GetDashboardStatsUseCase(repository),
inject: [ADMIN_USER_REPOSITORY_TOKEN], 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'; import type { DashboardStatsResult } from '../use-cases/GetDashboardStatsUseCase';
export interface DashboardStatsResponse { export interface DashboardStatsResponse {

View File

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

View File

@@ -1,6 +1,6 @@
import type { IPageViewRepository } from '@core/analytics/application/repositories/PageViewRepository'; import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import type { Logger } from '@core/shared/domain/Logger'; import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { Provider } from '@nestjs/common'; import { Provider } from '@nestjs/common';
import { import {
@@ -28,13 +28,13 @@ export const AnalyticsProviders: Provider[] = [
GetAnalyticsMetricsPresenter, GetAnalyticsMetricsPresenter,
{ {
provide: RecordPageViewUseCase, provide: RecordPageViewUseCase,
useFactory: (repo: IPageViewRepository, logger: Logger) => useFactory: (repo: PageViewRepository, logger: Logger) =>
new RecordPageViewUseCase(repo, logger), new RecordPageViewUseCase(repo, logger),
inject: [ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN, LOGGER_TOKEN], inject: [ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN, LOGGER_TOKEN],
}, },
{ {
provide: RecordEngagementUseCase, provide: RecordEngagementUseCase,
useFactory: (repo: IEngagementRepository, logger: Logger) => useFactory: (repo: EngagementRepository, logger: Logger) =>
new RecordEngagementUseCase(repo, logger), new RecordEngagementUseCase(repo, logger),
inject: [ANALYTICS_ENGAGEMENT_REPOSITORY_TOKEN, LOGGER_TOKEN], inject: [ANALYTICS_ENGAGEMENT_REPOSITORY_TOKEN, LOGGER_TOKEN],
}, },
@@ -46,7 +46,7 @@ export const AnalyticsProviders: Provider[] = [
}, },
{ {
provide: GetAnalyticsMetricsUseCase, provide: GetAnalyticsMetricsUseCase,
useFactory: (logger: Logger, repo: IPageViewRepository) => useFactory: (logger: Logger, repo: PageViewRepository) =>
new GetAnalyticsMetricsUseCase(logger, repo), new GetAnalyticsMetricsUseCase(logger, repo),
inject: [LOGGER_TOKEN, ANALYTICS_PAGE_VIEW_REPOSITORY_TOKEN], 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 { ResetPasswordUseCase } from '@core/identity/application/use-cases/ResetPasswordUseCase';
import { SignupSponsorUseCase } from '@core/identity/application/use-cases/SignupSponsorUseCase'; import { SignupSponsorUseCase } from '@core/identity/application/use-cases/SignupSponsorUseCase';
import { SignupUseCase } from '@core/identity/application/use-cases/SignupUseCase'; import { SignupUseCase } from '@core/identity/application/use-cases/SignupUseCase';
import type { IMagicLinkNotificationPort } from '@core/identity/domain/ports/MagicLinkNotificationPort'; import type { MagicLinkNotificationPort } from '@core/identity/domain/ports/MagicLinkNotificationPort';
import type { IAuthRepository } from '@core/identity/domain/repositories/AuthRepository'; import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository';
import type { ICompanyRepository } from '@core/identity/domain/repositories/CompanyRepository'; import type { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository';
import type { IMagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository'; import type { MagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { Logger } from '@core/shared/domain/Logger'; import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { import {
AUTH_REPOSITORY_TOKEN, AUTH_REPOSITORY_TOKEN,
@@ -66,8 +66,8 @@ export const AuthProviders: Provider[] = [
{ {
provide: LOGIN_USE_CASE_TOKEN, provide: LOGIN_USE_CASE_TOKEN,
useFactory: ( useFactory: (
authRepo: IAuthRepository, authRepo: AuthRepository,
passwordHashing: IPasswordHashingService, passwordHashing: PasswordHashingService,
logger: Logger, logger: Logger,
) => new LoginUseCase(authRepo, passwordHashing, logger), ) => new LoginUseCase(authRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN], inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],
@@ -75,8 +75,8 @@ export const AuthProviders: Provider[] = [
{ {
provide: SIGNUP_USE_CASE_TOKEN, provide: SIGNUP_USE_CASE_TOKEN,
useFactory: ( useFactory: (
authRepo: IAuthRepository, authRepo: AuthRepository,
passwordHashing: IPasswordHashingService, passwordHashing: PasswordHashingService,
logger: Logger, logger: Logger,
) => new SignupUseCase(authRepo, passwordHashing, logger), ) => new SignupUseCase(authRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN], inject: [AUTH_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN],
@@ -84,9 +84,9 @@ export const AuthProviders: Provider[] = [
{ {
provide: SIGNUP_SPONSOR_USE_CASE_TOKEN, provide: SIGNUP_SPONSOR_USE_CASE_TOKEN,
useFactory: ( useFactory: (
authRepo: IAuthRepository, authRepo: AuthRepository,
companyRepo: ICompanyRepository, companyRepo: CompanyRepository,
passwordHashing: IPasswordHashingService, passwordHashing: PasswordHashingService,
logger: Logger, logger: Logger,
) => new SignupSponsorUseCase(authRepo, companyRepo, passwordHashing, logger), ) => new SignupSponsorUseCase(authRepo, companyRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, COMPANY_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN], 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, provide: FORGOT_PASSWORD_USE_CASE_TOKEN,
useFactory: ( useFactory: (
authRepo: IAuthRepository, authRepo: AuthRepository,
magicLinkRepo: IMagicLinkRepository, magicLinkRepo: MagicLinkRepository,
notificationPort: IMagicLinkNotificationPort, notificationPort: MagicLinkNotificationPort,
logger: Logger, logger: Logger,
) => new ForgotPasswordUseCase(authRepo, magicLinkRepo, notificationPort, logger), ) => new ForgotPasswordUseCase(authRepo, magicLinkRepo, notificationPort, logger),
inject: [AUTH_REPOSITORY_TOKEN, MAGIC_LINK_REPOSITORY_TOKEN, MAGIC_LINK_NOTIFICATION_PORT_TOKEN, LOGGER_TOKEN], 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, provide: RESET_PASSWORD_USE_CASE_TOKEN,
useFactory: ( useFactory: (
authRepo: IAuthRepository, authRepo: AuthRepository,
magicLinkRepo: IMagicLinkRepository, magicLinkRepo: MagicLinkRepository,
passwordHashing: IPasswordHashingService, passwordHashing: PasswordHashingService,
logger: Logger, logger: Logger,
) => new ResetPasswordUseCase(authRepo, magicLinkRepo, passwordHashing, logger), ) => new ResetPasswordUseCase(authRepo, magicLinkRepo, passwordHashing, logger),
inject: [AUTH_REPOSITORY_TOKEN, MAGIC_LINK_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, LOGGER_TOKEN], 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 { 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 { import {
ForgotPasswordUseCase, ForgotPasswordUseCase,

View File

@@ -1,7 +1,7 @@
import type { LoginResult } from '@core/identity/application/use-cases/LoginUseCase'; import type { LoginResult } from '@core/identity/application/use-cases/LoginUseCase';
import type { SignupSponsorResult } from '@core/identity/application/use-cases/SignupSponsorUseCase'; import type { SignupSponsorResult } from '@core/identity/application/use-cases/SignupSponsorUseCase';
import type { SignupResult } from '@core/identity/application/use-cases/SignupUseCase'; 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'; import { AuthenticatedUserDTO } from '../dtos/AuthDto';
type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult; type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult;

View File

@@ -1,5 +1,5 @@
import type { LogoutResult } from '@core/identity/application/use-cases/LogoutUseCase'; 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 { export interface CommandResultDTO {
success: boolean; success: boolean;

View File

@@ -1,5 +1,5 @@
import { ForgotPasswordResult } from '@core/identity/application/use-cases/ForgotPasswordUseCase'; 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'; import { Injectable } from '@nestjs/common';
@Injectable() @Injectable()

View File

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

View File

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

View File

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

View File

@@ -4,7 +4,7 @@ import { DashboardOverviewDTO } from './dtos/DashboardOverviewDTO';
import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter'; import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter';
// Core imports // 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) // Tokens (standalone to avoid circular imports)
import { import {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
import { MediaReference } from '@core/domain/media/MediaReference'; import { MediaReference } from '@core/domain/media/MediaReference';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { GetAllLeaguesWithCapacityAndScoringResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase'; 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 { import type {
AllLeaguesWithCapacityAndScoringDTO, AllLeaguesWithCapacityAndScoringDTO,
LeagueWithCapacityAndScoringDTO, LeagueWithCapacityAndScoringDTO,

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase'; 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 type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO';
import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO'; import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO';

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
import type { GetSeasonSponsorshipsResult } from '@core/racing/application/use-cases/GetSeasonSponsorshipsUseCase'; 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 { SponsorshipDetailDTO } from '../../sponsor/dtos/SponsorshipDetailDTO';
import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO'; import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO';

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
import { GetLeagueJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueJoinRequestsUseCase'; 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'; import { LeagueJoinRequestWithDriverDTO } from '../dtos/LeagueJoinRequestWithDriverDTO';
export interface LeagueJoinRequestsViewModel { export interface LeagueJoinRequestsViewModel {

View File

@@ -1,5 +1,5 @@
import { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase'; 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'; import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> { export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {

View File

@@ -1,6 +1,6 @@
import type { GetLeagueRosterJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase'; import type { GetLeagueRosterJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase';
import type { GetLeagueRosterMembersResult } from '@core/racing/application/use-cases/GetLeagueRosterMembersUseCase'; 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 { Injectable } from '@nestjs/common';
import type { DriverDTO } from '../../driver/dtos/DriverDTO'; import type { DriverDTO } from '../../driver/dtos/DriverDTO';
import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO'; import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO';

View File

@@ -1,5 +1,5 @@
import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase'; 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 { RaceDTO } from '../../race/dtos/RaceDTO';
import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO'; import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO';

View File

@@ -1,7 +1,7 @@
import type { GetLeagueScoringConfigResult } from '@core/racing/application/use-cases/GetLeagueScoringConfigUseCase'; import type { GetLeagueScoringConfigResult } from '@core/racing/application/use-cases/GetLeagueScoringConfigUseCase';
import type { BonusRule } from '@core/racing/domain/types/BonusRule'; import type { BonusRule } from '@core/racing/domain/types/BonusRule';
import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig'; 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 { export interface LeagueScoringChampionshipViewModel {
id: string; id: string;

View File

@@ -1,5 +1,5 @@
import type { ListLeagueScoringPresetsResult } from '@core/racing/application/use-cases/ListLeagueScoringPresetsUseCase'; 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'; import type { LeagueScoringPresetsDTO } from '../dtos/LeagueScoringPresetsDTO';
export type LeagueScoringPresetsViewModel = 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 { import type {
CreateLeagueScheduleRaceOutputDTO, CreateLeagueScheduleRaceOutputDTO,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
import { MediaReference } from '@core/domain/media/MediaReference'; import { MediaReference } from '@core/domain/media/MediaReference';
import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService'; 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 { Body, Controller, Delete, Get, HttpStatus, Inject, Param, Post, Put, Res, UploadedFile, UseInterceptors } from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express'; import { FileInterceptor } from '@nestjs/platform-express';
import { ApiConsumes, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger'; 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 { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository'; import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; 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 use cases
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase'; 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 { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter';
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter'; 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 { import {
DELETE_MEDIA_USE_CASE_TOKEN, DELETE_MEDIA_USE_CASE_TOKEN,
GET_AVATAR_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 { GetUnreadNotificationsUseCase } from '@core/notifications/application/use-cases/GetUnreadNotificationsUseCase';
import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase'; import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase';
import { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; 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 { Provider } from '@nestjs/common';
import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens'; import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens';
import { 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'; import { Inject, Injectable } from '@nestjs/common';
// Use cases // Use cases

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase'; 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'; import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto';
export class UpdatePaymentStatusPresenter implements UseCaseOutputPort<UpdatePaymentStatusResult> { 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 { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository'; 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 concrete in-memory implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';

View File

@@ -3,7 +3,7 @@ import type {
ReviewProtestResult, ReviewProtestResult,
ReviewProtestUseCase, ReviewProtestUseCase,
} from '@core/racing/application/use-cases/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 { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest'; import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest';
import { ProtestsService } from './ProtestsService'; 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'; import { Inject, Injectable } from '@nestjs/common';
// Use cases // Use cases

View File

@@ -1,5 +1,5 @@
import type { ReviewProtestApplicationError, ReviewProtestResult } from '@core/racing/application/use-cases/ReviewProtestUseCase'; 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 { export interface ReviewProtestResponseDTO {
success: boolean; 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 { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository'; import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository'; 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 concrete in-memory implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';

View File

@@ -8,7 +8,7 @@ import { RegisterForRaceParamsDTO } from './dtos/RegisterForRaceParamsDTO';
import { WithdrawFromRaceParamsDTO } from './dtos/WithdrawFromRaceParamsDTO'; import { WithdrawFromRaceParamsDTO } from './dtos/WithdrawFromRaceParamsDTO';
// Core imports // 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 // Use cases
import { CancelRaceUseCase } from '@core/racing/application/use-cases/CancelRaceUseCase'; 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 { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository'; import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; 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 { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase'; 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 type { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor'; import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import { Money } from '@core/racing/domain/value-objects/Money'; 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 { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO'; 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 { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSponsorUseCase';
import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase'; import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest'; 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 // Tokens
import { 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 { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository'; import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository'; 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 concrete implementations
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger'; 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 { GetTeamMembershipUseCase } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase'; import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
import { UpdateTeamUseCase } from '@core/racing/application/use-cases/UpdateTeamUseCase'; 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 { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO'; import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO';

View File

@@ -11,7 +11,7 @@ import { UpdateTeamInputDTO } from './dtos/UpdateTeamInputDTO';
import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO'; import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO';
// Core imports // 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 // Use cases
import { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase'; import { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase';

View File

@@ -1,7 +1,7 @@
import { MediaReference } from '@core/domain/media/MediaReference'; import { MediaReference } from '@core/domain/media/MediaReference';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { GetAllTeamsResult } from '@core/racing/application/use-cases/GetAllTeamsUseCase'; 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 { GetAllTeamsOutputDTO } from '../dtos/GetAllTeamsOutputDTO';
import { TeamListItemDTO } from '../dtos/TeamListItemDTO'; import { TeamListItemDTO } from '../dtos/TeamListItemDTO';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,8 +3,8 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule'; import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { StoredUser } from '@core/identity/domain/repositories/UserRepository'; import type { StoredUser } from '@core/identity/domain/repositories/UserRepository';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { Logger } from '@core/shared/application/Logger'; import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository'; import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository';
import { InMemoryCompanyRepository } from '@adapters/identity/persistence/inmemory/InMemoryCompanyRepository'; 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, provide: AUTH_REPOSITORY_TOKEN,
useFactory: (userRepository: InMemoryUserRepository, passwordHashingService: IPasswordHashingService, logger: Logger) => useFactory: (userRepository: InMemoryUserRepository, passwordHashingService: PasswordHashingService, logger: Logger) =>
new InMemoryAuthRepository(userRepository, passwordHashingService, logger), new InMemoryAuthRepository(userRepository, passwordHashingService, logger),
inject: [USER_REPOSITORY_TOKEN, PASSWORD_HASHING_SERVICE_TOKEN, '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 { 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 { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import type { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; 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 { 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 { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; 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 { 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 { import type {
IMemberPaymentRepository, IMemberPaymentRepository,

View File

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

View File

@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
import { LoggingModule } from '../../domain/logging/LoggingModule'; 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 { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; 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 { Module } from '@nestjs/common';
import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm'; import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm';
import type { DataSource } from '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 { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; 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 { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity';
import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity'; 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 { TeamStatsOrmMapper } from '@adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper';
import { getPointsSystems } from '@adapters/bootstrap/PointsSystems'; 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'; 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'?