website refactor

This commit is contained in:
2026-01-16 13:48:18 +01:00
parent 20a42c52fd
commit 7e02fc3ea5
796 changed files with 1946 additions and 2545 deletions

View File

@@ -7,7 +7,7 @@ import { AuthModule } from '../auth/AuthModule';
import { ListUsersUseCase } from '@core/admin/application/use-cases/ListUsersUseCase';
import { GetDashboardStatsUseCase } from './use-cases/GetDashboardStatsUseCase';
import { InitializationLogger } from '../../shared/logging/InitializationLogger';
import type { IAdminUserRepository } from '@core/admin/domain/repositories/IAdminUserRepository';
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
export const ADMIN_USER_REPOSITORY_TOKEN = 'IAdminUserRepository';

View File

@@ -1,6 +1,6 @@
import { AdminService } from './AdminService';
import { AdminUser } from '@core/admin/domain/entities/AdminUser';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { vi, describe, it, expect, beforeEach } from 'vitest';
// Mock use cases

View File

@@ -1,6 +1,6 @@
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { IAdminUserRepository } from '@core/admin/domain/repositories/IAdminUserRepository';
import type { IAdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
import { AuthorizationService } from '@core/admin/domain/services/AuthorizationService';
import { UserId } from '@core/admin/domain/value-objects/UserId';

View File

@@ -1,5 +1,5 @@
import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository';
import type { IPageViewRepository } from '@core/analytics/application/repositories/IPageViewRepository';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import type { IPageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import type { Logger } from '@core/shared/application';
import { Provider } from '@nestjs/common';

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { AnalyticsService } from './AnalyticsService';
import { RecordPageViewPresenter } from './presenters/RecordPageViewPresenter';
import { RecordEngagementPresenter } from './presenters/RecordEngagementPresenter';

View File

@@ -1,6 +1,6 @@
import { describe, expect, it, vi } from 'vitest';
import { requestContextMiddleware } from '@adapters/http/RequestContext';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { getActorFromRequestContext } from './getActorFromRequestContext';
import { requireLeagueAdminOrOwner } from '../league/LeagueAuthorization';

View File

@@ -9,11 +9,11 @@ import { SignupSponsorUseCase } from '@core/identity/application/use-cases/Signu
import { ForgotPasswordUseCase } from '@core/identity/application/use-cases/ForgotPasswordUseCase';
import { ResetPasswordUseCase } from '@core/identity/application/use-cases/ResetPasswordUseCase';
import type { IdentitySessionPort } from '@core/identity/application/ports/IdentitySessionPort';
import type { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository';
import type { ICompanyRepository } from '@core/identity/domain/repositories/ICompanyRepository';
import type { IMagicLinkRepository } from '@core/identity/domain/repositories/IMagicLinkRepository';
import type { IAuthRepository } from '@core/identity/domain/repositories/AuthRepository';
import type { ICompanyRepository } from '@core/identity/domain/repositories/CompanyRepository';
import type { IMagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { IMagicLinkNotificationPort } from '@core/identity/domain/ports/IMagicLinkNotificationPort';
import type { IMagicLinkNotificationPort } from '@core/identity/domain/ports/MagicLinkNotificationPort';
import {
AUTH_REPOSITORY_TOKEN,

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { AuthService } from './AuthService';
class FakeAuthSessionPresenter {

View File

@@ -9,7 +9,7 @@ import {
CreateAchievementUseCase,
type IAchievementRepository,
} from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase';
import type { IUserRepository } from '@core/identity/domain/repositories/IUserRepository';
import type { IUserRepository } from '@core/identity/domain/repositories/UserRepository';
import type { IdentitySessionPort } from '@core/identity/application/ports/IdentitySessionPort';
import type { Logger } from '@core/shared/application';
import { CookieIdentitySessionAdapter } from '../../../../../adapters/identity/session/CookieIdentitySessionAdapter';

View File

@@ -2,15 +2,15 @@ import { Provider } from '@nestjs/common';
// Import core interfaces
import type { Logger } from '@core/shared/application/Logger';
import { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
import { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from '../../persistence/social/SocialPersistenceTokens';
import { ImageServicePort } from '@core/media/application/ports/ImageServicePort';

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { DashboardService } from './DashboardService';
describe('DashboardService', () => {

View File

@@ -2,15 +2,15 @@ import { Provider } from '@nestjs/common';
// Import core interfaces
import { DriverExtendedProfileProvider } from '@core/racing/application/ports/DriverExtendedProfileProvider';
import { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import { ILiveryRepository } from '@core/racing/domain/repositories/ILiveryRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { ILiveryRepository } from '@core/racing/domain/repositories/LiveryRepository';
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { Logger } from '@core/shared/application';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
// Import use cases
@@ -39,10 +39,10 @@ import { InMemoryMediaRepository } from '@adapters/racing/persistence/media/InMe
// Import MediaResolverAdapter
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
// Import repository tokens
import { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository';
import { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
// Import use case interfaces
import type { IRankingUseCase } from '@core/racing/application/use-cases/IRankingUseCase';
import type { IDriverStatsUseCase } from '@core/racing/application/use-cases/IDriverStatsUseCase';
import type { IRankingUseCase } from '@core/racing/application/use-cases/RankingUseCase';
import type { IDriverStatsUseCase } from '@core/racing/application/use-cases/DriverStatsUseCase';
// Import presenters
import { CompleteOnboardingPresenter } from './presenters/CompleteOnboardingPresenter';

View File

@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { describe, expect, it, vi, beforeEach } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { DriverService } from './DriverService';
describe('DriverService', () => {

View File

@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@nestjs/common';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { CompleteOnboardingInputDTO } from './dtos/CompleteOnboardingInputDTO';
import { CompleteOnboardingOutputDTO } from './dtos/CompleteOnboardingOutputDTO';
import { DriverRegistrationStatusDTO } from './dtos/DriverRegistrationStatusDTO';

View File

@@ -1,7 +1,7 @@
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { Driver } from '@core/racing/domain/entities/Driver';
import type { GetDriverOutputDTO } from '../dtos/GetDriverOutputDTO';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import { MediaReference } from '@core/domain/media/MediaReference';

View File

@@ -1,5 +1,5 @@
import { describe, it, expect, beforeEach } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { GetDriverLiveriesPresenter } from './GetDriverLiveriesPresenter';
import { DriverLivery } from '@core/racing/domain/entities/DriverLivery';

View File

@@ -1,4 +1,4 @@
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { DriverLivery } from '@core/racing/domain/entities/DriverLivery';
import type { GetDriverLiveriesOutputDTO } from '../dtos/GetDriverLiveriesOutputDTO';

View File

@@ -4,20 +4,20 @@ import { LeagueService } from './LeagueService';
import * as LeagueTokens from './LeagueTokens';
// Import core interfaces
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/application/Logger';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
// Import concrete in-memory implementations
import type { ILeagueWalletRepository } from "@core/racing/domain/repositories/ILeagueWalletRepository";
import type { ITransactionRepository } from "@core/racing/domain/repositories/ITransactionRepository";
import type { ILeagueWalletRepository } from "@core/racing/domain/repositories/LeagueWalletRepository";
import type { ITransactionRepository } from "@core/racing/domain/repositories/TransactionRepository";
import { getLeagueScoringPresetById, listLeagueScoringPresets } from '@adapters/bootstrap/LeagueScoringPresets';
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
import { InMemoryLeagueStandingsRepository } from '@adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository';
@@ -215,8 +215,8 @@ export const LeagueProviders: Provider[] = [
leagueRepo: ILeagueRepository,
membershipRepo: ILeagueMembershipRepository,
seasonRepo: ISeasonRepository,
scoringRepo: import('@core/racing/domain/repositories/ILeagueScoringConfigRepository').ILeagueScoringConfigRepository,
gameRepo: import('@core/racing/domain/repositories/IGameRepository').IGameRepository,
scoringRepo: import('@core/racing/domain/repositories/LeagueScoringConfigRepository').ILeagueScoringConfigRepository,
gameRepo: import('@core/racing/domain/repositories/GameRepository').IGameRepository,
) =>
new GetAllLeaguesWithCapacityAndScoringUseCase(
leagueRepo,

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { requestContextMiddleware } from '@adapters/http/RequestContext';
import { LeagueService } from './LeagueService';

View File

@@ -1,9 +1,9 @@
import { Provider } from '@nestjs/common';
// Import core interfaces
import { IAvatarGenerationRepository } from '@core/media/domain/repositories/IAvatarGenerationRepository';
import { IMediaRepository } from '@core/media/domain/repositories/IMediaRepository';
import { IAvatarRepository } from '@core/media/domain/repositories/IAvatarRepository';
import { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort';
import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort';

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { MediaService } from './MediaService';
describe('MediaService', () => {

View File

@@ -4,7 +4,7 @@ import type { Logger } from '@core/shared/application/Logger';
import { GetUnreadNotificationsUseCase } from '@core/notifications/application/use-cases/GetUnreadNotificationsUseCase';
import { GetAllNotificationsUseCase } from '@core/notifications/application/use-cases/GetAllNotificationsUseCase';
import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase';
import { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository';
import { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens';
import {
GET_UNREAD_NOTIFICATIONS_USE_CASE_TOKEN,

View File

@@ -1,10 +1,10 @@
import { Provider } from '@nestjs/common';
// Import core interfaces
import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository';
import type { IMembershipFeeRepository, IMemberPaymentRepository } from '@core/payments/domain/repositories/IMembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/IPrizeRepository';
import type { IWalletRepository, ITransactionRepository } from '@core/payments/domain/repositories/IWalletRepository';
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type { IMembershipFeeRepository, IMemberPaymentRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
import type { IWalletRepository, ITransactionRepository } from '@core/payments/domain/repositories/WalletRepository';
// Import use cases
import { GetPaymentsUseCase } from '@core/payments/application/use-cases/GetPaymentsUseCase';

View File

@@ -1,5 +1,5 @@
import { describe, expect, it, vi } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { PaymentsService } from './PaymentsService';
describe('PaymentsService', () => {

View File

@@ -1,9 +1,9 @@
import { Provider } from '@nestjs/common';
// Import core interfaces
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { Logger } from '@core/shared/application/Logger';
// Import concrete in-memory implementations

View File

@@ -1,5 +1,5 @@
import { describe, it, expect, beforeEach, vi, type MockedFunction } from 'vitest';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { Logger } from '@core/shared/application/Logger';
import type {
ReviewProtestUseCase,

View File

@@ -2,15 +2,15 @@ import type { Provider } from '@nestjs/common';
// Import core interfaces
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { Logger } from '@core/shared/application/Logger';
// Import concrete in-memory implementations

View File

@@ -1,6 +1,6 @@
import { describe, expect, it, vi, type Mock } from 'vitest';
import { RaceService } from './RaceService';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
describe('RaceService', () => {
it('invokes each use case and returns the corresponding presenter', async () => {

View File

@@ -1,6 +1,6 @@
import type { GetRaceDetailResult } from '@core/racing/application/use-cases/GetRaceDetailUseCase';
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
import type { IImageServicePort } from '@core/racing/application/ports/IImageServicePort';
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type { GetRaceDetailParamsDTO } from '../dtos/GetRaceDetailParamsDTO';
import type { RaceDetailDTO } from '../dtos/RaceDetailDTO';
import type { RaceDetailRaceDTO } from '../dtos/RaceDetailRaceDTO';

View File

@@ -3,7 +3,7 @@ import type {
GetRaceResultsDetailResult,
GetRaceResultsDetailErrorCode,
} from '@core/racing/application/use-cases/GetRaceResultsDetailUseCase';
import type { IImageServicePort } from '@core/racing/application/ports/IImageServicePort';
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
import type { RaceResultsDetailDTO } from '../dtos/RaceResultsDetailDTO';
import type { RaceResultDTO } from '../dtos/RaceResultDTO';

View File

@@ -3,17 +3,17 @@ import { SponsorService } from './SponsorService';
// Import core interfaces
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository';
import type { IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository';
import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/ISponsorshipPricingRepository';
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository';
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type { IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { Logger } from '@core/shared/application';
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';

View File

@@ -9,7 +9,7 @@ import type { GetSponsorsUseCase } from '@core/racing/application/use-cases/GetS
import type { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSponsorUseCase';
import type { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
import type { Logger } from '@core/shared/application';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO';
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';

View File

@@ -33,10 +33,10 @@ export {
// Import core interfaces
import type { Logger } from '@core/shared/application/Logger';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/ITeamStatsRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
// Import concrete implementations
import { InMemoryImageServiceAdapter } from '@adapters/media/ports/InMemoryImageServiceAdapter';

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import type { Logger } from '@core/shared/application/Logger';
import { Result } from '@core/shared/application/Result';
import { Result } from '@core/shared/domain/Result';
import { GetAllTeamsUseCase } from '@core/racing/application/use-cases/GetAllTeamsUseCase';
import { GetTeamDetailsUseCase } from '@core/racing/application/use-cases/GetTeamDetailsUseCase';
import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase';

View File

@@ -1,7 +1,7 @@
import { describe, expect, it, beforeEach } from 'vitest';
import { Test, TestingModule } from '@nestjs/testing';
import { ACHIEVEMENT_REPOSITORY_TOKEN } from './AchievementPersistenceTokens';
import type { IAchievementRepository } from '@core/identity/domain/repositories/IAchievementRepository';
import type { IAchievementRepository } from '@core/identity/domain/repositories/AchievementRepository';
describe('AchievementPersistenceModule', () => {
const originalEnv = { ...process.env };

View File

@@ -4,9 +4,9 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository';
import type { IAnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/IAnalyticsSnapshotRepository';
import type { IPageViewRepository } from '@core/analytics/application/repositories/IPageViewRepository';
import type { IEngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
import type { IAnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository';
import type { IPageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
import { InMemoryAnalyticsSnapshotRepository } from '@adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository';
import { InMemoryEngagementRepository } from '@adapters/analytics/persistence/inmemory/InMemoryEngagementRepository';

View File

@@ -4,7 +4,7 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
import type { StoredUser } from '@core/identity/domain/repositories/IUserRepository';
import type { StoredUser } from '@core/identity/domain/repositories/UserRepository';
import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository';
import { InMemoryUserRepository } from '@adapters/identity/persistence/inmemory/InMemoryUserRepository';

View File

@@ -4,9 +4,9 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/IAvatarGenerationRepository';
import type { IMediaRepository } from '@core/media/domain/repositories/IMediaRepository';
import type { IAvatarRepository } from '@core/media/domain/repositories/IAvatarRepository';
import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import type { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import type { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { InMemoryAvatarGenerationRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository';

View File

@@ -4,8 +4,8 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository';
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/INotificationPreferenceRepository';
import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';

View File

@@ -4,13 +4,13 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository';
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type {
IMemberPaymentRepository,
IMembershipFeeRepository,
} from '@core/payments/domain/repositories/IMembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/IPrizeRepository';
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository';
} from '@core/payments/domain/repositories/MembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
import { InMemoryMembershipFeeRepository, InMemoryMemberPaymentRepository } from '@adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository';
import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemory/InMemoryPaymentRepository';

View File

@@ -4,29 +4,29 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository';
import type { IGameRepository } from '@core/racing/domain/repositories/IGameRepository';
import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository';
import type { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository';
import type { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository';
import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/ISponsorshipPricingRepository';
import type { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository';
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/ITeamStatsRepository';
import type { IMediaRepository } from '@core/racing/domain/repositories/IMediaRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import type { IGameRepository } from '@core/racing/domain/repositories/GameRepository';
import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import type { ITransactionRepository } from '@core/racing/domain/repositories/TransactionRepository';
import type { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import type { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
import type { IMediaRepository } from '@core/racing/domain/repositories/MediaRepository';
import { getPointsSystems } from '@adapters/bootstrap/PointsSystems';

View File

@@ -4,8 +4,8 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { Logger } from '@core/shared/application/Logger';
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import {
InMemoryFeedRepository,

View File

@@ -5,8 +5,8 @@ import type { DataSource } from 'typeorm';
import type { Logger } from '@core/shared/application/Logger';
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
import type { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository';
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/INotificationPreferenceRepository';
import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
import { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity';
import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity';

View File

@@ -4,10 +4,10 @@ import type { DataSource } from 'typeorm';
import { LoggingModule } from '../../domain/logging/LoggingModule';
import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository';
import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/IMembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/IPrizeRepository';
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository';
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
import { PaymentsMemberPaymentOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMemberPaymentOrmEntity';
import { PaymentsMembershipFeeOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMembershipFeeOrmEntity';

View File

@@ -10,8 +10,8 @@ import { DatabaseModule } from '../../domain/database/DatabaseModule';
import { PostgresSocialPersistenceModule } from '../postgres/PostgresSocialPersistenceModule';
import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from './SocialPersistenceTokens';
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
import { FeedItemOrmEntity } from '@adapters/social/persistence/typeorm/entities/FeedItemOrmEntity';
import { FriendshipOrmEntity } from '@adapters/social/persistence/typeorm/entities/FriendshipOrmEntity';