From 7e02fc3ea5a7b1e0b4f5e73c2f6b762470d6d6f7 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Fri, 16 Jan 2026 13:48:18 +0100 Subject: [PATCH] website refactor --- ...> TypeOrmPersistenceSchemaAdapterError.ts} | 6 +- .../typeorm/mappers/AchievementOrmMapper.ts | 28 ++-- .../TypeOrmAchievementRepository.ts | 4 +- .../typeorm/schema/AchievementSchemaGuard.ts | 28 ++-- ...nMemoryAnalyticsSnapshotRepository.test.ts | 4 +- .../InMemoryAnalyticsSnapshotRepository.ts | 6 +- .../InMemoryEngagementRepository.test.ts | 4 +- .../inmemory/InMemoryEngagementRepository.ts | 6 +- .../InMemoryPageViewRepository.test.ts | 4 +- .../inmemory/InMemoryPageViewRepository.ts | 6 +- .../TypeOrmAnalyticsSnapshotRepository.ts | 4 +- .../TypeOrmEngagementRepository.ts | 4 +- .../repositories/TypeOrmPageViewRepository.ts | 4 +- adapters/bootstrap/EnsureInitialData.ts | 2 +- adapters/bootstrap/ScoringDemoSetup.ts | 2 +- adapters/bootstrap/SeedDemoUsers.test.ts | 8 +- adapters/bootstrap/SeedDemoUsers.ts | 8 +- .../SeedRacingData.forceReseed.test.ts | 2 +- adapters/bootstrap/SeedRacingData.ts | 56 +++---- .../InMemoryAchievementRepository.test.ts | 2 +- .../inmemory/InMemoryAchievementRepository.ts | 4 +- .../inmemory/InMemoryAuthRepository.test.ts | 2 +- .../inmemory/InMemoryAuthRepository.ts | 10 +- .../inmemory/InMemoryCompanyRepository.ts | 4 +- .../InMemoryExternalGameRatingRepository.ts | 4 +- .../inmemory/InMemoryMagicLinkRepository.ts | 8 +- .../InMemorySponsorAccountRepository.test.ts | 2 +- .../InMemorySponsorAccountRepository.ts | 6 +- .../InMemoryUserRatingRepository.test.ts | 2 +- .../inmemory/InMemoryUserRatingRepository.ts | 6 +- .../inmemory/InMemoryUserRepository.test.ts | 4 +- .../inmemory/InMemoryUserRepository.ts | 6 +- .../typeorm/mappers/UserOrmMapper.ts | 2 +- .../repositories/TypeOrmAuthRepository.ts | 4 +- .../repositories/TypeOrmCompanyRepository.ts | 4 +- .../TypeOrmExternalGameRatingRepository.ts | 4 +- .../TypeOrmMagicLinkRepository.ts | 8 +- .../TypeOrmRatingEventRepository.ts | 4 +- .../TypeOrmUserRatingRepository.ts | 4 +- .../repositories/TypeOrmUserRepository.ts | 4 +- .../InMemoryPasswordHashingService.ts | 4 +- .../session/CookieIdentitySessionAdapter.ts | 2 +- adapters/logging/ConsoleErrorReporter.ts | 2 +- adapters/logging/ConsoleLogger.ts | 2 +- ...InMemoryAvatarGenerationRepository.test.ts | 2 +- .../InMemoryAvatarGenerationRepository.ts | 6 +- .../TypeOrmAvatarGenerationRepository.ts | 4 +- .../repositories/TypeOrmAvatarRepository.ts | 4 +- .../repositories/TypeOrmMediaRepository.ts | 4 +- .../InMemoryFaceValidationAdapter.test.ts | 2 +- .../ports/InMemoryFaceValidationAdapter.ts | 2 +- .../ports/InMemoryImageServiceAdapter.test.ts | 2 +- .../ports/InMemoryImageServiceAdapter.ts | 6 +- .../gateways/NotificationGatewayRegistry.ts | 2 +- ...ryNotificationPreferenceRepository.test.ts | 2 +- ...nMemoryNotificationPreferenceRepository.ts | 6 +- .../InMemoryNotificationRepository.test.ts | 2 +- .../InMemoryNotificationRepository.ts | 6 +- ...TypeOrmNotificationPreferenceRepository.ts | 4 +- .../TypeOrmNotificationRepository.ts | 4 +- .../ConsoleMagicLinkNotificationAdapter.ts | 6 +- .../ports/NotificationServiceAdapter.ts | 6 +- .../InMemoryMembershipFeeRepository.test.ts | 2 +- .../InMemoryMembershipFeeRepository.ts | 8 +- .../InMemoryPaymentRepository.test.ts | 2 +- .../inmemory/InMemoryPaymentRepository.ts | 6 +- .../inmemory/InMemoryPrizeRepository.test.ts | 2 +- .../inmemory/InMemoryPrizeRepository.ts | 6 +- .../inmemory/InMemoryWalletRepository.test.ts | 2 +- .../inmemory/InMemoryWalletRepository.ts | 8 +- .../TypeOrmMembershipFeeRepository.ts | 6 +- .../repositories/TypeOrmPaymentRepository.ts | 4 +- .../repositories/TypeOrmPrizeRepository.ts | 4 +- .../repositories/TypeOrmWalletRepository.ts | 6 +- .../InMemoryAchievementRepository.ts | 4 +- .../inmemory/InMemoryCarRepository.test.ts | 2 +- .../inmemory/InMemoryCarRepository.ts | 6 +- .../inmemory/InMemoryDriverRepository.test.ts | 2 +- .../inmemory/InMemoryDriverRepository.ts | 6 +- .../inmemory/InMemoryDriverStatsRepository.ts | 8 +- .../inmemory/InMemoryGameRepository.test.ts | 2 +- .../inmemory/InMemoryGameRepository.ts | 6 +- ...InMemoryLeagueMembershipRepository.test.ts | 2 +- .../InMemoryLeagueMembershipRepository.ts | 6 +- .../inmemory/InMemoryLeagueRepository.test.ts | 2 +- .../inmemory/InMemoryLeagueRepository.ts | 6 +- ...emoryLeagueScoringConfigRepository.test.ts | 2 +- .../InMemoryLeagueScoringConfigRepository.ts | 6 +- .../InMemoryLeagueStandingsRepository.test.ts | 4 +- .../InMemoryLeagueStandingsRepository.ts | 6 +- .../InMemoryLeagueWalletRepository.test.ts | 2 +- .../InMemoryLeagueWalletRepository.ts | 6 +- .../inmemory/InMemoryLiveryRepository.test.ts | 2 +- .../inmemory/InMemoryLiveryRepository.ts | 6 +- .../InMemoryPenaltyRepository.test.ts | 2 +- .../inmemory/InMemoryPenaltyRepository.ts | 6 +- .../InMemoryProtestRepository.test.ts | 2 +- .../inmemory/InMemoryProtestRepository.ts | 6 +- .../InMemoryRaceEventRepository.test.ts | 2 +- .../inmemory/InMemoryRaceEventRepository.ts | 6 +- ...InMemoryRaceRegistrationRepository.test.ts | 2 +- .../InMemoryRaceRegistrationRepository.ts | 6 +- .../inmemory/InMemoryRaceRepository.test.ts | 2 +- .../inmemory/InMemoryRaceRepository.ts | 6 +- .../inmemory/InMemoryResultRepository.test.ts | 4 +- .../inmemory/InMemoryResultRepository.ts | 8 +- .../InMemoryScoringRepositories.test.ts | 2 +- .../inmemory/InMemoryScoringRepositories.ts | 18 +-- .../inmemory/InMemorySeasonRepository.test.ts | 2 +- .../inmemory/InMemorySeasonRepository.ts | 6 +- ...nMemorySeasonSponsorshipRepository.test.ts | 2 +- .../InMemorySeasonSponsorshipRepository.ts | 6 +- .../InMemorySessionRepository.test.ts | 2 +- .../inmemory/InMemorySessionRepository.ts | 6 +- .../InMemorySponsorRepository.test.ts | 2 +- .../inmemory/InMemorySponsorRepository.ts | 6 +- ...MemorySponsorshipPricingRepository.test.ts | 2 +- .../InMemorySponsorshipPricingRepository.ts | 6 +- ...MemorySponsorshipRequestRepository.test.ts | 2 +- .../InMemorySponsorshipRequestRepository.ts | 6 +- .../InMemoryStandingRepository.test.ts | 2 +- .../inmemory/InMemoryStandingRepository.ts | 12 +- .../InMemoryTeamMembershipRepository.test.ts | 2 +- .../InMemoryTeamMembershipRepository.ts | 6 +- .../inmemory/InMemoryTeamRepository.test.ts | 2 +- .../inmemory/InMemoryTeamRepository.ts | 6 +- .../inmemory/InMemoryTeamStatsRepository.ts | 6 +- .../inmemory/InMemoryTrackRepository.test.ts | 2 +- .../inmemory/InMemoryTrackRepository.ts | 6 +- .../InMemoryTransactionRepository.test.ts | 2 +- .../inmemory/InMemoryTransactionRepository.ts | 6 +- .../media/InMemoryMediaRepository.ts | 6 +- .../typeorm/mappers/DriverStatsOrmMapper.ts | 2 +- .../typeorm/mappers/TeamStatsOrmMapper.ts | 2 +- .../CommerceTypeOrmRepositories.ts | 28 ++-- .../StewardingTypeOrmRepositories.ts | 8 +- .../repositories/TeamTypeOrmRepositories.ts | 8 +- .../repositories/TypeOrmDriverRepository.ts | 4 +- .../TypeOrmDriverStatsRepository.ts | 6 +- .../TypeOrmLeagueMembershipRepository.ts | 4 +- .../repositories/TypeOrmLeagueRepository.ts | 4 +- .../TypeOrmLeagueScoringConfigRepository.ts | 4 +- .../TypeOrmRaceRegistrationRepository.ts | 4 +- .../repositories/TypeOrmRaceRepository.ts | 4 +- .../repositories/TypeOrmResultRepository.ts | 4 +- .../repositories/TypeOrmSeasonRepository.ts | 4 +- .../repositories/TypeOrmStandingRepository.ts | 4 +- .../TypeOrmTeamRatingEventRepository.ts | 4 +- .../TypeOrmTeamRatingRepository.ts | 4 +- .../TypeOrmTeamStatsRepository.ts | 4 +- ...emoryDriverExtendedProfileProvider.test.ts | 2 +- .../InMemoryDriverExtendedProfileProvider.ts | 2 +- .../InMemoryDriverRatingProvider.test.ts | 2 +- .../ports/InMemoryDriverRatingProvider.ts | 2 +- .../inmemory/InMemorySocialAndFeed.test.ts | 2 +- .../inmemory/InMemorySocialAndFeed.ts | 10 +- .../repositories/TypeOrmFeedRepository.ts | 4 +- .../TypeOrmSocialGraphRepository.ts | 4 +- apps/api/src/domain/admin/AdminModule.ts | 2 +- .../api/src/domain/admin/AdminService.test.ts | 2 +- .../use-cases/GetDashboardStatsUseCase.ts | 4 +- .../domain/analytics/AnalyticsProviders.ts | 4 +- .../domain/analytics/AnalyticsService.test.ts | 2 +- .../src/domain/auth/ActorFromSession.test.ts | 2 +- apps/api/src/domain/auth/AuthProviders.ts | 8 +- apps/api/src/domain/auth/AuthService.test.ts | 2 +- .../domain/bootstrap/BootstrapProviders.ts | 2 +- .../domain/dashboard/DashboardProviders.ts | 18 +-- .../domain/dashboard/DashboardService.test.ts | 2 +- apps/api/src/domain/driver/DriverProviders.ts | 22 +-- .../src/domain/driver/DriverService.test.ts | 2 +- apps/api/src/domain/driver/DriverService.ts | 2 +- .../driver/presenters/DriverPresenter.ts | 4 +- .../GetDriverLiveriesPresenter.test.ts | 2 +- .../presenters/GetDriverLiveriesPresenter.ts | 2 +- apps/api/src/domain/league/LeagueProviders.ts | 24 +-- .../src/domain/league/LeagueService.test.ts | 2 +- apps/api/src/domain/media/MediaProviders.ts | 6 +- .../api/src/domain/media/MediaService.test.ts | 2 +- .../notifications/NotificationsProviders.ts | 2 +- .../src/domain/payments/PaymentsProviders.ts | 8 +- .../domain/payments/PaymentsService.test.ts | 2 +- .../src/domain/protests/ProtestsProviders.ts | 6 +- .../domain/protests/ProtestsService.test.ts | 2 +- apps/api/src/domain/race/RaceProviders.ts | 18 +-- apps/api/src/domain/race/RaceService.test.ts | 2 +- .../race/presenters/RaceDetailPresenter.ts | 2 +- .../presenters/RaceResultsDetailPresenter.ts | 2 +- .../src/domain/sponsor/SponsorProviders.ts | 22 +-- .../src/domain/sponsor/SponsorService.test.ts | 2 +- apps/api/src/domain/team/TeamProviders.ts | 8 +- apps/api/src/domain/team/TeamService.test.ts | 2 +- .../AchievementPersistenceModule.test.ts | 2 +- .../InMemoryAnalyticsPersistenceModule.ts | 6 +- .../InMemoryIdentityPersistenceModule.ts | 2 +- .../InMemoryMediaPersistenceModule.ts | 6 +- .../InMemoryNotificationsPersistenceModule.ts | 4 +- .../InMemoryPaymentsPersistenceModule.ts | 8 +- .../InMemoryRacingPersistenceModule.ts | 46 +++--- .../InMemorySocialPersistenceModule.ts | 4 +- .../PostgresNotificationsPersistenceModule.ts | 4 +- .../PostgresPaymentsPersistenceModule.ts | 8 +- ...tgresSocialPersistence.integration.test.ts | 4 +- .../ports/AuthenticationServicePort.ts | 2 +- .../ports/CheckoutConfirmationPort.ts | 2 +- .../application/ports/CheckoutServicePort.ts | 2 +- .../application/ports/SessionValidatorPort.ts | 2 +- .../services/OverlaySyncService.ts | 2 +- .../use-cases/CheckAuthenticationUseCase.ts | 2 +- .../use-cases/ClearSessionUseCase.ts | 2 +- .../use-cases/CompleteRaceCreationUseCase.ts | 2 +- .../use-cases/ConfirmCheckoutUseCase.ts | 2 +- .../use-cases/InitiateLoginUseCase.ts | 2 +- .../VerifyAuthenticatedPageUseCase.ts | 2 +- .../domain/services/PageStateValidator.ts | 2 +- .../services/StepTransitionValidator.ts | 2 +- .../automation/CheckoutPriceExtractor.ts | 4 +- .../auth/IRacingPlaywrightAuthFlow.ts | 2 +- .../auth/PlaywrightAuthSessionService.ts | 2 +- .../automation/auth/SessionCookieStore.ts | 2 +- .../core/PlaywrightAutomationAdapter.ts | 10 +- .../automation/core/WizardStepOrchestrator.ts | 8 +- .../automation/dom/IRacingDomInteractor.ts | 2 +- .../automation/dom/IRacingDomNavigator.ts | 2 +- .../automation/dom/SafeClickService.ts | 2 +- .../engine/MockBrowserAutomationAdapter.ts | 2 +- .../ElectronCheckoutConfirmationAdapter.ts | 2 +- apps/companion/main/di-config.ts | 2 +- apps/companion/main/ipc-handlers.ts | 2 +- ...erRepository.ts => AdminUserRepository.ts} | 2 +- .../use-cases/ListUsersUseCase.test.ts | 2 +- .../application/use-cases/ListUsersUseCase.ts | 4 +- core/admin/domain/entities/AdminUser.ts | 4 +- core/admin/domain/errors/AdminDomainError.ts | 10 +- ...erRepository.ts => AdminUserRepository.ts} | 2 +- core/admin/domain/value-objects/Email.ts | 4 +- core/admin/domain/value-objects/UserId.ts | 4 +- core/admin/domain/value-objects/UserRole.ts | 4 +- core/admin/domain/value-objects/UserStatus.ts | 4 +- .../InMemoryAdminUserRepository.ts | 4 +- .../TypeOrmAdminUserRepository.ts | 4 +- ...iewRepository.ts => PageViewRepository.ts} | 2 +- .../use-cases/GetAnalyticsMetricsUseCase.ts | 4 +- .../use-cases/GetDashboardDataUseCase.ts | 2 +- .../use-cases/GetEntityAnalyticsQuery.test.ts | 6 +- .../use-cases/GetEntityAnalyticsQuery.ts | 6 +- .../use-cases/RecordEngagementUseCase.test.ts | 2 +- .../use-cases/RecordEngagementUseCase.ts | 4 +- .../use-cases/RecordPageViewUseCase.ts | 4 +- .../domain/entities/AnalyticsSnapshot.ts | 4 +- .../domain/entities/EngagementEvent.ts | 4 +- core/analytics/domain/entities/PageView.ts | 4 +- ...tory.ts => AnalyticsSnapshotRepository.ts} | 2 +- ...tRepository.ts => EngagementRepository.ts} | 2 +- ...iewRepository.ts => PageViewRepository.ts} | 2 +- .../domain/value-objects/AnalyticsEntityId.ts | 4 +- .../value-objects/AnalyticsSessionId.ts | 4 +- .../domain/value-objects/PageViewId.ts | 4 +- core/analytics/index.ts | 23 --- core/domain/media/MediaReference.ts | 4 +- core/identity/application/dtos/index.ts | 13 -- ...ultsProvider.ts => RaceResultsProvider.ts} | 2 +- .../GetLeagueEligibilityPreviewQuery.test.ts | 4 +- .../GetLeagueEligibilityPreviewQuery.ts | 4 +- .../queries/GetUserRatingLedgerQuery.ts | 2 +- .../queries/GetUserRatingsSummaryQuery.ts | 6 +- core/identity/application/queries/index.ts | 17 -- .../AppendRatingEventsUseCase.test.ts | 4 +- .../use-cases/AppendRatingEventsUseCase.ts | 4 +- .../use-cases/CastAdminVoteUseCase.ts | 2 +- .../use-cases/CloseAdminVoteSessionUseCase.ts | 6 +- .../use-cases/ForgotPasswordUseCase.test.ts | 8 +- .../use-cases/ForgotPasswordUseCase.ts | 8 +- .../GetCurrentSessionUseCase.test.ts | 4 +- .../use-cases/GetCurrentSessionUseCase.ts | 4 +- .../GetCurrentUserSessionUseCase.test.ts | 2 +- .../use-cases/GetCurrentUserSessionUseCase.ts | 2 +- .../use-cases/GetUserUseCase.test.ts | 4 +- .../application/use-cases/GetUserUseCase.ts | 4 +- .../HandleAuthCallbackUseCase.test.ts | 2 +- .../use-cases/HandleAuthCallbackUseCase.ts | 2 +- .../use-cases/LoginUseCase.test.ts | 6 +- .../application/use-cases/LoginUseCase.ts | 6 +- .../use-cases/LoginWithEmailUseCase.test.ts | 2 +- .../use-cases/LoginWithEmailUseCase.ts | 4 +- .../use-cases/LogoutUseCase.test.ts | 2 +- .../application/use-cases/LogoutUseCase.ts | 2 +- .../use-cases/OpenAdminVoteSessionUseCase.ts | 2 +- ...RecomputeUserRatingSnapshotUseCase.test.ts | 4 +- .../RecomputeUserRatingSnapshotUseCase.ts | 4 +- ...aceRatingEventsUseCase.integration.test.ts | 16 +- .../RecordRaceRatingEventsUseCase.test.ts | 16 +- .../RecordRaceRatingEventsUseCase.ts | 6 +- .../use-cases/ResetPasswordUseCase.test.ts | 8 +- .../use-cases/ResetPasswordUseCase.ts | 8 +- .../use-cases/SignupSponsorUseCase.test.ts | 8 +- .../use-cases/SignupSponsorUseCase.ts | 8 +- .../use-cases/SignupUseCase.test.ts | 4 +- .../application/use-cases/SignupUseCase.ts | 6 +- .../use-cases/SignupWithEmailUseCase.test.ts | 4 +- .../use-cases/SignupWithEmailUseCase.ts | 4 +- .../use-cases/StartAuthUseCase.test.ts | 2 +- .../application/use-cases/StartAuthUseCase.ts | 2 +- .../UpsertExternalGameRatingUseCase.test.ts | 2 +- .../UpsertExternalGameRatingUseCase.ts | 2 +- .../CreateAchievementUseCase.test.ts | 2 +- .../achievement/CreateAchievementUseCase.ts | 4 +- core/identity/domain/entities/Achievement.ts | 4 +- .../domain/entities/AdminVoteSession.ts | 4 +- core/identity/domain/entities/RatingEvent.ts | 4 +- core/identity/domain/entities/User.ts | 2 +- .../domain/entities/UserAchievement.ts | 4 +- .../domain/errors/IdentityDomainError.ts | 8 +- ...onPort.ts => MagicLinkNotificationPort.ts} | 2 +- ...Repository.ts => AchievementRepository.ts} | 2 +- ...itory.ts => AdminVoteSessionRepository.ts} | 2 +- .../{IAuthRepository.ts => AuthRepository.ts} | 2 +- ...panyRepository.ts => CompanyRepository.ts} | 2 +- ...s => ExternalGameRatingRepository.test.ts} | 8 +- ...ory.ts => ExternalGameRatingRepository.ts} | 2 +- ...nkRepository.ts => MagicLinkRepository.ts} | 4 +- ....test.ts => RatingEventRepository.test.ts} | 4 +- ...Repository.ts => RatingEventRepository.ts} | 2 +- ...ository.ts => SponsorAccountRepository.ts} | 2 +- ...y.test.ts => UserRatingRepository.test.ts} | 4 +- ...gRepository.ts => UserRatingRepository.ts} | 2 +- .../{IUserRepository.ts => UserRepository.ts} | 2 +- .../domain/services/PasswordHashingService.ts | 4 +- .../services/RatingUpdateService.test.ts | 4 +- .../domain/services/RatingUpdateService.ts | 8 +- .../value-objects/AdminTrustReasonCode.ts | 4 +- .../domain/value-objects/DrivingReasonCode.ts | 4 +- .../domain/value-objects/EmailAddress.ts | 4 +- .../domain/value-objects/ExternalRating.ts | 4 +- .../value-objects/ExternalRatingProvenance.ts | 4 +- core/identity/domain/value-objects/GameKey.ts | 4 +- .../domain/value-objects/PasswordHash.ts | 4 +- .../domain/value-objects/RatingDelta.ts | 4 +- .../value-objects/RatingDimensionKey.ts | 4 +- .../domain/value-objects/RatingEventId.ts | 4 +- .../domain/value-objects/RatingReference.ts | 4 +- .../domain/value-objects/RatingValue.ts | 4 +- core/identity/domain/value-objects/UserId.ts | 4 +- .../domain/value-objects/UserRating.ts | 4 +- core/identity/index.ts | 26 --- core/league/application/index.ts | 1 - ...sitory.ts => LeagueStandingsRepository.ts} | 2 +- .../use-cases/DeleteMediaUseCase.test.ts | 4 +- .../use-cases/DeleteMediaUseCase.ts | 4 +- .../use-cases/GetAvatarUseCase.test.ts | 4 +- .../application/use-cases/GetAvatarUseCase.ts | 4 +- .../use-cases/GetMediaUseCase.test.ts | 4 +- .../application/use-cases/GetMediaUseCase.ts | 4 +- .../use-cases/GetUploadedMediaUseCase.ts | 2 +- .../RequestAvatarGenerationUseCase.test.ts | 4 +- .../RequestAvatarGenerationUseCase.ts | 4 +- .../use-cases/ResolveMediaReferenceUseCase.ts | 2 +- .../use-cases/SelectAvatarUseCase.test.ts | 4 +- .../use-cases/SelectAvatarUseCase.ts | 4 +- .../use-cases/UpdateAvatarUseCase.test.ts | 4 +- .../use-cases/UpdateAvatarUseCase.ts | 4 +- .../use-cases/UploadMediaUseCase.test.ts | 4 +- .../use-cases/UploadMediaUseCase.ts | 4 +- core/media/domain/entities/Avatar.ts | 4 +- .../entities/AvatarGenerationRequest.ts | 4 +- core/media/domain/entities/Media.ts | 4 +- ...itory.ts => AvatarGenerationRepository.ts} | 2 +- ...vatarRepository.ts => AvatarRepository.ts} | 2 +- ...IMediaRepository.ts => MediaRepository.ts} | 2 +- core/media/domain/value-objects/AvatarId.ts | 4 +- core/media/domain/value-objects/MediaUrl.ts | 4 +- core/notifications/application/index.ts | 28 ---- .../use-cases/GetAllNotificationsUseCase.ts | 4 +- .../GetUnreadNotificationsUseCase.test.ts | 4 +- .../GetUnreadNotificationsUseCase.ts | 4 +- .../MarkNotificationReadUseCase.test.ts | 4 +- .../use-cases/MarkNotificationReadUseCase.ts | 4 +- .../NotificationPreferencesUseCases.test.ts | 4 +- .../NotificationPreferencesUseCases.ts | 4 +- .../use-cases/SendNotificationUseCase.test.ts | 6 +- .../use-cases/SendNotificationUseCase.ts | 6 +- .../domain/entities/Notification.ts | 4 +- .../domain/entities/NotificationPreference.ts | 4 +- .../domain/errors/NotificationDomainError.ts | 4 +- ...ts => NotificationPreferenceRepository.ts} | 2 +- ...epository.ts => NotificationRepository.ts} | 2 +- .../domain/value-objects/NotificationId.ts | 4 +- .../domain/value-objects/QuietHours.ts | 4 +- core/payments/application/index.ts | 1 - .../use-cases/AwardPrizeUseCase.test.ts | 2 +- .../use-cases/AwardPrizeUseCase.ts | 4 +- .../use-cases/CreatePaymentUseCase.test.ts | 2 +- .../use-cases/CreatePaymentUseCase.ts | 4 +- .../use-cases/CreatePrizeUseCase.test.ts | 2 +- .../use-cases/CreatePrizeUseCase.ts | 4 +- .../use-cases/DeletePrizeUseCase.test.ts | 2 +- .../use-cases/DeletePrizeUseCase.ts | 4 +- .../GetMembershipFeesUseCase.test.ts | 2 +- .../use-cases/GetMembershipFeesUseCase.ts | 4 +- .../use-cases/GetPaymentsUseCase.test.ts | 2 +- .../use-cases/GetPaymentsUseCase.ts | 4 +- .../use-cases/GetPrizesUseCase.test.ts | 2 +- .../application/use-cases/GetPrizesUseCase.ts | 4 +- .../GetSponsorBillingUseCase.test.ts | 4 +- .../use-cases/GetSponsorBillingUseCase.ts | 6 +- .../use-cases/GetWalletUseCase.test.ts | 2 +- .../application/use-cases/GetWalletUseCase.ts | 4 +- .../ProcessWalletTransactionUseCase.test.ts | 2 +- .../ProcessWalletTransactionUseCase.ts | 4 +- .../UpdateMemberPaymentUseCase.test.ts | 2 +- .../use-cases/UpdateMemberPaymentUseCase.ts | 4 +- .../UpdatePaymentStatusUseCase.test.ts | 2 +- .../use-cases/UpdatePaymentStatusUseCase.ts | 4 +- .../UpsertMembershipFeeUseCase.test.ts | 2 +- .../use-cases/UpsertMembershipFeeUseCase.ts | 4 +- core/payments/application/use-cases/index.ts | 13 -- core/payments/domain/entities/index.ts | 5 - core/payments/domain/index.ts | 2 - ...pository.ts => MembershipFeeRepository.ts} | 4 +- ...mentRepository.ts => PaymentRepository.ts} | 2 +- ...IPrizeRepository.ts => PrizeRepository.ts} | 2 +- ...alletRepository.ts => WalletRepository.ts} | 4 +- core/payments/domain/repositories/index.ts | 4 - core/payments/index.ts | 2 - core/racing/application/index.ts | 73 --------- ...mageServicePort.ts => ImageServicePort.ts} | 2 +- ...Provider.ts => TeamRaceResultsProvider.ts} | 2 +- .../queries/GetTeamRatingLedgerQuery.ts | 2 +- .../queries/GetTeamRatingsSummaryQuery.ts | 4 +- core/racing/application/queries/index.ts | 5 - .../AcceptSponsorshipRequestUseCase.test.ts | 10 +- .../AcceptSponsorshipRequestUseCase.ts | 12 +- .../AppendTeamRatingEventsUseCase.test.ts | 8 +- .../AppendTeamRatingEventsUseCase.ts | 4 +- .../ApplyForSponsorshipUseCase.test.ts | 6 +- .../use-cases/ApplyForSponsorshipUseCase.ts | 8 +- .../use-cases/ApplyPenaltyUseCase.test.ts | 8 +- .../use-cases/ApplyPenaltyUseCase.ts | 10 +- .../ApproveLeagueJoinRequestUseCase.test.ts | 4 +- .../ApproveLeagueJoinRequestUseCase.ts | 6 +- .../ApproveTeamJoinRequestUseCase.test.ts | 2 +- .../ApproveTeamJoinRequestUseCase.ts | 4 +- .../use-cases/CancelRaceUseCase.test.ts | 2 +- .../use-cases/CancelRaceUseCase.ts | 4 +- .../CloseRaceEventStewardingUseCase.test.ts | 6 +- .../CloseRaceEventStewardingUseCase.ts | 8 +- .../CompleteDriverOnboardingUseCase.test.ts | 2 +- .../CompleteDriverOnboardingUseCase.ts | 4 +- .../use-cases/CompleteRaceUseCase.test.ts | 8 +- .../use-cases/CompleteRaceUseCase.ts | 10 +- .../CompleteRaceUseCaseWithRatings.test.ts | 10 +- .../CompleteRaceUseCaseWithRatings.ts | 12 +- ...ateLeagueSeasonScheduleRaceUseCase.test.ts | 4 +- .../CreateLeagueSeasonScheduleRaceUseCase.ts | 6 +- ...eLeagueWithSeasonAndScoringUseCase.test.ts | 6 +- ...CreateLeagueWithSeasonAndScoringUseCase.ts | 8 +- .../CreateSeasonForLeagueUseCase.test.ts | 6 +- .../use-cases/CreateSeasonForLeagueUseCase.ts | 6 +- .../use-cases/CreateSponsorUseCase.test.ts | 2 +- .../use-cases/CreateSponsorUseCase.ts | 4 +- .../use-cases/CreateTeamUseCase.test.ts | 4 +- .../use-cases/CreateTeamUseCase.ts | 6 +- .../DashboardOverviewUseCase.test.ts | 2 +- .../use-cases/DashboardOverviewUseCase.ts | 20 +-- ...eteLeagueSeasonScheduleRaceUseCase.test.ts | 4 +- .../DeleteLeagueSeasonScheduleRaceUseCase.ts | 6 +- .../use-cases/DriverStatsUseCase.ts | 127 +++------------ .../use-cases/FileProtestUseCase.test.ts | 6 +- .../use-cases/FileProtestUseCase.ts | 8 +- ...aguesWithCapacityAndScoringUseCase.test.ts | 10 +- ...AllLeaguesWithCapacityAndScoringUseCase.ts | 12 +- .../GetAllLeaguesWithCapacityUseCase.test.ts | 4 +- .../GetAllLeaguesWithCapacityUseCase.ts | 6 +- .../GetAllRacesPageDataUseCase.test.ts | 4 +- .../use-cases/GetAllRacesPageDataUseCase.ts | 6 +- .../use-cases/GetAllRacesUseCase.test.ts | 4 +- .../use-cases/GetAllRacesUseCase.ts | 6 +- .../use-cases/GetAllTeamsUseCase.test.ts | 8 +- .../use-cases/GetAllTeamsUseCase.ts | 8 +- .../GetDriverLiveriesUseCase.test.ts | 2 +- .../use-cases/GetDriverLiveriesUseCase.ts | 4 +- .../use-cases/GetDriverTeamUseCase.test.ts | 4 +- .../use-cases/GetDriverTeamUseCase.ts | 6 +- .../application/use-cases/GetDriverUseCase.ts | 4 +- .../GetDriversLeaderboardUseCase.test.ts | 6 +- .../use-cases/GetDriversLeaderboardUseCase.ts | 8 +- ...GetEntitySponsorshipPricingUseCase.test.ts | 2 +- .../GetEntitySponsorshipPricingUseCase.ts | 4 +- .../GetLeagueAdminPermissionsUseCase.test.ts | 4 +- .../GetLeagueAdminPermissionsUseCase.ts | 6 +- .../use-cases/GetLeagueAdminUseCase.test.ts | 2 +- .../use-cases/GetLeagueAdminUseCase.ts | 4 +- .../GetLeagueDriverSeasonStatsUseCase.test.ts | 10 +- .../GetLeagueDriverSeasonStatsUseCase.ts | 12 +- .../GetLeagueFullConfigUseCase.test.ts | 8 +- .../use-cases/GetLeagueFullConfigUseCase.ts | 10 +- .../GetLeagueJoinRequestsUseCase.test.ts | 6 +- .../use-cases/GetLeagueJoinRequestsUseCase.ts | 8 +- .../GetLeagueMembershipsUseCase.test.ts | 6 +- .../use-cases/GetLeagueMembershipsUseCase.ts | 8 +- .../GetLeagueOwnerSummaryUseCase.test.ts | 4 +- .../use-cases/GetLeagueOwnerSummaryUseCase.ts | 10 +- .../GetLeagueProtestsUseCase.test.ts | 8 +- .../use-cases/GetLeagueProtestsUseCase.ts | 10 +- ...GetLeagueRosterJoinRequestsUseCase.test.ts | 6 +- .../GetLeagueRosterJoinRequestsUseCase.ts | 8 +- .../GetLeagueRosterMembersUseCase.test.ts | 6 +- .../GetLeagueRosterMembersUseCase.ts | 8 +- .../GetLeagueScheduleUseCase.test.ts | 4 +- .../use-cases/GetLeagueScheduleUseCase.ts | 8 +- .../GetLeagueScoringConfigUseCase.test.ts | 10 +- .../GetLeagueScoringConfigUseCase.ts | 10 +- .../use-cases/GetLeagueSeasonsUseCase.test.ts | 4 +- .../use-cases/GetLeagueSeasonsUseCase.ts | 6 +- .../GetLeagueStandingsUseCase.test.ts | 4 +- .../use-cases/GetLeagueStandingsUseCase.ts | 6 +- .../use-cases/GetLeagueStatsUseCase.test.ts | 4 +- .../use-cases/GetLeagueStatsUseCase.ts | 6 +- .../use-cases/GetLeagueWalletUseCase.test.ts | 6 +- .../use-cases/GetLeagueWalletUseCase.ts | 8 +- ...tPendingSponsorshipRequestsUseCase.test.ts | 4 +- .../GetPendingSponsorshipRequestsUseCase.ts | 6 +- .../GetProfileOverviewUseCase.test.ts | 8 +- .../use-cases/GetProfileOverviewUseCase.ts | 14 +- .../use-cases/GetRaceDetailUseCase.test.ts | 12 +- .../use-cases/GetRaceDetailUseCase.ts | 14 +- .../use-cases/GetRacePenaltiesUseCase.test.ts | 4 +- .../use-cases/GetRacePenaltiesUseCase.ts | 6 +- .../use-cases/GetRaceProtestsUseCase.test.ts | 4 +- .../use-cases/GetRaceProtestsUseCase.ts | 6 +- .../GetRaceRegistrationsUseCase.test.ts | 6 +- .../use-cases/GetRaceRegistrationsUseCase.ts | 6 +- .../GetRaceResultsDetailUseCase.test.ts | 10 +- .../use-cases/GetRaceResultsDetailUseCase.ts | 12 +- .../use-cases/GetRaceWithSOFUseCase.test.ts | 6 +- .../use-cases/GetRaceWithSOFUseCase.ts | 8 +- .../use-cases/GetRacesPageDataUseCase.test.ts | 6 +- .../use-cases/GetRacesPageDataUseCase.ts | 6 +- .../use-cases/GetSeasonDetailsUseCase.test.ts | 4 +- .../use-cases/GetSeasonDetailsUseCase.ts | 4 +- .../GetSeasonSponsorshipsUseCase.test.ts | 10 +- .../use-cases/GetSeasonSponsorshipsUseCase.ts | 12 +- .../GetSponsorDashboardUseCase.test.ts | 12 +- .../use-cases/GetSponsorDashboardUseCase.ts | 14 +- .../GetSponsorSponsorshipsUseCase.test.ts | 12 +- .../GetSponsorSponsorshipsUseCase.ts | 14 +- .../use-cases/GetSponsorUseCase.test.ts | 2 +- .../use-cases/GetSponsorUseCase.ts | 4 +- .../use-cases/GetSponsorsUseCase.test.ts | 2 +- .../use-cases/GetSponsorsUseCase.ts | 4 +- .../use-cases/GetTeamDetailsUseCase.test.ts | 4 +- .../use-cases/GetTeamDetailsUseCase.ts | 6 +- .../GetTeamJoinRequestsUseCase.test.ts | 6 +- .../use-cases/GetTeamJoinRequestsUseCase.ts | 8 +- .../use-cases/GetTeamMembersUseCase.test.ts | 6 +- .../use-cases/GetTeamMembersUseCase.ts | 8 +- .../GetTeamMembershipUseCase.test.ts | 2 +- .../use-cases/GetTeamMembershipUseCase.ts | 4 +- .../GetTeamsLeaderboardUseCase.test.ts | 4 +- .../use-cases/GetTeamsLeaderboardUseCase.ts | 6 +- .../use-cases/GetTotalDriversUseCase.test.ts | 2 +- .../use-cases/GetTotalDriversUseCase.ts | 4 +- .../use-cases/GetTotalLeaguesUseCase.test.ts | 2 +- .../use-cases/GetTotalLeaguesUseCase.ts | 4 +- .../use-cases/GetTotalRacesUseCase.test.ts | 2 +- .../use-cases/GetTotalRacesUseCase.ts | 4 +- .../use-cases/IDriverStatsUseCase.ts | 26 --- .../application/use-cases/IRankingUseCase.ts | 18 --- .../use-cases/ITeamRankingUseCase.ts | 22 --- .../ImportRaceResultsApiUseCase.test.ts | 12 +- .../use-cases/ImportRaceResultsApiUseCase.ts | 12 +- .../ImportRaceResultsUseCase.test.ts | 10 +- .../use-cases/ImportRaceResultsUseCase.ts | 12 +- .../IsDriverRegisteredForRaceUseCase.test.ts | 2 +- .../IsDriverRegisteredForRaceUseCase.ts | 4 +- .../use-cases/JoinLeagueUseCase.test.ts | 2 +- .../use-cases/JoinLeagueUseCase.ts | 4 +- .../use-cases/JoinTeamUseCase.test.ts | 4 +- .../application/use-cases/JoinTeamUseCase.ts | 6 +- ...gueSeasonScheduleMutationsUseCases.test.ts | 4 +- .../use-cases/LeaveTeamUseCase.test.ts | 4 +- .../application/use-cases/LeaveTeamUseCase.ts | 6 +- .../ListLeagueScoringPresetsUseCase.test.ts | 2 +- .../ListLeagueScoringPresetsUseCase.ts | 2 +- .../ListSeasonsForLeagueUseCase.test.ts | 4 +- .../use-cases/ListSeasonsForLeagueUseCase.ts | 6 +- .../ManageSeasonLifecycleUseCase.test.ts | 4 +- .../use-cases/ManageSeasonLifecycleUseCase.ts | 6 +- .../use-cases/PreviewLeagueScheduleUseCase.ts | 2 +- ...PublishLeagueSeasonScheduleUseCase.test.ts | 2 +- .../PublishLeagueSeasonScheduleUseCase.ts | 4 +- .../use-cases/QuickPenaltyUseCase.test.ts | 6 +- .../use-cases/QuickPenaltyUseCase.ts | 8 +- .../application/use-cases/RankingUseCase.ts | 97 ++---------- ...culateChampionshipStandingsUseCase.test.ts | 14 +- ...RecalculateChampionshipStandingsUseCase.ts | 16 +- ...RecomputeTeamRatingSnapshotUseCase.test.ts | 8 +- .../RecomputeTeamRatingSnapshotUseCase.ts | 4 +- .../RecordTeamRaceRatingEventsUseCase.test.ts | 12 +- .../RecordTeamRaceRatingEventsUseCase.ts | 6 +- .../use-cases/RegisterForRaceUseCase.test.ts | 6 +- .../use-cases/RegisterForRaceUseCase.ts | 6 +- .../RejectLeagueJoinRequestUseCase.test.ts | 2 +- .../RejectLeagueJoinRequestUseCase.ts | 4 +- .../RejectSponsorshipRequestUseCase.test.ts | 4 +- .../RejectSponsorshipRequestUseCase.ts | 4 +- .../RejectTeamJoinRequestUseCase.test.ts | 4 +- .../use-cases/RejectTeamJoinRequestUseCase.ts | 6 +- .../RemoveLeagueMemberUseCase.test.ts | 2 +- .../use-cases/RemoveLeagueMemberUseCase.ts | 4 +- .../use-cases/ReopenRaceUseCase.test.ts | 2 +- .../use-cases/ReopenRaceUseCase.ts | 4 +- .../RequestProtestDefenseUseCase.test.ts | 8 +- .../use-cases/RequestProtestDefenseUseCase.ts | 8 +- .../use-cases/ReviewProtestUseCase.test.ts | 6 +- .../use-cases/ReviewProtestUseCase.ts | 8 +- .../use-cases/SeasonUseCases.test.ts | 4 +- .../application/use-cases/SeasonUseCases.ts | 6 +- .../use-cases/SendFinalResultsUseCase.test.ts | 10 +- .../use-cases/SendFinalResultsUseCase.ts | 10 +- .../SendPerformanceSummaryUseCase.test.ts | 12 +- .../SendPerformanceSummaryUseCase.ts | 12 +- .../SubmitProtestDefenseUseCase.test.ts | 6 +- .../use-cases/SubmitProtestDefenseUseCase.ts | 6 +- .../use-cases/TeamRankingUseCase.test.ts | 8 +- .../use-cases/TeamRankingUseCase.ts | 149 ++---------------- .../TeamRatingFactoryUseCase.test.ts | 4 +- .../use-cases/TeamRatingFactoryUseCase.ts | 2 +- .../TeamRatingIntegrationAdapter.test.ts | 12 +- .../use-cases/TeamRatingIntegrationAdapter.ts | 6 +- .../TransferLeagueOwnershipUseCase.test.ts | 6 +- .../TransferLeagueOwnershipUseCase.ts | 6 +- ...publishLeagueSeasonScheduleUseCase.test.ts | 2 +- .../UnpublishLeagueSeasonScheduleUseCase.ts | 4 +- .../UpdateDriverProfileUseCase.test.ts | 4 +- .../use-cases/UpdateDriverProfileUseCase.ts | 4 +- .../UpdateLeagueMemberRoleUseCase.test.ts | 2 +- .../UpdateLeagueMemberRoleUseCase.ts | 4 +- ...ateLeagueSeasonScheduleRaceUseCase.test.ts | 4 +- .../UpdateLeagueSeasonScheduleRaceUseCase.ts | 6 +- .../use-cases/UpdateTeamUseCase.test.ts | 4 +- .../use-cases/UpdateTeamUseCase.ts | 6 +- .../WithdrawFromLeagueWalletUseCase.test.ts | 6 +- .../WithdrawFromLeagueWalletUseCase.ts | 8 +- .../use-cases/WithdrawFromRaceUseCase.test.ts | 4 +- .../use-cases/WithdrawFromRaceUseCase.ts | 6 +- core/racing/domain/entities/Car.ts | 4 +- core/racing/domain/entities/Driver.ts | 6 +- core/racing/domain/entities/DriverLivery.ts | 4 +- core/racing/domain/entities/Game.ts | 4 +- core/racing/domain/entities/JoinRequest.ts | 4 +- core/racing/domain/entities/League.ts | 4 +- .../domain/entities/LeagueMembership.ts | 4 +- .../domain/entities/LeagueScoringConfig.ts | 4 +- core/racing/domain/entities/LiveryTemplate.ts | 4 +- core/racing/domain/entities/Protest.ts | 4 +- core/racing/domain/entities/Race.ts | 4 +- core/racing/domain/entities/RaceEvent.ts | 4 +- .../domain/entities/RaceRegistration.ts | 4 +- .../domain/entities/ResultWithIncidents.ts | 4 +- core/racing/domain/entities/Session.ts | 4 +- .../domain/entities/SponsorshipRequest.ts | 4 +- core/racing/domain/entities/Standing.ts | 4 +- core/racing/domain/entities/Team.ts | 4 +- .../racing/domain/entities/TeamRatingEvent.ts | 4 +- core/racing/domain/entities/Track.ts | 4 +- .../championship/ChampionshipStanding.ts | 4 +- .../entities/league-wallet/LeagueWallet.ts | 4 +- .../entities/league-wallet/Transaction.ts | 4 +- .../racing/domain/entities/penalty/Penalty.ts | 4 +- core/racing/domain/entities/prize/Prize.ts | 4 +- core/racing/domain/entities/result/Result.ts | 4 +- core/racing/domain/entities/season/Season.ts | 4 +- .../entities/season/SeasonSponsorship.ts | 4 +- .../domain/entities/season/index.test.ts | 7 - core/racing/domain/entities/season/index.ts | 3 - .../racing/domain/entities/sponsor/Sponsor.ts | 4 +- .../racing/domain/errors/RacingDomainError.ts | 8 +- .../racing/domain/events/MainRaceCompleted.ts | 4 +- .../events/RaceEventStewardingClosed.ts | 4 +- .../{ICarRepository.ts => CarRepository.ts} | 2 +- ...y.ts => ChampionshipStandingRepository.ts} | 2 +- ...riverRepository.ts => DriverRepository.ts} | 2 +- ...Repository.ts => DriverStatsRepository.ts} | 18 ++- .../{IGameRepository.ts => GameRepository.ts} | 2 +- ...itory.ts => LeagueMembershipRepository.ts} | 2 +- ...eagueRepository.ts => LeagueRepository.ts} | 2 +- ...ry.ts => LeagueScoringConfigRepository.ts} | 2 +- ...epository.ts => LeagueWalletRepository.ts} | 2 +- ...iveryRepository.ts => LiveryRepository.ts} | 2 +- ...IMediaRepository.ts => MediaRepository.ts} | 2 +- ...altyRepository.ts => PenaltyRepository.ts} | 2 +- ...IPrizeRepository.ts => PrizeRepository.ts} | 2 +- ...testRepository.ts => ProtestRepository.ts} | 2 +- ...ntRepository.ts => RaceEventRepository.ts} | 2 +- ...itory.ts => RaceRegistrationRepository.ts} | 2 +- .../{IRaceRepository.ts => RaceRepository.ts} | 2 +- ...esultRepository.ts => ResultRepository.ts} | 2 +- ...easonRepository.ts => SeasonRepository.ts} | 2 +- ...tory.ts => SeasonSponsorshipRepository.ts} | 2 +- ...sionRepository.ts => SessionRepository.ts} | 2 +- ...nsorRepository.ts => SponsorRepository.ts} | 2 +- ...ory.ts => SponsorshipPricingRepository.ts} | 2 +- ...ory.ts => SponsorshipRequestRepository.ts} | 2 +- ...ingRepository.ts => StandingRepository.ts} | 2 +- ...ository.ts => TeamMembershipRepository.ts} | 2 +- ...sitory.ts => TeamRatingEventRepository.ts} | 2 +- ...gRepository.ts => TeamRatingRepository.ts} | 2 +- .../{ITeamRepository.ts => TeamRepository.ts} | 2 +- ...tsRepository.ts => TeamStatsRepository.ts} | 2 +- ...ITrackRepository.ts => TrackRepository.ts} | 2 +- ...Repository.ts => TransactionRepository.ts} | 2 +- .../domain/services/DropScoreApplier.ts | 4 +- .../domain/services/EventScoringService.ts | 4 +- .../services/SeasonScheduleGenerator.ts | 4 +- .../domain/services/SkillLevelService.ts | 4 +- .../services/StrengthOfFieldCalculator.ts | 2 +- core/racing/domain/value-objects/CarId.ts | 4 +- .../domain/value-objects/CountryCode.ts | 4 +- .../domain/value-objects/DecalOverride.ts | 4 +- .../racing/domain/value-objects/DriverName.ts | 4 +- .../domain/value-objects/GameConstraints.ts | 4 +- core/racing/domain/value-objects/ImageUrl.ts | 4 +- core/racing/domain/value-objects/JoinedAt.ts | 4 +- .../domain/value-objects/LeagueDescription.ts | 4 +- .../racing/domain/value-objects/LeagueName.ts | 4 +- .../domain/value-objects/LeagueTimezone.ts | 4 +- .../domain/value-objects/LeagueVisibility.ts | 4 +- .../domain/value-objects/LiveryDecal.ts | 4 +- .../domain/value-objects/MaxParticipants.ts | 4 +- .../domain/value-objects/MembershipFee.ts | 4 +- core/racing/domain/value-objects/Money.ts | 4 +- .../value-objects/MonthlyRecurrencePattern.ts | 4 +- .../domain/value-objects/ParticipantCount.ts | 4 +- core/racing/domain/value-objects/Points.ts | 4 +- .../domain/value-objects/PointsTable.ts | 4 +- .../domain/value-objects/RaceIncidents.ts | 4 +- core/racing/domain/value-objects/RaceName.ts | 4 +- .../racing/domain/value-objects/RaceStatus.ts | 4 +- .../domain/value-objects/RaceTimeOfDay.ts | 4 +- .../{IRacingId.test.ts => RacingId.test.ts} | 2 +- .../{IRacingId.ts => RacingId.ts} | 4 +- .../value-objects/RecurrenceStrategy.ts | 4 +- .../domain/value-objects/ScheduledRaceSlot.ts | 4 +- .../domain/value-objects/SeasonDropPolicy.ts | 4 +- .../domain/value-objects/SeasonSchedule.ts | 4 +- .../value-objects/SeasonScoringConfig.ts | 4 +- .../domain/value-objects/SeasonStatus.ts | 4 +- .../value-objects/SeasonStewardingConfig.ts | 4 +- .../domain/value-objects/SessionDuration.ts | 4 +- .../domain/value-objects/SessionType.ts | 4 +- .../value-objects/SponsorshipPricing.ts | 4 +- .../domain/value-objects/StrengthOfField.ts | 4 +- .../domain/value-objects/TeamCreatedAt.ts | 4 +- .../domain/value-objects/TeamDescription.ts | 4 +- .../TeamDrivingReasonCode.test.ts | 5 +- .../value-objects/TeamDrivingReasonCode.ts | 4 +- core/racing/domain/value-objects/TeamName.ts | 4 +- .../racing/domain/value-objects/TeamRating.ts | 4 +- .../domain/value-objects/TeamRatingDelta.ts | 4 +- .../value-objects/TeamRatingDimensionKey.ts | 4 +- .../domain/value-objects/TeamRatingEventId.ts | 4 +- .../domain/value-objects/TeamRatingValue.ts | 4 +- core/racing/domain/value-objects/TeamTag.ts | 4 +- .../domain/value-objects/TrackCountry.ts | 4 +- .../domain/value-objects/TrackGameId.ts | 4 +- .../domain/value-objects/TrackImageUrl.ts | 4 +- .../domain/value-objects/TrackLength.ts | 4 +- .../domain/value-objects/TrackShortName.ts | 4 +- .../racing/domain/value-objects/TrackTurns.ts | 4 +- .../racing/domain/value-objects/WeekdaySet.ts | 4 +- .../domain/value-objects/driver/DriverBio.ts | 4 +- .../domain/value-objects/driver/DriverId.ts | 4 +- .../domain/value-objects/driver/DriverName.ts | 4 +- core/racing/index.ts | 48 ------ core/shared/application/AsyncUseCase.ts | 2 +- core/shared/application/Service.ts | 12 +- core/shared/application/UseCase.ts | 2 +- core/shared/application/index.ts | 7 - core/shared/domain/DomainEvent.ts | 2 +- core/shared/domain/Entity.ts | 9 +- core/shared/{application => domain}/Logger.ts | 0 core/shared/{application => domain}/Result.ts | 2 +- core/shared/domain/Service.ts | 27 ++-- core/shared/domain/ValueObject.ts | 9 +- core/shared/domain/index.ts | 5 - core/shared/errors/DomainError.ts | 7 +- core/shared/errors/index.ts | 3 - core/shared/index.ts | 5 - .../GetCurrentUserSocialUseCase.test.ts | 3 +- .../use-cases/GetCurrentUserSocialUseCase.ts | 4 +- .../use-cases/GetUserFeedUseCase.test.ts | 3 +- .../use-cases/GetUserFeedUseCase.ts | 4 +- .../social/domain/errors/SocialDomainError.ts | 4 +- .../{IFeedRepository.ts => FeedRepository.ts} | 7 +- ...Repository.ts => SocialGraphRepository.ts} | 7 +- 796 files changed, 1946 insertions(+), 2545 deletions(-) rename adapters/achievement/persistence/typeorm/errors/{TypeOrmPersistenceSchemaError.ts => TypeOrmPersistenceSchemaAdapterError.ts} (83%) rename core/admin/application/ports/{IAdminUserRepository.ts => AdminUserRepository.ts} (97%) rename core/admin/domain/repositories/{IAdminUserRepository.ts => AdminUserRepository.ts} (98%) rename core/analytics/application/repositories/{IPageViewRepository.ts => PageViewRepository.ts} (94%) rename core/analytics/domain/repositories/{IAnalyticsSnapshotRepository.ts => AnalyticsSnapshotRepository.ts} (95%) rename core/analytics/domain/repositories/{IEngagementRepository.ts => EngagementRepository.ts} (93%) rename core/analytics/domain/repositories/{IPageViewRepository.ts => PageViewRepository.ts} (93%) delete mode 100644 core/analytics/index.ts delete mode 100644 core/identity/application/dtos/index.ts rename core/identity/application/ports/{IRaceResultsProvider.ts => RaceResultsProvider.ts} (95%) delete mode 100644 core/identity/application/queries/index.ts rename core/identity/domain/ports/{IMagicLinkNotificationPort.ts => MagicLinkNotificationPort.ts} (91%) rename core/identity/domain/repositories/{IAchievementRepository.ts => AchievementRepository.ts} (97%) rename core/identity/domain/repositories/{IAdminVoteSessionRepository.ts => AdminVoteSessionRepository.ts} (95%) rename core/identity/domain/repositories/{IAuthRepository.ts => AuthRepository.ts} (91%) rename core/identity/domain/repositories/{ICompanyRepository.ts => CompanyRepository.ts} (94%) rename core/identity/domain/repositories/{IExternalGameRatingRepository.test.ts => ExternalGameRatingRepository.test.ts} (96%) rename core/identity/domain/repositories/{IExternalGameRatingRepository.ts => ExternalGameRatingRepository.ts} (97%) rename core/identity/domain/repositories/{IMagicLinkRepository.ts => MagicLinkRepository.ts} (88%) rename core/identity/domain/repositories/{IRatingEventRepository.test.ts => RatingEventRepository.test.ts} (98%) rename core/identity/domain/repositories/{IRatingEventRepository.ts => RatingEventRepository.ts} (97%) rename core/identity/domain/repositories/{ISponsorAccountRepository.ts => SponsorAccountRepository.ts} (92%) rename core/identity/domain/repositories/{IUserRatingRepository.test.ts => UserRatingRepository.test.ts} (95%) rename core/identity/domain/repositories/{IUserRatingRepository.ts => UserRatingRepository.ts} (91%) rename core/identity/domain/repositories/{IUserRepository.ts => UserRepository.ts} (96%) delete mode 100644 core/identity/index.ts delete mode 100644 core/league/application/index.ts rename core/league/application/ports/{ILeagueStandingsRepository.ts => LeagueStandingsRepository.ts} (83%) rename core/media/domain/repositories/{IAvatarGenerationRepository.ts => AvatarGenerationRepository.ts} (94%) rename core/media/domain/repositories/{IAvatarRepository.ts => AvatarRepository.ts} (94%) rename core/media/domain/repositories/{IMediaRepository.ts => MediaRepository.ts} (93%) delete mode 100644 core/notifications/application/index.ts rename core/notifications/domain/repositories/{INotificationPreferenceRepository.ts => NotificationPreferenceRepository.ts} (93%) rename core/notifications/domain/repositories/{INotificationRepository.ts => NotificationRepository.ts} (97%) delete mode 100644 core/payments/application/index.ts delete mode 100644 core/payments/application/use-cases/index.ts delete mode 100644 core/payments/domain/entities/index.ts delete mode 100644 core/payments/domain/index.ts rename core/payments/domain/repositories/{IMembershipFeeRepository.ts => MembershipFeeRepository.ts} (90%) rename core/payments/domain/repositories/{IPaymentRepository.ts => PaymentRepository.ts} (93%) rename core/payments/domain/repositories/{IPrizeRepository.ts => PrizeRepository.ts} (93%) rename core/payments/domain/repositories/{IWalletRepository.ts => WalletRepository.ts} (85%) delete mode 100644 core/payments/domain/repositories/index.ts delete mode 100644 core/payments/index.ts delete mode 100644 core/racing/application/index.ts rename core/racing/application/ports/{IImageServicePort.ts => ImageServicePort.ts} (82%) rename core/racing/application/ports/{ITeamRaceResultsProvider.ts => TeamRaceResultsProvider.ts} (91%) delete mode 100644 core/racing/application/queries/index.ts delete mode 100644 core/racing/application/use-cases/IDriverStatsUseCase.ts delete mode 100644 core/racing/application/use-cases/IRankingUseCase.ts delete mode 100644 core/racing/application/use-cases/ITeamRankingUseCase.ts delete mode 100644 core/racing/domain/entities/season/index.test.ts delete mode 100644 core/racing/domain/entities/season/index.ts rename core/racing/domain/repositories/{ICarRepository.ts => CarRepository.ts} (97%) rename core/racing/domain/repositories/{IChampionshipStandingRepository.ts => ChampionshipStandingRepository.ts} (84%) rename core/racing/domain/repositories/{IDriverRepository.ts => DriverRepository.ts} (96%) rename core/racing/domain/repositories/{IDriverStatsRepository.ts => DriverStatsRepository.ts} (66%) rename core/racing/domain/repositories/{IGameRepository.ts => GameRepository.ts} (77%) rename core/racing/domain/repositories/{ILeagueMembershipRepository.ts => LeagueMembershipRepository.ts} (96%) rename core/racing/domain/repositories/{ILeagueRepository.ts => LeagueRepository.ts} (96%) rename core/racing/domain/repositories/{ILeagueScoringConfigRepository.ts => LeagueScoringConfigRepository.ts} (81%) rename core/racing/domain/repositories/{ILeagueWalletRepository.ts => LeagueWalletRepository.ts} (92%) rename core/racing/domain/repositories/{ILiveryRepository.ts => LiveryRepository.ts} (97%) rename core/racing/domain/repositories/{IMediaRepository.ts => MediaRepository.ts} (94%) rename core/racing/domain/repositories/{IPenaltyRepository.ts => PenaltyRepository.ts} (96%) rename core/racing/domain/repositories/{IPrizeRepository.ts => PrizeRepository.ts} (95%) rename core/racing/domain/repositories/{IProtestRepository.ts => ProtestRepository.ts} (96%) rename core/racing/domain/repositories/{IRaceEventRepository.ts => RaceEventRepository.ts} (93%) rename core/racing/domain/repositories/{IRaceRegistrationRepository.ts => RaceRegistrationRepository.ts} (96%) rename core/racing/domain/repositories/{IRaceRepository.ts => RaceRepository.ts} (97%) rename core/racing/domain/repositories/{IResultRepository.ts => ResultRepository.ts} (97%) rename core/racing/domain/repositories/{ISeasonRepository.ts => SeasonRepository.ts} (95%) rename core/racing/domain/repositories/{ISeasonSponsorshipRepository.ts => SeasonSponsorshipRepository.ts} (95%) rename core/racing/domain/repositories/{ISessionRepository.ts => SessionRepository.ts} (92%) rename core/racing/domain/repositories/{ISponsorRepository.ts => SponsorRepository.ts} (92%) rename core/racing/domain/repositories/{ISponsorshipPricingRepository.ts => SponsorshipPricingRepository.ts} (96%) rename core/racing/domain/repositories/{ISponsorshipRequestRepository.ts => SponsorshipRequestRepository.ts} (97%) rename core/racing/domain/repositories/{IStandingRepository.ts => StandingRepository.ts} (96%) rename core/racing/domain/repositories/{ITeamMembershipRepository.ts => TeamMembershipRepository.ts} (96%) rename core/racing/domain/repositories/{ITeamRatingEventRepository.ts => TeamRatingEventRepository.ts} (97%) rename core/racing/domain/repositories/{ITeamRatingRepository.ts => TeamRatingRepository.ts} (92%) rename core/racing/domain/repositories/{ITeamRepository.ts => TeamRepository.ts} (95%) rename core/racing/domain/repositories/{ITeamStatsRepository.ts => TeamStatsRepository.ts} (95%) rename core/racing/domain/repositories/{ITrackRepository.ts => TrackRepository.ts} (96%) rename core/racing/domain/repositories/{ITransactionRepository.ts => TransactionRepository.ts} (93%) rename core/racing/domain/value-objects/{IRacingId.test.ts => RacingId.test.ts} (95%) rename core/racing/domain/value-objects/{IRacingId.ts => RacingId.ts} (82%) delete mode 100644 core/racing/index.ts delete mode 100644 core/shared/application/index.ts rename core/shared/{application => domain}/Logger.ts (100%) rename core/shared/{application => domain}/Result.ts (99%) delete mode 100644 core/shared/domain/index.ts delete mode 100644 core/shared/errors/index.ts delete mode 100644 core/shared/index.ts rename core/social/domain/repositories/{IFeedRepository.ts => FeedRepository.ts} (60%) rename core/social/domain/repositories/{ISocialGraphRepository.ts => SocialGraphRepository.ts} (63%) diff --git a/adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaError.ts b/adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaAdapterError.ts similarity index 83% rename from adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaError.ts rename to adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaAdapterError.ts index aac838001..77281162b 100644 --- a/adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaError.ts +++ b/adapters/achievement/persistence/typeorm/errors/TypeOrmPersistenceSchemaAdapterError.ts @@ -1,4 +1,4 @@ -export class TypeOrmPersistenceSchemaError extends Error { +export class TypeOrmPersistenceSchemaAdapter extends Error { public readonly entityName: string; public readonly fieldName: string; public readonly reason: string; @@ -12,10 +12,10 @@ export class TypeOrmPersistenceSchemaError extends Error { }) { const errorMessage = params.message || `Schema validation failed for ${params.entityName}.${params.fieldName}: ${params.reason}`; super(errorMessage); - this.name = 'TypeOrmPersistenceSchemaError'; + this.name = 'TypeOrmPersistenceSchemaAdapter'; this.entityName = params.entityName; this.fieldName = params.fieldName; this.reason = params.reason; this.message = errorMessage; } -} \ No newline at end of file +} diff --git a/adapters/achievement/persistence/typeorm/mappers/AchievementOrmMapper.ts b/adapters/achievement/persistence/typeorm/mappers/AchievementOrmMapper.ts index 3649d565e..06974685b 100644 --- a/adapters/achievement/persistence/typeorm/mappers/AchievementOrmMapper.ts +++ b/adapters/achievement/persistence/typeorm/mappers/AchievementOrmMapper.ts @@ -1,9 +1,9 @@ -import { Achievement, AchievementCategory, AchievementRequirement } from '@core/identity/domain/entities/Achievement'; +import { Achievement, AchievementCategory, AchievementRequirement, AchievementProps } from '@core/identity/domain/entities/Achievement'; import { UserAchievement } from '@core/identity/domain/entities/UserAchievement'; import { AchievementOrmEntity } from '../entities/AchievementOrmEntity'; import { UserAchievementOrmEntity } from '../entities/UserAchievementOrmEntity'; -import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError'; +import { TypeOrmPersistenceSchemaAdapter } from '../errors/TypeOrmPersistenceSchemaAdapterError'; import { assertArray, assertBoolean, @@ -51,43 +51,43 @@ export class AchievementOrmMapper { // Validate requirements structure for (let i = 0; i < entity.requirements.length; i++) { - const req = entity.requirements[i]; + const req = entity.requirements[i] as Record; const reqField = `requirements[${i}]`; if (!req || typeof req !== 'object') { - throw new TypeOrmPersistenceSchemaError({ + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName: reqField, reason: 'invalid_requirement_object', }); } - assertNonEmptyString(entityName, `${reqField}.type`, req.type); - assertInteger(entityName, `${reqField}.value`, req.value); - assertEnumValue(entityName, `${reqField}.operator`, req.operator, VALID_OPERATORS); + assertNonEmptyString(entityName, `${reqField}.type`, req.type as string); + assertInteger(entityName, `${reqField}.value`, req.value as number); + assertEnumValue(entityName, `${reqField}.operator`, req.operator as string, VALID_OPERATORS); } try { - const createProps: any = { + const createProps: Record = { id: entity.id, name: entity.name, description: entity.description, category: entity.category as AchievementCategory, - rarity: entity.rarity as any, + rarity: entity.rarity as Achievement['rarity'], points: entity.points, requirements: entity.requirements as AchievementRequirement[], isSecret: entity.isSecret, createdAt: entity.createdAt, }; - + if (entity.iconUrl !== null) { createProps.iconUrl = entity.iconUrl; } - return Achievement.create(createProps); + return Achievement.create(createProps as unknown as AchievementProps); } catch (error) { const message = error instanceof Error ? error.message : 'Invalid persisted Achievement'; - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName: 'unknown', reason: 'invalid_shape', message }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName: 'unknown', reason: 'invalid_shape', message }); } } @@ -124,7 +124,7 @@ export class AchievementOrmMapper { }); } catch (error) { const message = error instanceof Error ? error.message : 'Invalid persisted UserAchievement'; - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName: 'unknown', reason: 'invalid_shape', message }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName: 'unknown', reason: 'invalid_shape', message }); } } -} \ No newline at end of file +} diff --git a/adapters/achievement/persistence/typeorm/repositories/TypeOrmAchievementRepository.ts b/adapters/achievement/persistence/typeorm/repositories/TypeOrmAchievementRepository.ts index a46ff51ca..53855c6ad 100644 --- a/adapters/achievement/persistence/typeorm/repositories/TypeOrmAchievementRepository.ts +++ b/adapters/achievement/persistence/typeorm/repositories/TypeOrmAchievementRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { IAchievementRepository } from '@core/identity/domain/repositories/IAchievementRepository'; +import type { AchievementRepository } from '@core/identity/domain/repositories/AchievementRepository'; import type { AchievementCategory } from '@core/identity/domain/entities/Achievement'; import { Achievement } from '@core/identity/domain/entities/Achievement'; import { UserAchievement } from '@core/identity/domain/entities/UserAchievement'; @@ -9,7 +9,7 @@ import { AchievementOrmEntity } from '../entities/AchievementOrmEntity'; import { UserAchievementOrmEntity } from '../entities/UserAchievementOrmEntity'; import { AchievementOrmMapper } from '../mappers/AchievementOrmMapper'; -export class TypeOrmAchievementRepository implements IAchievementRepository { +export class TypeOrmAchievementRepository implements AchievementRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: AchievementOrmMapper, diff --git a/adapters/achievement/persistence/typeorm/schema/AchievementSchemaGuard.ts b/adapters/achievement/persistence/typeorm/schema/AchievementSchemaGuard.ts index 22df12c34..ecd32e0fe 100644 --- a/adapters/achievement/persistence/typeorm/schema/AchievementSchemaGuard.ts +++ b/adapters/achievement/persistence/typeorm/schema/AchievementSchemaGuard.ts @@ -1,21 +1,21 @@ -import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError'; +import { TypeOrmPersistenceSchemaAdapter } from '../errors/TypeOrmPersistenceSchemaAdapterError'; export function assertNonEmptyString(entityName: string, fieldName: string, value: unknown): asserts value is string { if (typeof value !== 'string') { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_string' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_string' }); } if (value.trim().length === 0) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'empty_string' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'empty_string' }); } } export function assertDate(entityName: string, fieldName: string, value: unknown): asserts value is Date { if (!(value instanceof Date)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_date' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_date' }); } if (Number.isNaN(value.getTime())) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'invalid_date' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'invalid_date' }); } } @@ -26,35 +26,35 @@ export function assertEnumValue( allowed: readonly TAllowed[], ): asserts value is TAllowed { if (typeof value !== 'string') { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_string' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_string' }); } if (!allowed.includes(value as TAllowed)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'invalid_enum_value' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'invalid_enum_value' }); } } export function assertArray(entityName: string, fieldName: string, value: unknown): asserts value is unknown[] { if (!Array.isArray(value)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_array' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_array' }); } } export function assertNumber(entityName: string, fieldName: string, value: unknown): asserts value is number { if (typeof value !== 'number' || Number.isNaN(value)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_number' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_number' }); } } export function assertInteger(entityName: string, fieldName: string, value: unknown): asserts value is number { if (typeof value !== 'number' || !Number.isInteger(value)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_integer' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_integer' }); } } export function assertBoolean(entityName: string, fieldName: string, value: unknown): asserts value is boolean { if (typeof value !== 'boolean') { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_boolean' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_boolean' }); } } @@ -68,12 +68,12 @@ export function assertOptionalStringOrNull( } if (typeof value !== 'string') { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_string' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_string' }); } } export function assertRecord(entityName: string, fieldName: string, value: unknown): asserts value is Record { if (typeof value !== 'object' || value === null || Array.isArray(value)) { - throw new TypeOrmPersistenceSchemaError({ entityName, fieldName, reason: 'not_object' }); + throw new TypeOrmPersistenceSchemaAdapter({ entityName, fieldName, reason: 'not_object' }); } -} \ No newline at end of file +} diff --git a/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.test.ts b/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.test.ts index da8440d84..4958fcbee 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.test.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; -import { AnalyticsSnapshot } from '@core/analytics'; +import type { Logger } from '@core/shared/domain'; +import { AnalyticsSnapshot } from '@core/analytics/application/repositories/PageViewRepository'; import { InMemoryAnalyticsSnapshotRepository } from './InMemoryAnalyticsSnapshotRepository'; describe('InMemoryAnalyticsSnapshotRepository', () => { diff --git a/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.ts b/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.ts index aaf9f492e..7adca74a1 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryAnalyticsSnapshotRepository.ts @@ -4,10 +4,10 @@ * In-memory implementation of IAnalyticsSnapshotRepository for development/testing. */ -import { AnalyticsSnapshot, IAnalyticsSnapshotRepository, SnapshotEntityType, SnapshotPeriod } from '@core/analytics'; -import { Logger } from '@core/shared/application'; +import { AnalyticsSnapshot, IAnalyticsSnapshotRepository, SnapshotEntityType, SnapshotPeriod } from '@core/analytics/application/repositories/PageViewRepository'; +import { Logger } from '@core/shared/domain/Logger'; -export class InMemoryAnalyticsSnapshotRepository implements IAnalyticsSnapshotRepository { +export class InMemoryAnalyticsSnapshotRepository implements AnalyticsSnapshotRepository { private snapshots: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.test.ts b/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.test.ts index a9fd9c041..99407ac27 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.test.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; -import { EngagementEvent } from '@core/analytics'; +import type { Logger } from '@core/shared/domain'; +import { EngagementEvent } from '@core/analytics/application/repositories/PageViewRepository'; import { InMemoryEngagementRepository } from './InMemoryEngagementRepository'; describe('InMemoryEngagementRepository', () => { diff --git a/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.ts b/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.ts index 1e5a67293..9b0a23148 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryEngagementRepository.ts @@ -4,12 +4,12 @@ * In-memory implementation of IEngagementRepository for development/testing. */ -import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository'; +import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; import { EngagementEvent, type EngagementAction, type EngagementEntityType } from '@core/analytics/domain/entities/EngagementEvent'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain/Logger'; -export class InMemoryEngagementRepository implements IEngagementRepository { +export class InMemoryEngagementRepository implements EngagementRepository { private events: Map = new Map(); private logger: Logger; diff --git a/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.test.ts b/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.test.ts index aa643c276..0dd0aa0ea 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.test.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; -import { PageView } from '@core/analytics'; +import type { Logger } from '@core/shared/domain'; +import { PageView } from '@core/analytics/application/repositories/PageViewRepository'; import { InMemoryPageViewRepository } from './InMemoryPageViewRepository'; describe('InMemoryPageViewRepository', () => { diff --git a/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.ts b/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.ts index bc2d16c11..eb5957323 100644 --- a/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.ts +++ b/adapters/analytics/persistence/inmemory/InMemoryPageViewRepository.ts @@ -4,11 +4,11 @@ * In-memory implementation of IPageViewRepository for development/testing. */ -import type { IPageViewRepository } from '@core/analytics/application/repositories/IPageViewRepository'; +import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository'; import { PageView, type EntityType } from '@core/analytics/domain/entities/PageView'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryPageViewRepository implements IPageViewRepository { +export class InMemoryPageViewRepository implements PageViewRepository { private pageViews: Map = new Map(); private logger: Logger; diff --git a/adapters/analytics/persistence/typeorm/repositories/TypeOrmAnalyticsSnapshotRepository.ts b/adapters/analytics/persistence/typeorm/repositories/TypeOrmAnalyticsSnapshotRepository.ts index 3db83acc2..94e4bda59 100644 --- a/adapters/analytics/persistence/typeorm/repositories/TypeOrmAnalyticsSnapshotRepository.ts +++ b/adapters/analytics/persistence/typeorm/repositories/TypeOrmAnalyticsSnapshotRepository.ts @@ -1,13 +1,13 @@ import { type Repository } from 'typeorm'; -import type { IAnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/IAnalyticsSnapshotRepository'; +import type { AnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository'; import type { SnapshotEntityType, SnapshotPeriod } from '@core/analytics/domain/types/AnalyticsSnapshot'; import { AnalyticsSnapshot } from '@core/analytics/domain/entities/AnalyticsSnapshot'; import { AnalyticsSnapshotOrmEntity } from '../entities/AnalyticsSnapshotOrmEntity'; import { AnalyticsSnapshotOrmMapper } from '../mappers/AnalyticsSnapshotOrmMapper'; -export class TypeOrmAnalyticsSnapshotRepository implements IAnalyticsSnapshotRepository { +export class TypeOrmAnalyticsSnapshotRepository implements AnalyticsSnapshotRepository { constructor( private readonly snapshotRepo: Repository, private readonly mapper: AnalyticsSnapshotOrmMapper, diff --git a/adapters/analytics/persistence/typeorm/repositories/TypeOrmEngagementRepository.ts b/adapters/analytics/persistence/typeorm/repositories/TypeOrmEngagementRepository.ts index 4960ba2b7..d39592c73 100644 --- a/adapters/analytics/persistence/typeorm/repositories/TypeOrmEngagementRepository.ts +++ b/adapters/analytics/persistence/typeorm/repositories/TypeOrmEngagementRepository.ts @@ -1,13 +1,13 @@ import { Between, MoreThanOrEqual, type FindOptionsWhere, type Repository } from 'typeorm'; -import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository'; +import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; import type { EngagementAction, EngagementEntityType } from '@core/analytics/domain/types/EngagementEvent'; import { EngagementEvent } from '@core/analytics/domain/entities/EngagementEvent'; import { EngagementEventOrmEntity } from '../entities/EngagementEventOrmEntity'; import { EngagementEventOrmMapper } from '../mappers/EngagementEventOrmMapper'; -export class TypeOrmEngagementRepository implements IEngagementRepository { +export class TypeOrmEngagementRepository implements EngagementRepository { constructor( private readonly engagementRepo: Repository, private readonly mapper: EngagementEventOrmMapper, diff --git a/adapters/analytics/persistence/typeorm/repositories/TypeOrmPageViewRepository.ts b/adapters/analytics/persistence/typeorm/repositories/TypeOrmPageViewRepository.ts index fe7704e2a..9805fc501 100644 --- a/adapters/analytics/persistence/typeorm/repositories/TypeOrmPageViewRepository.ts +++ b/adapters/analytics/persistence/typeorm/repositories/TypeOrmPageViewRepository.ts @@ -1,6 +1,6 @@ import { Between, MoreThanOrEqual, type Repository } from 'typeorm'; -import type { IPageViewRepository } from '@core/analytics/application/repositories/IPageViewRepository'; +import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository'; import type { EntityType } from '@core/analytics/domain/types/PageView'; import { PageView } from '@core/analytics/domain/entities/PageView'; @@ -9,7 +9,7 @@ import { PageViewOrmMapper } from '../mappers/PageViewOrmMapper'; type CountRow = { count: string | number } | null | undefined; -export class TypeOrmPageViewRepository implements IPageViewRepository { +export class TypeOrmPageViewRepository implements PageViewRepository { constructor( private readonly pageViewRepo: Repository, private readonly mapper: PageViewOrmMapper, diff --git a/adapters/bootstrap/EnsureInitialData.ts b/adapters/bootstrap/EnsureInitialData.ts index 21c2f1931..d73e76d41 100644 --- a/adapters/bootstrap/EnsureInitialData.ts +++ b/adapters/bootstrap/EnsureInitialData.ts @@ -1,7 +1,7 @@ import { SignupWithEmailUseCase } from '@core/identity/application/use-cases/SignupWithEmailUseCase'; import { CreateAchievementUseCase } from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { DRIVER_ACHIEVEMENTS, diff --git a/adapters/bootstrap/ScoringDemoSetup.ts b/adapters/bootstrap/ScoringDemoSetup.ts index 050ee5462..cc3904ef4 100644 --- a/adapters/bootstrap/ScoringDemoSetup.ts +++ b/adapters/bootstrap/ScoringDemoSetup.ts @@ -7,7 +7,7 @@ import { InMemoryLeagueScoringConfigRepository, InMemorySeasonRepository, } from '../racing/persistence/inmemory/InMemoryScoringRepositories'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { getLeagueScoringPresetById } from './LeagueScoringPresets'; /* eslint-disable @typescript-eslint/no-unused-vars */ diff --git a/adapters/bootstrap/SeedDemoUsers.test.ts b/adapters/bootstrap/SeedDemoUsers.test.ts index 1141075a9..7e3f0a5d0 100644 --- a/adapters/bootstrap/SeedDemoUsers.test.ts +++ b/adapters/bootstrap/SeedDemoUsers.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; -import type { Logger } from '@core/shared/application'; -import type { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository'; -import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -import type { IAdminUserRepository } from '@core/admin/domain/repositories/IAdminUserRepository'; +import type { Logger } from '@core/shared/domain'; +import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; +import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository'; import { User } from '@core/identity/domain/entities/User'; import { AdminUser } from '@core/admin/domain/entities/AdminUser'; import { EmailAddress } from '@core/identity/domain/value-objects/EmailAddress'; diff --git a/adapters/bootstrap/SeedDemoUsers.ts b/adapters/bootstrap/SeedDemoUsers.ts index ec1bbc89b..2480496b2 100644 --- a/adapters/bootstrap/SeedDemoUsers.ts +++ b/adapters/bootstrap/SeedDemoUsers.ts @@ -1,7 +1,7 @@ -import type { Logger } from '@core/shared/application'; -import type { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository'; -import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -import type { IAdminUserRepository } from '@core/admin/domain/repositories/IAdminUserRepository'; +import type { Logger } from '@core/shared/domain'; +import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; +import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository'; import { User } from '@core/identity/domain/entities/User'; import { AdminUser } from '@core/admin/domain/entities/AdminUser'; import { EmailAddress } from '@core/identity/domain/value-objects/EmailAddress'; diff --git a/adapters/bootstrap/SeedRacingData.forceReseed.test.ts b/adapters/bootstrap/SeedRacingData.forceReseed.test.ts index 27ceb970c..e857d57c2 100644 --- a/adapters/bootstrap/SeedRacingData.forceReseed.test.ts +++ b/adapters/bootstrap/SeedRacingData.forceReseed.test.ts @@ -34,7 +34,7 @@ vi.mock('./racing/RacingSeed', () => { }; }); -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { SeedRacingData, type RacingSeedDependencies } from './SeedRacingData'; describe('SeedRacingData force reseed behavior', () => { diff --git a/adapters/bootstrap/SeedRacingData.ts b/adapters/bootstrap/SeedRacingData.ts index 7dfd83f82..5510639f3 100644 --- a/adapters/bootstrap/SeedRacingData.ts +++ b/adapters/bootstrap/SeedRacingData.ts @@ -1,39 +1,39 @@ -import type { Logger } from '@core/shared/application'; -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 { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository'; -import type { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository'; -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository'; -import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository'; -import type { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository'; -import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository'; -import type { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository'; +import type { Logger } from '@core/shared/domain'; +import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; +import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository'; +import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; +import type { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository'; +import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; +import type { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; +import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository'; +import type { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository'; import type { Season } from '@core/racing/domain/entities/season/Season'; import { getLeagueScoringPresetById } from './LeagueScoringPresets'; -import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository'; -import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository'; -import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; -import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository'; -import type { ITeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository'; -import type { IMediaRepository } from '@core/racing/domain/repositories/IMediaRepository'; -import type { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository'; -import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -import type { IAdminUserRepository } from '@core/admin/domain/repositories/IAdminUserRepository'; +import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; +import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; +import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository'; +import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository'; +import type { MediaRepository } from '@core/racing/domain/repositories/MediaRepository'; +import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; +import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository'; import { createRacingSeed } from './racing/RacingSeed'; import { seedId } from './racing/SeedIdHelper'; import { Driver } from '@core/racing/domain/entities/Driver'; import { Result } from '@core/racing/domain/entities/result/Result'; import { Standing } from '@core/racing/domain/entities/Standing'; import { Team } from '@core/racing/domain/entities/Team'; -import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase'; +import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase'; export type RacingSeedDependencies = { driverRepository: IDriverRepository; diff --git a/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.test.ts b/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.test.ts index 095d592be..2b7a1fc9d 100644 --- a/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.test.ts +++ b/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import type { UserAchievement } from '@core/identity'; import { InMemoryAchievementRepository } from './InMemoryAchievementRepository'; diff --git a/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.ts b/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.ts index f388823d6..1852e7238 100644 --- a/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryAchievementRepository.ts @@ -6,11 +6,11 @@ import { Achievement, AchievementCategory, IAchievementRepository, UserAchievement } from "@core/identity"; import { ADMIN_ACHIEVEMENTS, COMMUNITY_ACHIEVEMENTS, DRIVER_ACHIEVEMENTS, STEWARD_ACHIEVEMENTS } from "@core/identity/domain/AchievementConstants"; -import { Logger } from "@core/shared/application"; +import { Logger } from "@core/shared/domain"; -export class InMemoryAchievementRepository implements IAchievementRepository { +export class InMemoryAchievementRepository implements AchievementRepository { private achievements: Map = new Map(); private userAchievements: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/identity/persistence/inmemory/InMemoryAuthRepository.test.ts b/adapters/identity/persistence/inmemory/InMemoryAuthRepository.test.ts index 34d60124a..e760a8789 100644 --- a/adapters/identity/persistence/inmemory/InMemoryAuthRepository.test.ts +++ b/adapters/identity/persistence/inmemory/InMemoryAuthRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { UserId } from '@core/identity'; import { User } from '@core/identity/domain/entities/User'; import { InMemoryUserRepository } from './InMemoryUserRepository'; diff --git a/adapters/identity/persistence/inmemory/InMemoryAuthRepository.ts b/adapters/identity/persistence/inmemory/InMemoryAuthRepository.ts index fd791e5df..68eae262f 100644 --- a/adapters/identity/persistence/inmemory/InMemoryAuthRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryAuthRepository.ts @@ -1,12 +1,12 @@ import { User } from '@core/identity/domain/entities/User'; -import { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository'; -import { IUserRepository, StoredUser } from '@core/identity/domain/repositories/IUserRepository'; -import { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; +import { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; +import { UserRepository, StoredUser } from '@core/identity/domain/repositories/UserRepository'; +import { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; import { EmailAddress } from '@core/identity/domain/value-objects/EmailAddress'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryAuthRepository implements IAuthRepository { +export class InMemoryAuthRepository implements AuthRepository { constructor( private readonly userRepository: IUserRepository, private readonly passwordHashingService: IPasswordHashingService, diff --git a/adapters/identity/persistence/inmemory/InMemoryCompanyRepository.ts b/adapters/identity/persistence/inmemory/InMemoryCompanyRepository.ts index 2f9289e92..9642d8a52 100644 --- a/adapters/identity/persistence/inmemory/InMemoryCompanyRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryCompanyRepository.ts @@ -1,10 +1,10 @@ import { Company } from '@core/identity/domain/entities/Company'; -import { ICompanyRepository } from '@core/identity/domain/repositories/ICompanyRepository'; +import { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository'; /** * In-memory implementation of ICompanyRepository for testing */ -export class InMemoryCompanyRepository implements ICompanyRepository { +export class InMemoryCompanyRepository implements CompanyRepository { private companies: Map = new Map(); create(company: Pick): Company { diff --git a/adapters/identity/persistence/inmemory/InMemoryExternalGameRatingRepository.ts b/adapters/identity/persistence/inmemory/InMemoryExternalGameRatingRepository.ts index 6fb6526b1..512b5d213 100644 --- a/adapters/identity/persistence/inmemory/InMemoryExternalGameRatingRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryExternalGameRatingRepository.ts @@ -1,4 +1,4 @@ -import { IExternalGameRatingRepository, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/IExternalGameRatingRepository'; +import { ExternalGameRatingRepository, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/ExternalGameRatingRepository'; import { ExternalGameRatingProfile } from '@core/identity/domain/entities/ExternalGameRatingProfile'; /** @@ -6,7 +6,7 @@ import { ExternalGameRatingProfile } from '@core/identity/domain/entities/Extern * * For testing and development purposes. */ -export class InMemoryExternalGameRatingRepository implements IExternalGameRatingRepository { +export class InMemoryExternalGameRatingRepository implements ExternalGameRatingRepository { private profiles: Map = new Map(); private getKey(userId: string, gameKey: string): string { diff --git a/adapters/identity/persistence/inmemory/InMemoryMagicLinkRepository.ts b/adapters/identity/persistence/inmemory/InMemoryMagicLinkRepository.ts index e48a44654..b2840a384 100644 --- a/adapters/identity/persistence/inmemory/InMemoryMagicLinkRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryMagicLinkRepository.ts @@ -1,8 +1,8 @@ -import { IMagicLinkRepository, PasswordResetRequest } from '@core/identity/domain/repositories/IMagicLinkRepository'; -import { Result } from '@core/shared/application/Result'; -import { Logger } from '@core/shared/application'; +import { MagicLinkRepository, PasswordResetRequest } from '@core/identity/domain/repositories/MagicLinkRepository'; +import { Result } from '@core/shared/domain/Result'; +import { Logger } from '@core/shared/domain'; -export class InMemoryMagicLinkRepository implements IMagicLinkRepository { +export class InMemoryMagicLinkRepository implements MagicLinkRepository { private resetRequests: Map = new Map(); private rateLimitStore: Map = new Map(); diff --git a/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.test.ts b/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.test.ts index 2c639c0fb..6a7431f3d 100644 --- a/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.test.ts +++ b/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { UserId, type SponsorAccount } from '@core/identity'; import { InMemorySponsorAccountRepository } from './InMemorySponsorAccountRepository'; diff --git a/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.ts b/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.ts index d4ab01444..0c5207eec 100644 --- a/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemorySponsorAccountRepository.ts @@ -4,10 +4,10 @@ * In-memory implementation of ISponsorAccountRepository for development/testing. */ -import { ISponsorAccountRepository, SponsorAccount, UserId } from '@core/identity'; -import { Logger } from '@core/shared/application'; +import { SponsorAccountRepository, SponsorAccount, UserId } from '@core/identity'; +import { Logger } from '@core/shared/domain'; -export class InMemorySponsorAccountRepository implements ISponsorAccountRepository { +export class InMemorySponsorAccountRepository implements SponsorAccountRepository { private accounts: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.test.ts b/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.test.ts index eca75b227..e5eb3813a 100644 --- a/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.test.ts +++ b/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import type { UserRating } from '@core/identity'; import { InMemoryUserRatingRepository } from './InMemoryUserRatingRepository'; diff --git a/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.ts b/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.ts index 743be112c..05ed20221 100644 --- a/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryUserRatingRepository.ts @@ -4,10 +4,10 @@ * In-memory implementation of IUserRatingRepository */ -import { IUserRatingRepository, UserRating } from '@core/identity'; -import { Logger } from '@core/shared/application'; +import { UserRatingRepository, UserRating } from '@core/identity'; +import { Logger } from '@core/shared/domain'; -export class InMemoryUserRatingRepository implements IUserRatingRepository { +export class InMemoryUserRatingRepository implements UserRatingRepository { private ratings: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/identity/persistence/inmemory/InMemoryUserRepository.test.ts b/adapters/identity/persistence/inmemory/InMemoryUserRepository.test.ts index eeeab7b72..80e4cc69b 100644 --- a/adapters/identity/persistence/inmemory/InMemoryUserRepository.test.ts +++ b/adapters/identity/persistence/inmemory/InMemoryUserRepository.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; -import type { StoredUser } from '@core/identity/domain/repositories/IUserRepository'; +import type { Logger } from '@core/shared/domain'; +import type { StoredUser } from '@core/identity/domain/repositories/UserRepository'; import { InMemoryUserRepository } from './InMemoryUserRepository'; describe('InMemoryUserRepository', () => { diff --git a/adapters/identity/persistence/inmemory/InMemoryUserRepository.ts b/adapters/identity/persistence/inmemory/InMemoryUserRepository.ts index d57f10ba7..7e5261950 100644 --- a/adapters/identity/persistence/inmemory/InMemoryUserRepository.ts +++ b/adapters/identity/persistence/inmemory/InMemoryUserRepository.ts @@ -4,10 +4,10 @@ * Stores users in memory for demo/development purposes. */ -import { Logger } from '@core/shared/application'; -import type { IUserRepository, StoredUser } from '@core/identity/domain/repositories/IUserRepository'; +import { Logger } from '@core/shared/domain'; +import type { UserRepository, StoredUser } from '@core/identity/domain/repositories/UserRepository'; -export class InMemoryUserRepository implements IUserRepository { +export class InMemoryUserRepository implements UserRepository { private users: Map = new Map(); private emailIndex: Map = new Map(); // email -> userId private readonly logger: Logger; diff --git a/adapters/identity/persistence/typeorm/mappers/UserOrmMapper.ts b/adapters/identity/persistence/typeorm/mappers/UserOrmMapper.ts index c4460b27c..d83c2b60a 100644 --- a/adapters/identity/persistence/typeorm/mappers/UserOrmMapper.ts +++ b/adapters/identity/persistence/typeorm/mappers/UserOrmMapper.ts @@ -1,5 +1,5 @@ import { User } from '@core/identity/domain/entities/User'; -import type { StoredUser } from '@core/identity/domain/repositories/IUserRepository'; +import type { StoredUser } from '@core/identity/domain/repositories/UserRepository'; import { PasswordHash } from '@core/identity/domain/value-objects/PasswordHash'; import { UserOrmEntity } from '../entities/UserOrmEntity'; diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmAuthRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmAuthRepository.ts index 4faede698..00c07160c 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmAuthRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmAuthRepository.ts @@ -1,13 +1,13 @@ import type { DataSource } from 'typeorm'; import { User } from '@core/identity/domain/entities/User'; -import type { IAuthRepository } from '@core/identity/domain/repositories/IAuthRepository'; +import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepository'; import type { EmailAddress } from '@core/identity/domain/value-objects/EmailAddress'; import { UserOrmEntity } from '../entities/UserOrmEntity'; import { UserOrmMapper } from '../mappers/UserOrmMapper'; -export class TypeOrmAuthRepository implements IAuthRepository { +export class TypeOrmAuthRepository implements AuthRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: UserOrmMapper, diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmCompanyRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmCompanyRepository.ts index 5ac4e3c98..51f19663d 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmCompanyRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmCompanyRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; import { Company } from '@core/identity/domain/entities/Company'; -import type { ICompanyRepository } from '@core/identity/domain/repositories/ICompanyRepository'; +import type { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository'; import { CompanyOrmEntity } from '../entities/CompanyOrmEntity'; import { CompanyOrmMapper } from '../mappers/CompanyOrmMapper'; -export class TypeOrmCompanyRepository implements ICompanyRepository { +export class TypeOrmCompanyRepository implements CompanyRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: CompanyOrmMapper, diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmExternalGameRatingRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmExternalGameRatingRepository.ts index cf721b473..424f8e6ea 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmExternalGameRatingRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmExternalGameRatingRepository.ts @@ -1,5 +1,5 @@ import { Repository } from 'typeorm'; -import { IExternalGameRatingRepository, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/IExternalGameRatingRepository'; +import { ExternalGameRatingRepository, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/ExternalGameRatingRepository'; import { ExternalGameRatingProfile } from '@core/identity/domain/entities/ExternalGameRatingProfile'; import { ExternalGameRatingProfileOrmEntity } from '../entities/ExternalGameRatingProfileOrmEntity'; import { ExternalGameRatingProfileOrmMapper } from '../mappers/ExternalGameRatingProfileOrmMapper'; @@ -10,7 +10,7 @@ import { ExternalGameRatingProfileOrmMapper } from '../mappers/ExternalGameRatin * Repository for external game rating profiles using TypeORM. * Implements store/display operations only, no compute. */ -export class TypeOrmExternalGameRatingRepository implements IExternalGameRatingRepository { +export class TypeOrmExternalGameRatingRepository implements ExternalGameRatingRepository { constructor( private readonly repository: Repository ) {} diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmMagicLinkRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmMagicLinkRepository.ts index cf6e9f3c1..d57409bfc 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmMagicLinkRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmMagicLinkRepository.ts @@ -1,10 +1,10 @@ import type { DataSource } from 'typeorm'; -import { IMagicLinkRepository, PasswordResetRequest } from '@core/identity/domain/repositories/IMagicLinkRepository'; -import { Result } from '@core/shared/application/Result'; -import { Logger } from '@core/shared/application'; +import { MagicLinkRepository, PasswordResetRequest } from '@core/identity/domain/repositories/MagicLinkRepository'; +import { Result } from '@core/shared/domain/Result'; +import { Logger } from '@core/shared/domain'; import { PasswordResetRequestOrmEntity } from '../entities/PasswordResetRequestOrmEntity'; -export class TypeOrmMagicLinkRepository implements IMagicLinkRepository { +export class TypeOrmMagicLinkRepository implements MagicLinkRepository { // Rate limit: max 3 requests per 15 minutes private readonly RATE_LIMIT_MAX = 3; private readonly RATE_LIMIT_WINDOW = 15 * 60 * 1000; // 15 minutes diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmRatingEventRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmRatingEventRepository.ts index 5316d2cf4..47e6efd53 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmRatingEventRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmRatingEventRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { IRatingEventRepository, FindByUserIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/IRatingEventRepository'; +import type { RatingEventRepository, FindByUserIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/identity/domain/repositories/RatingEventRepository'; import type { RatingEvent } from '@core/identity/domain/entities/RatingEvent'; import type { RatingEventId } from '@core/identity/domain/value-objects/RatingEventId'; @@ -13,7 +13,7 @@ import { RatingEventOrmMapper } from '../mappers/RatingEventOrmMapper'; * Persists rating events in the ledger with efficient querying by userId * and ordering for snapshot computation. */ -export class TypeOrmRatingEventRepository implements IRatingEventRepository { +export class TypeOrmRatingEventRepository implements RatingEventRepository { constructor(private readonly dataSource: DataSource) {} async save(event: RatingEvent): Promise { diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRatingRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRatingRepository.ts index 9c0d99bc3..49edb1c26 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRatingRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRatingRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { IUserRatingRepository } from '@core/identity/domain/repositories/IUserRatingRepository'; +import type { UserRatingRepository } from '@core/identity/domain/repositories/UserRatingRepository'; import type { UserRating } from '@core/identity/domain/value-objects/UserRating'; import { UserRatingOrmEntity } from '../entities/UserRatingOrmEntity'; @@ -11,7 +11,7 @@ import { UserRatingOrmMapper } from '../mappers/UserRatingOrmMapper'; * * Persists and retrieves UserRating snapshots for fast reads. */ -export class TypeOrmUserRatingRepository implements IUserRatingRepository { +export class TypeOrmUserRatingRepository implements UserRatingRepository { constructor(private readonly dataSource: DataSource) {} async findByUserId(userId: string): Promise { diff --git a/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRepository.ts b/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRepository.ts index e0d505a82..1375db631 100644 --- a/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRepository.ts +++ b/adapters/identity/persistence/typeorm/repositories/TypeOrmUserRepository.ts @@ -1,11 +1,11 @@ import type { DataSource } from 'typeorm'; -import type { IUserRepository, StoredUser } from '@core/identity/domain/repositories/IUserRepository'; +import type { UserRepository, StoredUser } from '@core/identity/domain/repositories/UserRepository'; import { UserOrmEntity } from '../entities/UserOrmEntity'; import { UserOrmMapper } from '../mappers/UserOrmMapper'; -export class TypeOrmUserRepository implements IUserRepository { +export class TypeOrmUserRepository implements UserRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: UserOrmMapper, diff --git a/adapters/identity/services/InMemoryPasswordHashingService.ts b/adapters/identity/services/InMemoryPasswordHashingService.ts index c1a791d8d..98db8e941 100644 --- a/adapters/identity/services/InMemoryPasswordHashingService.ts +++ b/adapters/identity/services/InMemoryPasswordHashingService.ts @@ -5,9 +5,9 @@ * NOT FOR PRODUCTION USE - uses a simple string reversal as "hashing". */ -import type { IPasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; +import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService'; -export class InMemoryPasswordHashingService implements IPasswordHashingService { +export class InMemoryPasswordHashingService implements PasswordHashingService { async hash(plain: string): Promise { // In a real application, use a robust hashing library like bcrypt or Argon2. // For demo, we'll just reverse the password and add a salt-like prefix. diff --git a/adapters/identity/session/CookieIdentitySessionAdapter.ts b/adapters/identity/session/CookieIdentitySessionAdapter.ts index b3695eb8f..34b981291 100644 --- a/adapters/identity/session/CookieIdentitySessionAdapter.ts +++ b/adapters/identity/session/CookieIdentitySessionAdapter.ts @@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto'; import type { AuthenticatedUser } from '@core/identity/application/ports/IdentityProviderPort'; import type { AuthSession, IdentitySessionPort } from '@core/identity/application/ports/IdentitySessionPort'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { tryGetHttpRequestContext } from '@adapters/http/RequestContext'; const COOKIE_NAME = 'gp_session'; diff --git a/adapters/logging/ConsoleErrorReporter.ts b/adapters/logging/ConsoleErrorReporter.ts index 648ed1d6d..6aee80948 100644 --- a/adapters/logging/ConsoleErrorReporter.ts +++ b/adapters/logging/ConsoleErrorReporter.ts @@ -1,4 +1,4 @@ -import { ErrorReporter } from "@core/shared/application"; +import { ErrorReporter } from "@core/shared/domain"; export class ConsoleErrorReporter implements ErrorReporter { report(error: Error, context?: unknown): void { diff --git a/adapters/logging/ConsoleLogger.ts b/adapters/logging/ConsoleLogger.ts index 7ffc0f984..a5cb8d595 100644 --- a/adapters/logging/ConsoleLogger.ts +++ b/adapters/logging/ConsoleLogger.ts @@ -1,4 +1,4 @@ -import { Logger } from "@core/shared/application"; +import { Logger } from "@core/shared/domain"; export class ConsoleLogger implements Logger { private formatMessage(level: string, message: string, context?: unknown): string { diff --git a/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.test.ts b/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.test.ts index 0ca3ea771..0d691cdb6 100644 --- a/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.test.ts +++ b/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { AvatarGenerationRequest } from '@core/media/domain/entities/AvatarGenerationRequest'; import { InMemoryAvatarGenerationRepository } from './InMemoryAvatarGenerationRepository'; diff --git a/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.ts b/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.ts index cad808451..5a0b774de 100644 --- a/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.ts +++ b/adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository.ts @@ -1,8 +1,8 @@ -import { IAvatarGenerationRepository } from '@core/media/domain/repositories/IAvatarGenerationRepository'; +import { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; import { AvatarGenerationRequest } from '@core/media/domain/entities/AvatarGenerationRequest'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryAvatarGenerationRepository implements IAvatarGenerationRepository { +export class InMemoryAvatarGenerationRepository implements AvatarGenerationRepository { private requests: Map = new Map(); // Key: requestId private userRequests: Map = new Map(); // Key: userId diff --git a/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarGenerationRepository.ts b/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarGenerationRepository.ts index f4341718c..1368dc766 100644 --- a/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarGenerationRepository.ts +++ b/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarGenerationRepository.ts @@ -1,10 +1,10 @@ import type { DataSource } from 'typeorm'; -import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/IAvatarGenerationRepository'; +import type { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository'; import type { AvatarGenerationRequest } from '@core/media/domain/entities/AvatarGenerationRequest'; import { AvatarGenerationRequestOrmEntity } from '../entities/AvatarGenerationRequestOrmEntity'; import { AvatarGenerationRequestOrmMapper } from '../mappers/AvatarGenerationRequestOrmMapper'; -export class TypeOrmAvatarGenerationRepository implements IAvatarGenerationRepository { +export class TypeOrmAvatarGenerationRepository implements AvatarGenerationRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: AvatarGenerationRequestOrmMapper, diff --git a/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarRepository.ts b/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarRepository.ts index e3751cf17..7d1b3fbcd 100644 --- a/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarRepository.ts +++ b/adapters/media/persistence/typeorm/repositories/TypeOrmAvatarRepository.ts @@ -1,10 +1,10 @@ import type { DataSource } from 'typeorm'; -import type { IAvatarRepository } from '@core/media/domain/repositories/IAvatarRepository'; +import type { AvatarRepository } from '@core/media/domain/repositories/AvatarRepository'; import type { Avatar } from '@core/media/domain/entities/Avatar'; import { AvatarOrmEntity } from '../entities/AvatarOrmEntity'; import { AvatarOrmMapper } from '../mappers/AvatarOrmMapper'; -export class TypeOrmAvatarRepository implements IAvatarRepository { +export class TypeOrmAvatarRepository implements AvatarRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: AvatarOrmMapper, diff --git a/adapters/media/persistence/typeorm/repositories/TypeOrmMediaRepository.ts b/adapters/media/persistence/typeorm/repositories/TypeOrmMediaRepository.ts index b3896a1ec..26224018f 100644 --- a/adapters/media/persistence/typeorm/repositories/TypeOrmMediaRepository.ts +++ b/adapters/media/persistence/typeorm/repositories/TypeOrmMediaRepository.ts @@ -1,10 +1,10 @@ import type { DataSource } from 'typeorm'; -import type { IMediaRepository } from '@core/media/domain/repositories/IMediaRepository'; +import type { MediaRepository } from '@core/media/domain/repositories/MediaRepository'; import type { Media } from '@core/media/domain/entities/Media'; import { MediaOrmEntity } from '../entities/MediaOrmEntity'; import { MediaOrmMapper } from '../mappers/MediaOrmMapper'; -export class TypeOrmMediaRepository implements IMediaRepository { +export class TypeOrmMediaRepository implements MediaRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: MediaOrmMapper, diff --git a/adapters/media/ports/InMemoryFaceValidationAdapter.test.ts b/adapters/media/ports/InMemoryFaceValidationAdapter.test.ts index 877634b53..3330e1207 100644 --- a/adapters/media/ports/InMemoryFaceValidationAdapter.test.ts +++ b/adapters/media/ports/InMemoryFaceValidationAdapter.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { InMemoryFaceValidationAdapter } from './InMemoryFaceValidationAdapter'; describe('InMemoryFaceValidationAdapter', () => { diff --git a/adapters/media/ports/InMemoryFaceValidationAdapter.ts b/adapters/media/ports/InMemoryFaceValidationAdapter.ts index 277631fa9..0f73fe014 100644 --- a/adapters/media/ports/InMemoryFaceValidationAdapter.ts +++ b/adapters/media/ports/InMemoryFaceValidationAdapter.ts @@ -1,5 +1,5 @@ import type { FaceValidationPort, FaceValidationResult } from '@core/media/application/ports/FaceValidationPort'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; export class InMemoryFaceValidationAdapter implements FaceValidationPort { constructor(private readonly logger: Logger) { diff --git a/adapters/media/ports/InMemoryImageServiceAdapter.test.ts b/adapters/media/ports/InMemoryImageServiceAdapter.test.ts index b4eb9005a..ad00ad8ac 100644 --- a/adapters/media/ports/InMemoryImageServiceAdapter.test.ts +++ b/adapters/media/ports/InMemoryImageServiceAdapter.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { InMemoryImageServiceAdapter } from './InMemoryImageServiceAdapter'; describe('InMemoryImageServiceAdapter', () => { diff --git a/adapters/media/ports/InMemoryImageServiceAdapter.ts b/adapters/media/ports/InMemoryImageServiceAdapter.ts index d00cba366..d29170d34 100644 --- a/adapters/media/ports/InMemoryImageServiceAdapter.ts +++ b/adapters/media/ports/InMemoryImageServiceAdapter.ts @@ -1,7 +1,7 @@ -import type { IImageServicePort } from '@core/racing/application/ports/IImageServicePort'; -import type { Logger } from '@core/shared/application'; +import type { ImageServicePort } from '@core/racing/application/ports/ImageServicePort'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryImageServiceAdapter implements IImageServicePort { +export class InMemoryImageServiceAdapter implements ImageServicePort { constructor(private readonly logger: Logger) { this.logger.info('InMemoryImageServiceAdapter initialized.'); } diff --git a/adapters/notifications/gateways/NotificationGatewayRegistry.ts b/adapters/notifications/gateways/NotificationGatewayRegistry.ts index c7c68eb52..b3587130d 100644 --- a/adapters/notifications/gateways/NotificationGatewayRegistry.ts +++ b/adapters/notifications/gateways/NotificationGatewayRegistry.ts @@ -12,7 +12,7 @@ import type { NotificationDeliveryResult } from '@core/notifications/application/ports/NotificationGateway'; -export class NotificationGatewayRegistry implements INotificationGatewayRegistry { +export class NotificationGatewayRegistry implements NotificationGatewayRegistry { private gateways: Map = new Map(); constructor(initialGateways: NotificationGateway[] = []) { diff --git a/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.test.ts b/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.test.ts index 0fd709546..5276b5b1f 100644 --- a/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.test.ts +++ b/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { NotificationPreference } from '@core/notifications/domain/entities/NotificationPreference'; import { InMemoryNotificationPreferenceRepository } from './InMemoryNotificationPreferenceRepository'; diff --git a/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.ts b/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.ts index 6f5f738a0..88dc04cef 100644 --- a/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.ts +++ b/adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository.ts @@ -1,8 +1,8 @@ -import { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/INotificationPreferenceRepository'; +import { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; import { NotificationPreference } from '@core/notifications/domain/entities/NotificationPreference'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryNotificationPreferenceRepository implements INotificationPreferenceRepository { +export class InMemoryNotificationPreferenceRepository implements NotificationPreferenceRepository { private preferences: Map = new Map(); constructor(private readonly logger: Logger, initialPreferences: NotificationPreference[] = []) { diff --git a/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.test.ts b/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.test.ts index 24bba78ea..03a8044f1 100644 --- a/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.test.ts +++ b/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { Notification } from '@core/notifications/domain/entities/Notification'; import { InMemoryNotificationRepository } from './InMemoryNotificationRepository'; diff --git a/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.ts b/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.ts index 34ed859ae..5ce7ceea5 100644 --- a/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.ts +++ b/adapters/notifications/persistence/inmemory/InMemoryNotificationRepository.ts @@ -5,11 +5,11 @@ */ import { Notification } from '@core/notifications/domain/entities/Notification'; -import type { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; import type { NotificationType } from '@core/notifications/domain/types/NotificationTypes'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryNotificationRepository implements INotificationRepository { +export class InMemoryNotificationRepository implements NotificationRepository { private notifications: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationPreferenceRepository.ts b/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationPreferenceRepository.ts index b92724c87..4f4f89f6c 100644 --- a/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationPreferenceRepository.ts +++ b/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationPreferenceRepository.ts @@ -1,10 +1,10 @@ import type { DataSource } from 'typeorm'; -import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/INotificationPreferenceRepository'; +import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; import { NotificationPreference } from '@core/notifications/domain/entities/NotificationPreference'; import { NotificationPreferenceOrmEntity } from '../entities/NotificationPreferenceOrmEntity'; import { NotificationPreferenceOrmMapper } from '../mappers/NotificationPreferenceOrmMapper'; -export class TypeOrmNotificationPreferenceRepository implements INotificationPreferenceRepository { +export class TypeOrmNotificationPreferenceRepository implements NotificationPreferenceRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: NotificationPreferenceOrmMapper, diff --git a/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationRepository.ts b/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationRepository.ts index 3139864cf..2e235d181 100644 --- a/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationRepository.ts +++ b/adapters/notifications/persistence/typeorm/repositories/TypeOrmNotificationRepository.ts @@ -1,11 +1,11 @@ import type { DataSource } from 'typeorm'; -import type { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; import type { NotificationType } from '@core/notifications/domain/types/NotificationTypes'; import { Notification } from '@core/notifications/domain/entities/Notification'; import { NotificationOrmEntity } from '../entities/NotificationOrmEntity'; import { NotificationOrmMapper } from '../mappers/NotificationOrmMapper'; -export class TypeOrmNotificationRepository implements INotificationRepository { +export class TypeOrmNotificationRepository implements NotificationRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: NotificationOrmMapper, diff --git a/adapters/notifications/ports/ConsoleMagicLinkNotificationAdapter.ts b/adapters/notifications/ports/ConsoleMagicLinkNotificationAdapter.ts index d0c2da592..3cb65d937 100644 --- a/adapters/notifications/ports/ConsoleMagicLinkNotificationAdapter.ts +++ b/adapters/notifications/ports/ConsoleMagicLinkNotificationAdapter.ts @@ -1,11 +1,11 @@ -import { IMagicLinkNotificationPort, MagicLinkNotificationInput } from '@core/identity/domain/ports/IMagicLinkNotificationPort'; -import { Logger } from '@core/shared/application'; +import { MagicLinkNotificationPort, MagicLinkNotificationInput } from '@core/identity/domain/ports/MagicLinkNotificationPort'; +import { Logger } from '@core/shared/domain'; /** * Console adapter for magic link notifications * Logs to console for development/testing purposes */ -export class ConsoleMagicLinkNotificationAdapter implements IMagicLinkNotificationPort { +export class ConsoleMagicLinkNotificationAdapter implements MagicLinkNotificationPort { constructor(private readonly logger: Logger) {} async sendMagicLink(input: MagicLinkNotificationInput): Promise { diff --git a/adapters/notifications/ports/NotificationServiceAdapter.ts b/adapters/notifications/ports/NotificationServiceAdapter.ts index 0e5edb52a..0c0176760 100644 --- a/adapters/notifications/ports/NotificationServiceAdapter.ts +++ b/adapters/notifications/ports/NotificationServiceAdapter.ts @@ -1,9 +1,9 @@ import type { NotificationService, SendNotificationCommand } from '@core/notifications/application/ports/NotificationService'; -import type { INotificationRepository } from '@core/notifications/domain/repositories/INotificationRepository'; -import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/INotificationPreferenceRepository'; +import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository'; +import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository'; import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway'; import { SendNotificationUseCase } from '@core/notifications/application/use-cases/SendNotificationUseCase'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; export class NotificationServiceAdapter implements NotificationService { private readonly useCase: SendNotificationUseCase; diff --git a/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.test.ts b/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.test.ts index da35fed33..50d65123d 100644 --- a/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.test.ts +++ b/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { MembershipFee } from '@core/payments/domain/entities/MembershipFee'; import { MembershipFeeType } from '@core/payments/domain/entities/MembershipFee'; import type { MemberPayment } from '@core/payments/domain/entities/MemberPayment'; diff --git a/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.ts b/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.ts index b5f69bd6c..cecae62ba 100644 --- a/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.ts +++ b/adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository.ts @@ -2,15 +2,15 @@ * In-Memory Implementation: InMemoryMembershipFeeRepository */ -import type { Logger } from '@core/shared/application/Logger'; -import type { IMembershipFeeRepository, IMemberPaymentRepository } from '@core/payments/domain/repositories/IMembershipFeeRepository'; +import type { Logger } from '@core/shared/domain/Logger'; +import type { MembershipFeeRepository, IMemberPaymentRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; import type { MembershipFee } from '@core/payments/domain/entities/MembershipFee'; import type { MemberPayment } from '@core/payments/domain/entities/MemberPayment'; const membershipFees: Map = new Map(); const memberPayments: Map = new Map(); -export class InMemoryMembershipFeeRepository implements IMembershipFeeRepository { +export class InMemoryMembershipFeeRepository implements MembershipFeeRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { @@ -36,7 +36,7 @@ export class InMemoryMembershipFeeRepository implements IMembershipFeeRepository } } -export class InMemoryMemberPaymentRepository implements IMemberPaymentRepository { +export class InMemoryMemberPaymentRepository implements MemberPaymentRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { diff --git a/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.test.ts b/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.test.ts index 5aa81a4c8..c430d0398 100644 --- a/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.test.ts +++ b/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { Payment } from '@core/payments/domain/entities/Payment'; import { PaymentType, PaymentStatus, PayerType } from '@core/payments/domain/entities/Payment'; import { InMemoryPaymentRepository } from './InMemoryPaymentRepository'; diff --git a/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.ts b/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.ts index 80879b837..0d0c0563e 100644 --- a/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.ts +++ b/adapters/payments/persistence/inmemory/InMemoryPaymentRepository.ts @@ -2,13 +2,13 @@ * In-Memory Implementation: InMemoryPaymentRepository */ -import type { Logger } from '@core/shared/application/Logger'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository'; +import type { Logger } from '@core/shared/domain/Logger'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; import type { Payment, PaymentType } from '@core/payments/domain/entities/Payment'; const payments: Map = new Map(); -export class InMemoryPaymentRepository implements IPaymentRepository { +export class InMemoryPaymentRepository implements PaymentRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { diff --git a/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.test.ts b/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.test.ts index f5e29ff3c..14ce95e1e 100644 --- a/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.test.ts +++ b/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { Prize } from '@core/payments/domain/entities/Prize'; import { PrizeType } from '@core/payments/domain/entities/Prize'; import { InMemoryPrizeRepository } from './InMemoryPrizeRepository'; diff --git a/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.ts b/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.ts index d4e544938..8b348a08c 100644 --- a/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.ts +++ b/adapters/payments/persistence/inmemory/InMemoryPrizeRepository.ts @@ -2,13 +2,13 @@ * In-Memory Implementation: InMemoryPrizeRepository */ -import type { Logger } from '@core/shared/application/Logger'; -import type { IPrizeRepository } from '@core/payments/domain/repositories/IPrizeRepository'; +import type { Logger } from '@core/shared/domain/Logger'; +import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; import type { Prize } from '@core/payments/domain/entities/Prize'; const prizes: Map = new Map(); -export class InMemoryPrizeRepository implements IPrizeRepository { +export class InMemoryPrizeRepository implements PrizeRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { diff --git a/adapters/payments/persistence/inmemory/InMemoryWalletRepository.test.ts b/adapters/payments/persistence/inmemory/InMemoryWalletRepository.test.ts index 15babcb30..d23290908 100644 --- a/adapters/payments/persistence/inmemory/InMemoryWalletRepository.test.ts +++ b/adapters/payments/persistence/inmemory/InMemoryWalletRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application/Logger'; +import type { Logger } from '@core/shared/domain/Logger'; import type { Wallet, Transaction } from '@core/payments/domain/entities/Wallet'; import { TransactionType } from '@core/payments/domain/entities/Wallet'; import { InMemoryTransactionRepository, InMemoryWalletRepository } from './InMemoryWalletRepository'; diff --git a/adapters/payments/persistence/inmemory/InMemoryWalletRepository.ts b/adapters/payments/persistence/inmemory/InMemoryWalletRepository.ts index 93a79882a..916653fbf 100644 --- a/adapters/payments/persistence/inmemory/InMemoryWalletRepository.ts +++ b/adapters/payments/persistence/inmemory/InMemoryWalletRepository.ts @@ -2,14 +2,14 @@ * In-Memory Implementation: InMemoryWalletRepository */ -import type { Logger } from '@core/shared/application/Logger'; -import type { IWalletRepository, ITransactionRepository } from '@core/payments/domain/repositories/IWalletRepository'; +import type { Logger } from '@core/shared/domain/Logger'; +import type { WalletRepository, ITransactionRepository } from '@core/payments/domain/repositories/WalletRepository'; import type { Wallet, Transaction } from '@core/payments/domain/entities/Wallet'; const wallets: Map = new Map(); const transactions: Map = new Map(); -export class InMemoryWalletRepository implements IWalletRepository { +export class InMemoryWalletRepository implements WalletRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { @@ -35,7 +35,7 @@ export class InMemoryWalletRepository implements IWalletRepository { } } -export class InMemoryTransactionRepository implements ITransactionRepository { +export class InMemoryTransactionRepository implements TransactionRepository { constructor(private readonly logger: Logger) {} async findById(id: string): Promise { diff --git a/adapters/payments/persistence/typeorm/repositories/TypeOrmMembershipFeeRepository.ts b/adapters/payments/persistence/typeorm/repositories/TypeOrmMembershipFeeRepository.ts index 9742386bb..49aa38314 100644 --- a/adapters/payments/persistence/typeorm/repositories/TypeOrmMembershipFeeRepository.ts +++ b/adapters/payments/persistence/typeorm/repositories/TypeOrmMembershipFeeRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/IMembershipFeeRepository'; +import type { MemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository'; import type { MemberPayment } from '@core/payments/domain/entities/MemberPayment'; import type { MembershipFee } from '@core/payments/domain/entities/MembershipFee'; @@ -9,7 +9,7 @@ import { PaymentsMembershipFeeOrmEntity } from '../entities/PaymentsMembershipFe import { PaymentsMemberPaymentOrmMapper } from '../mappers/PaymentsMemberPaymentOrmMapper'; import { PaymentsMembershipFeeOrmMapper } from '../mappers/PaymentsMembershipFeeOrmMapper'; -export class TypeOrmMembershipFeeRepository implements IMembershipFeeRepository { +export class TypeOrmMembershipFeeRepository implements MembershipFeeRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsMembershipFeeOrmMapper, @@ -40,7 +40,7 @@ export class TypeOrmMembershipFeeRepository implements IMembershipFeeRepository } } -export class TypeOrmMemberPaymentRepository implements IMemberPaymentRepository { +export class TypeOrmMemberPaymentRepository implements MemberPaymentRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsMemberPaymentOrmMapper, diff --git a/adapters/payments/persistence/typeorm/repositories/TypeOrmPaymentRepository.ts b/adapters/payments/persistence/typeorm/repositories/TypeOrmPaymentRepository.ts index 2df127957..50acda013 100644 --- a/adapters/payments/persistence/typeorm/repositories/TypeOrmPaymentRepository.ts +++ b/adapters/payments/persistence/typeorm/repositories/TypeOrmPaymentRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { IPaymentRepository } from '@core/payments/domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository'; import type { Payment, PaymentType } from '@core/payments/domain/entities/Payment'; import { PaymentsPaymentOrmEntity } from '../entities/PaymentsPaymentOrmEntity'; import { PaymentsPaymentOrmMapper } from '../mappers/PaymentsPaymentOrmMapper'; -export class TypeOrmPaymentRepository implements IPaymentRepository { +export class TypeOrmPaymentRepository implements PaymentRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsPaymentOrmMapper, diff --git a/adapters/payments/persistence/typeorm/repositories/TypeOrmPrizeRepository.ts b/adapters/payments/persistence/typeorm/repositories/TypeOrmPrizeRepository.ts index d923ce7d1..59df33ca5 100644 --- a/adapters/payments/persistence/typeorm/repositories/TypeOrmPrizeRepository.ts +++ b/adapters/payments/persistence/typeorm/repositories/TypeOrmPrizeRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { IPrizeRepository } from '@core/payments/domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository'; import type { Prize } from '@core/payments/domain/entities/Prize'; import { PaymentsPrizeOrmEntity } from '../entities/PaymentsPrizeOrmEntity'; import { PaymentsPrizeOrmMapper } from '../mappers/PaymentsPrizeOrmMapper'; -export class TypeOrmPrizeRepository implements IPrizeRepository { +export class TypeOrmPrizeRepository implements PrizeRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsPrizeOrmMapper, diff --git a/adapters/payments/persistence/typeorm/repositories/TypeOrmWalletRepository.ts b/adapters/payments/persistence/typeorm/repositories/TypeOrmWalletRepository.ts index b432c31af..6edf7f960 100644 --- a/adapters/payments/persistence/typeorm/repositories/TypeOrmWalletRepository.ts +++ b/adapters/payments/persistence/typeorm/repositories/TypeOrmWalletRepository.ts @@ -1,13 +1,13 @@ import type { DataSource } from 'typeorm'; -import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository'; +import type { TransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository'; import type { Transaction, Wallet } from '@core/payments/domain/entities/Wallet'; import { PaymentsTransactionOrmEntity } from '../entities/PaymentsTransactionOrmEntity'; import { PaymentsWalletOrmEntity } from '../entities/PaymentsWalletOrmEntity'; import { PaymentsWalletOrmMapper } from '../mappers/PaymentsWalletOrmMapper'; -export class TypeOrmWalletRepository implements IWalletRepository { +export class TypeOrmWalletRepository implements WalletRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsWalletOrmMapper, @@ -38,7 +38,7 @@ export class TypeOrmWalletRepository implements IWalletRepository { } } -export class TypeOrmTransactionRepository implements ITransactionRepository { +export class TypeOrmTransactionRepository implements TransactionRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: PaymentsWalletOrmMapper, diff --git a/adapters/persistence/inmemory/achievement/InMemoryAchievementRepository.ts b/adapters/persistence/inmemory/achievement/InMemoryAchievementRepository.ts index 44de8ec91..0490ca356 100644 --- a/adapters/persistence/inmemory/achievement/InMemoryAchievementRepository.ts +++ b/adapters/persistence/inmemory/achievement/InMemoryAchievementRepository.ts @@ -1,8 +1,8 @@ -import { IAchievementRepository } from "@core/identity/application/use-cases/achievement/CreateAchievementUseCase"; +import { AchievementRepository } from "@core/identity/application/use-cases/achievement/CreateAchievementUseCase"; import { Achievement } from "@core/identity/domain/entities/Achievement"; -export class InMemoryAchievementRepository implements IAchievementRepository { +export class InMemoryAchievementRepository implements AchievementRepository { private readonly achievements: Map = new Map(); async save(achievement: Achievement): Promise { diff --git a/adapters/racing/persistence/inmemory/InMemoryCarRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryCarRepository.test.ts index 704259a52..9185374d7 100644 --- a/adapters/racing/persistence/inmemory/InMemoryCarRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryCarRepository.test.ts @@ -3,7 +3,7 @@ import { InMemoryCarRepository } from './InMemoryCarRepository'; import { Car } from '@core/racing/domain/entities/Car'; import { CarClass } from '@core/racing/domain/entities/CarClass'; import { CarLicense } from '@core/racing/domain/entities/CarLicense'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryCarRepository', () => { let repository: InMemoryCarRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryCarRepository.ts b/adapters/racing/persistence/inmemory/InMemoryCarRepository.ts index 1d3bdd352..20894e203 100644 --- a/adapters/racing/persistence/inmemory/InMemoryCarRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryCarRepository.ts @@ -9,10 +9,10 @@ import { v4 as uuidv4 } from 'uuid'; import { Car } from '@core/racing/domain/entities/Car'; import { CarClass } from '@core/racing/domain/entities/CarClass'; import { CarLicense } from '@core/racing/domain/entities/CarLicense'; -import type { ICarRepository } from '@core/racing/domain/repositories/ICarRepository'; -import type { Logger } from '@core/shared/application'; +import type { CarRepository } from '@core/racing/domain/repositories/CarRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryCarRepository implements ICarRepository { +export class InMemoryCarRepository implements CarRepository { private cars: Map; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryDriverRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryDriverRepository.test.ts index a71aaaeae..444536a96 100644 --- a/adapters/racing/persistence/inmemory/InMemoryDriverRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryDriverRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryDriverRepository } from './InMemoryDriverRepository'; import { Driver } from '@core/racing/domain/entities/Driver'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { MediaReference } from '@core/domain/media/MediaReference'; describe('InMemoryDriverRepository', () => { diff --git a/adapters/racing/persistence/inmemory/InMemoryDriverRepository.ts b/adapters/racing/persistence/inmemory/InMemoryDriverRepository.ts index b92489fdd..bda01b960 100644 --- a/adapters/racing/persistence/inmemory/InMemoryDriverRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryDriverRepository.ts @@ -1,9 +1,9 @@ -import { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository'; +import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository'; import { Driver } from '@core/racing/domain/entities/Driver'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; import { MediaReference } from '@core/domain/media/MediaReference'; -export class InMemoryDriverRepository implements IDriverRepository { +export class InMemoryDriverRepository implements DriverRepository { private drivers: Map = new Map(); private iracingIdIndex: Map = new Map(); // iracingId -> driverId diff --git a/adapters/racing/persistence/inmemory/InMemoryDriverStatsRepository.ts b/adapters/racing/persistence/inmemory/InMemoryDriverStatsRepository.ts index a6cf9739c..98def84d5 100644 --- a/adapters/racing/persistence/inmemory/InMemoryDriverStatsRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryDriverStatsRepository.ts @@ -5,11 +5,11 @@ * Stores computed driver statistics for caching and frontend queries. */ -import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository'; -import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase'; -import type { Logger } from '@core/shared/application'; +import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository'; +import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryDriverStatsRepository implements IDriverStatsRepository { +export class InMemoryDriverStatsRepository implements DriverStatsRepository { private stats = new Map(); constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryGameRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryGameRepository.test.ts index ba514e0f2..b418f7327 100644 --- a/adapters/racing/persistence/inmemory/InMemoryGameRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryGameRepository.test.ts @@ -1,6 +1,6 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryGameRepository } from './InMemoryGameRepository'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryGameRepository', () => { let repository: InMemoryGameRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryGameRepository.ts b/adapters/racing/persistence/inmemory/InMemoryGameRepository.ts index d3a1c86f3..94d109364 100644 --- a/adapters/racing/persistence/inmemory/InMemoryGameRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryGameRepository.ts @@ -1,8 +1,8 @@ -import { IGameRepository } from '@core/racing/domain/repositories/IGameRepository'; +import { GameRepository } from '@core/racing/domain/repositories/GameRepository'; import { Game } from '@core/racing/domain/entities/Game'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryGameRepository implements IGameRepository { +export class InMemoryGameRepository implements GameRepository { private games: Map = new Map(); constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.test.ts index 34ac07ec9..f71cb90c2 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { InMemoryLeagueMembershipRepository } from './InMemoryLeagueMembershipRepository'; describe('InMemoryLeagueMembershipRepository', () => { diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.ts index 6bad56705..f3c5bd84d 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueMembershipRepository.ts @@ -1,9 +1,9 @@ -import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository'; +import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; import { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership'; import { JoinRequest } from '@core/racing/domain/entities/JoinRequest'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryLeagueMembershipRepository implements ILeagueMembershipRepository { +export class InMemoryLeagueMembershipRepository implements LeagueMembershipRepository { private memberships: Map = new Map(); // Key: `${leagueId}:${driverId}` private joinRequests: Map = new Map(); // Key: requestId diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.test.ts index f7be572ca..23d186095 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryLeagueRepository } from './InMemoryLeagueRepository'; import { League } from '@core/racing/domain/entities/League'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryLeagueRepository', () => { let repository: InMemoryLeagueRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.ts index ad0e3130d..fb704eb8d 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueRepository.ts @@ -1,9 +1,9 @@ -import { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; import { League } from '@core/racing/domain/entities/League'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; import { MediaReference } from '@core/domain/media/MediaReference'; -export class InMemoryLeagueRepository implements ILeagueRepository { +export class InMemoryLeagueRepository implements LeagueRepository { private leagues: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.test.ts index e4af3fadf..386726251 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.test.ts @@ -3,7 +3,7 @@ import { InMemoryLeagueScoringConfigRepository } from './InMemoryLeagueScoringCo import { LeagueScoringConfig, type LeagueScoringConfigProps } from '@core/racing/domain/entities/LeagueScoringConfig'; import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig'; import { PointsTable } from '@core/racing/domain/value-objects/PointsTable'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; const mockPointsTable = new PointsTable({ 1: 25, 2: 18, 3: 15 }); diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.ts index b560a2a76..37e84e13d 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueScoringConfigRepository.ts @@ -1,8 +1,8 @@ -import { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository'; +import { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository'; import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryLeagueScoringConfigRepository implements ILeagueScoringConfigRepository { +export class InMemoryLeagueScoringConfigRepository implements LeagueScoringConfigRepository { private configs: Map = new Map(); // Key: seasonId constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.test.ts index 700df95c3..4ff72a5c8 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryLeagueStandingsRepository } from './InMemoryLeagueStandingsRepository'; -import type { Logger } from '@core/shared/application'; -import type { RawStanding } from '@core/league/application/ports/ILeagueStandingsRepository'; +import type { Logger } from '@core/shared/domain'; +import type { RawStanding } from '@core/league/application/ports/LeagueStandingsRepository'; describe('InMemoryLeagueStandingsRepository', () => { let repository: InMemoryLeagueStandingsRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.ts index 92740e2f5..5e7a8aa22 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueStandingsRepository.ts @@ -1,7 +1,7 @@ -import { ILeagueStandingsRepository, RawStanding } from '@core/league/application/ports/ILeagueStandingsRepository'; -import { Logger } from '@core/shared/application'; +import { LeagueStandingsRepository, RawStanding } from '@core/league/application/ports/LeagueStandingsRepository'; +import { Logger } from '@core/shared/domain'; -export class InMemoryLeagueStandingsRepository implements ILeagueStandingsRepository { +export class InMemoryLeagueStandingsRepository implements LeagueStandingsRepository { private standings: Map = new Map(); // Key: leagueId constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.test.ts index cf464b357..2de91ee18 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.test.ts @@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryLeagueWalletRepository } from './InMemoryLeagueWalletRepository'; import { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet'; import { Money } from '@core/racing/domain/value-objects/Money'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryLeagueWalletRepository', () => { let repository: InMemoryLeagueWalletRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.ts index 507a6c2b4..139bc8dbf 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLeagueWalletRepository.ts @@ -5,10 +5,10 @@ */ import { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet'; -import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository'; -import type { Logger } from '@core/shared/application'; +import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryLeagueWalletRepository implements ILeagueWalletRepository { +export class InMemoryLeagueWalletRepository implements LeagueWalletRepository { private wallets: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.test.ts index a76bfe4fb..28cfce3ff 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.test.ts @@ -3,7 +3,7 @@ import { InMemoryLiveryRepository } from './InMemoryLiveryRepository'; import { DriverLivery } from '@core/racing/domain/entities/DriverLivery'; import { LiveryTemplate } from '@core/racing/domain/entities/LiveryTemplate'; import { LiveryDecal } from '@core/racing/domain/value-objects/LiveryDecal'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryLiveryRepository', () => { let repository: InMemoryLiveryRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.ts b/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.ts index 486290f1f..12e963611 100644 --- a/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryLiveryRepository.ts @@ -6,10 +6,10 @@ import type { DriverLivery } from '../../../../core/racing/domain/entities/DriverLivery'; import type { LiveryTemplate } from '../../../../core/racing/domain/entities/LiveryTemplate'; -import type { ILiveryRepository } from '../../../../core/racing/domain/repositories/ILiveryRepository'; -import type { Logger } from '@core/shared/application'; +import type { LiveryRepository } from '../../../../core/racing/domain/repositories/LiveryRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryLiveryRepository implements ILiveryRepository { +export class InMemoryLiveryRepository implements LiveryRepository { private driverLiveries: Map = new Map(); private templates: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.test.ts index 9a5c83635..a89193409 100644 --- a/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryPenaltyRepository } from './InMemoryPenaltyRepository'; import { Penalty } from '@core/racing/domain/entities/penalty/Penalty'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryPenaltyRepository', () => { let repository: InMemoryPenaltyRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.ts b/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.ts index dc0793701..5ade0137e 100644 --- a/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryPenaltyRepository.ts @@ -5,10 +5,10 @@ */ import type { Penalty } from '@core/racing/domain/entities/penalty/Penalty'; -import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository'; -import type { Logger } from '@core/shared/application'; +import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryPenaltyRepository implements IPenaltyRepository { +export class InMemoryPenaltyRepository implements PenaltyRepository { private penalties: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryProtestRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryProtestRepository.test.ts index 66c813940..8f3c8f8d4 100644 --- a/adapters/racing/persistence/inmemory/InMemoryProtestRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryProtestRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryProtestRepository } from './InMemoryProtestRepository'; import { Protest } from '@core/racing/domain/entities/Protest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryProtestRepository', () => { let repository: InMemoryProtestRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryProtestRepository.ts b/adapters/racing/persistence/inmemory/InMemoryProtestRepository.ts index fb8432bb3..644225725 100644 --- a/adapters/racing/persistence/inmemory/InMemoryProtestRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryProtestRepository.ts @@ -1,8 +1,8 @@ -import { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository'; +import { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; import { Protest } from '@core/racing/domain/entities/Protest'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryProtestRepository implements IProtestRepository { +export class InMemoryProtestRepository implements ProtestRepository { private protests: Map = new Map(); constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.test.ts index 2393d4277..f02d43b27 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.test.ts @@ -3,7 +3,7 @@ import { InMemoryRaceEventRepository } from './InMemoryRaceEventRepository'; import { RaceEvent } from '@core/racing/domain/entities/RaceEvent'; import { Session } from '@core/racing/domain/entities/Session'; import { SessionType } from '@core/racing/domain/value-objects/SessionType'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryRaceEventRepository', () => { let repository: InMemoryRaceEventRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.ts b/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.ts index aa8a9294c..5c5a79a2f 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceEventRepository.ts @@ -1,11 +1,11 @@ /** * In-memory implementation of IRaceEventRepository for development/testing. */ -import type { IRaceEventRepository } from '@core/racing/domain/repositories/IRaceEventRepository'; +import type { RaceEventRepository } from '@core/racing/domain/repositories/RaceEventRepository'; import type { RaceEvent } from '@core/racing/domain/entities/RaceEvent'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryRaceEventRepository implements IRaceEventRepository { +export class InMemoryRaceEventRepository implements RaceEventRepository { private raceEvents: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.test.ts index 653973531..f14362290 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryRaceRegistrationRepository } from './InMemoryRaceRegistrationRepository'; import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryRaceRegistrationRepository', () => { let repository: InMemoryRaceRegistrationRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.ts b/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.ts index b1f76792a..418535d89 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceRegistrationRepository.ts @@ -1,8 +1,8 @@ -import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; +import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryRaceRegistrationRepository implements IRaceRegistrationRepository { +export class InMemoryRaceRegistrationRepository implements RaceRegistrationRepository { private registrations: Map = new Map(); // Key: `${raceId}:${driverId}` constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryRaceRepository.test.ts index 626772568..fca5595d9 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryRaceRepository } from './InMemoryRaceRepository'; import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryRaceRepository', () => { let repository: InMemoryRaceRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryRaceRepository.ts b/adapters/racing/persistence/inmemory/InMemoryRaceRepository.ts index 5c81d0e4c..3e72da69c 100644 --- a/adapters/racing/persistence/inmemory/InMemoryRaceRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryRaceRepository.ts @@ -1,8 +1,8 @@ -import { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; +import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemoryRaceRepository implements IRaceRepository { +export class InMemoryRaceRepository implements RaceRepository { private races: Map = new Map(); constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemoryResultRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryResultRepository.test.ts index 74596edc8..725935283 100644 --- a/adapters/racing/persistence/inmemory/InMemoryResultRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryResultRepository.test.ts @@ -1,8 +1,8 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryResultRepository } from './InMemoryResultRepository'; import { Result } from '@core/racing/domain/entities/result/Result'; -import type { Logger } from '@core/shared/application'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; +import type { Logger } from '@core/shared/domain'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; describe('InMemoryResultRepository', () => { let repository: InMemoryResultRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryResultRepository.ts b/adapters/racing/persistence/inmemory/InMemoryResultRepository.ts index 437d9178c..616abcd0a 100644 --- a/adapters/racing/persistence/inmemory/InMemoryResultRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryResultRepository.ts @@ -7,11 +7,11 @@ import { v4 as uuidv4 } from 'uuid'; import { Result } from '@core/racing/domain/entities/result/Result'; -import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; -import type { Logger } from '@core/shared/application'; +import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryResultRepository implements IResultRepository { +export class InMemoryResultRepository implements ResultRepository { private results: Map; private raceRepository: IRaceRepository | null; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.test.ts b/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.test.ts index 51b8efb86..136900b66 100644 --- a/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.test.ts @@ -9,7 +9,7 @@ import { Game } from '@core/racing/domain/entities/Game'; import { Season } from '@core/racing/domain/entities/season/Season'; import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig'; import { ChampionshipStanding } from '@core/racing/domain/entities/championship/ChampionshipStanding'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryScoringRepositories', () => { let mockLogger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.ts b/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.ts index c4ae91e1f..532506b61 100644 --- a/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.ts +++ b/adapters/racing/persistence/inmemory/InMemoryScoringRepositories.ts @@ -1,15 +1,15 @@ import { Game } from '@core/racing/domain/entities/Game'; import { Season } from '@core/racing/domain/entities/season/Season'; import type { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig'; -import type { IGameRepository } from '@core/racing/domain/repositories/IGameRepository'; -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository'; -import type { IChampionshipStandingRepository } from '@core/racing/domain/repositories/IChampionshipStandingRepository'; +import type { GameRepository } from '@core/racing/domain/repositories/GameRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository'; +import type { ChampionshipStandingRepository } from '@core/racing/domain/repositories/ChampionshipStandingRepository'; import { ChampionshipStanding } from '@core/racing/domain/entities/championship/ChampionshipStanding'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryGameRepository implements IGameRepository { +export class InMemoryGameRepository implements GameRepository { private games: Game[]; private readonly logger: Logger; @@ -59,7 +59,7 @@ export class InMemoryGameRepository implements IGameRepository { } } -export class InMemorySeasonRepository implements ISeasonRepository { +export class InMemorySeasonRepository implements SeasonRepository { private seasons: Season[]; private readonly logger: Logger; @@ -177,7 +177,7 @@ export class InMemorySeasonRepository implements ISeasonRepository { } export class InMemoryLeagueScoringConfigRepository - implements ILeagueScoringConfigRepository + implements LeagueScoringConfigRepository { private configs: LeagueScoringConfig[]; private readonly logger: Logger; @@ -237,7 +237,7 @@ export class InMemoryLeagueScoringConfigRepository } export class InMemoryChampionshipStandingRepository - implements IChampionshipStandingRepository + implements ChampionshipStandingRepository { private standings: ChampionshipStanding[] = []; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemorySeasonRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySeasonRepository.test.ts index 912725fba..3330e7f2e 100644 --- a/adapters/racing/persistence/inmemory/InMemorySeasonRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySeasonRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemorySeasonRepository } from './InMemorySeasonRepository'; import { Season } from '@core/racing/domain/entities/season/Season'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySeasonRepository', () => { let repository: InMemorySeasonRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySeasonRepository.ts b/adapters/racing/persistence/inmemory/InMemorySeasonRepository.ts index 395072845..40cc292a0 100644 --- a/adapters/racing/persistence/inmemory/InMemorySeasonRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySeasonRepository.ts @@ -1,8 +1,8 @@ -import { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; +import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; import { Season } from '@core/racing/domain/entities/season/Season'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemorySeasonRepository implements ISeasonRepository { +export class InMemorySeasonRepository implements SeasonRepository { private seasons: Map = new Map(); // Key: seasonId constructor(private readonly logger: Logger) { diff --git a/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.test.ts index 32b5c4fbc..d9564ae17 100644 --- a/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.test.ts @@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemorySeasonSponsorshipRepository } from './InMemorySeasonSponsorshipRepository'; import { SeasonSponsorship, type SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship'; import { Money } from '@core/racing/domain/value-objects/Money'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySeasonSponsorshipRepository', () => { let repository: InMemorySeasonSponsorshipRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.ts b/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.ts index 91a345bbb..03724513c 100644 --- a/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySeasonSponsorshipRepository.ts @@ -5,10 +5,10 @@ */ import type { SeasonSponsorship, SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship'; -import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository'; -import type { Logger } from '@core/shared/application'; +import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemorySeasonSponsorshipRepository implements ISeasonSponsorshipRepository { +export class InMemorySeasonSponsorshipRepository implements SeasonSponsorshipRepository { private sponsorships: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemorySessionRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySessionRepository.test.ts index c81a5b4a8..80f0cfb53 100644 --- a/adapters/racing/persistence/inmemory/InMemorySessionRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySessionRepository.test.ts @@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemorySessionRepository } from './InMemorySessionRepository'; import { Session, SessionStatus } from '@core/racing/domain/entities/Session'; import { SessionType } from '@core/racing/domain/value-objects/SessionType'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySessionRepository', () => { let repository: InMemorySessionRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySessionRepository.ts b/adapters/racing/persistence/inmemory/InMemorySessionRepository.ts index 6f2fcfaf2..0bd4fc795 100644 --- a/adapters/racing/persistence/inmemory/InMemorySessionRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySessionRepository.ts @@ -1,11 +1,11 @@ /** * In-memory implementation of ISessionRepository for development/testing. */ -import type { ISessionRepository } from '@core/racing/domain/repositories/ISessionRepository'; +import type { SessionRepository } from '@core/racing/domain/repositories/SessionRepository'; import type { Session } from '@core/racing/domain/entities/Session'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; -export class InMemorySessionRepository implements ISessionRepository { +export class InMemorySessionRepository implements SessionRepository { private sessions: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySponsorRepository.test.ts index dc3cc8408..86cab9895 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemorySponsorRepository } from './InMemorySponsorRepository'; import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySponsorRepository', () => { let repository: InMemorySponsorRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorRepository.ts b/adapters/racing/persistence/inmemory/InMemorySponsorRepository.ts index 2bb66aec8..81c3ff936 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorRepository.ts @@ -1,8 +1,8 @@ -import { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository'; +import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository'; import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemorySponsorRepository implements ISponsorRepository { +export class InMemorySponsorRepository implements SponsorRepository { private sponsors: Map = new Map(); private emailIndex: Map = new Map(); // contactEmail -> sponsorId diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.test.ts index 2129f809a..516c672fe 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemorySponsorshipPricingRepository } from './InMemorySponsorshipPricingRepository'; import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySponsorshipPricingRepository', () => { let repository: InMemorySponsorshipPricingRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.ts b/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.ts index 3807e06f8..9ae1e5b77 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorshipPricingRepository.ts @@ -2,12 +2,12 @@ * InMemory implementation of ISponsorshipPricingRepository */ -import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/ISponsorshipPricingRepository'; +import type { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository'; import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing'; import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; -export class InMemorySponsorshipPricingRepository implements ISponsorshipPricingRepository { +export class InMemorySponsorshipPricingRepository implements SponsorshipPricingRepository { private pricings: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.test.ts b/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.test.ts index 3c2887213..134923025 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.test.ts @@ -3,7 +3,7 @@ import { InMemorySponsorshipRequestRepository } from './InMemorySponsorshipReque import { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest'; import { Money } from '@core/racing/domain/value-objects/Money'; import { SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemorySponsorshipRequestRepository', () => { let repository: InMemorySponsorshipRequestRepository; diff --git a/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.ts b/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.ts index a367465c8..216f31d1b 100644 --- a/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemorySponsorshipRequestRepository.ts @@ -1,8 +1,8 @@ -import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository'; +import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; import { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest'; -import { Logger } from '@core/shared/application'; +import { Logger } from '@core/shared/domain'; -export class InMemorySponsorshipRequestRepository implements ISponsorshipRequestRepository { +export class InMemorySponsorshipRequestRepository implements SponsorshipRequestRepository { private requests: Map = new Map(); constructor(private readonly logger: Logger, initialRequests: SponsorshipRequest[] = []) { diff --git a/adapters/racing/persistence/inmemory/InMemoryStandingRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryStandingRepository.test.ts index 1c431115a..8906e2ad0 100644 --- a/adapters/racing/persistence/inmemory/InMemoryStandingRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryStandingRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryStandingRepository } from './InMemoryStandingRepository'; import { Standing } from '@core/racing/domain/entities/Standing'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; /* eslint-disable @typescript-eslint/no-explicit-any */ diff --git a/adapters/racing/persistence/inmemory/InMemoryStandingRepository.ts b/adapters/racing/persistence/inmemory/InMemoryStandingRepository.ts index fe202dfdb..09c68242d 100644 --- a/adapters/racing/persistence/inmemory/InMemoryStandingRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryStandingRepository.ts @@ -6,13 +6,13 @@ */ import { Standing } from '@core/racing/domain/entities/Standing'; -import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository'; -import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; -import type { Logger } from '@core/shared/application'; +import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository'; +import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryStandingRepository implements IStandingRepository { +export class InMemoryStandingRepository implements StandingRepository { private standings: Map; private resultRepository: IResultRepository | null; private raceRepository: IRaceRepository | null; diff --git a/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.test.ts index 783f30968..d50030a2b 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.test.ts @@ -1,7 +1,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryTeamMembershipRepository } from './InMemoryTeamMembershipRepository'; import type { TeamMembership, TeamJoinRequest } from '@core/racing/domain/types/TeamMembership'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; /* eslint-disable @typescript-eslint/no-explicit-any */ diff --git a/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.ts b/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.ts index 224e13afe..a699749ef 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTeamMembershipRepository.ts @@ -9,10 +9,10 @@ import type { TeamMembership, TeamJoinRequest, } from '@core/racing/domain/types/TeamMembership'; -import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository'; -import type { Logger } from '@core/shared/application'; +import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryTeamMembershipRepository implements ITeamMembershipRepository { +export class InMemoryTeamMembershipRepository implements TeamMembershipRepository { private membershipsByTeam: Map; private joinRequestsByTeam: Map; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryTeamRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryTeamRepository.test.ts index 76860168e..10e9debcd 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTeamRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTeamRepository.test.ts @@ -1,6 +1,6 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryTeamRepository } from './InMemoryTeamRepository'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { Team } from '@core/racing/domain/entities/Team'; describe('InMemoryTeamRepository', () => { diff --git a/adapters/racing/persistence/inmemory/InMemoryTeamRepository.ts b/adapters/racing/persistence/inmemory/InMemoryTeamRepository.ts index 7aa9eca47..57827ff2e 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTeamRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTeamRepository.ts @@ -6,11 +6,11 @@ */ import { Team } from '@core/racing/domain/entities/Team'; -import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository'; -import type { Logger } from '@core/shared/application'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; +import type { Logger } from '@core/shared/domain'; import { MediaReference } from '@core/domain/media/MediaReference'; -export class InMemoryTeamRepository implements ITeamRepository { +export class InMemoryTeamRepository implements TeamRepository { private teams: Map; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryTeamStatsRepository.ts b/adapters/racing/persistence/inmemory/InMemoryTeamStatsRepository.ts index ec50f10b5..44cef0ee7 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTeamStatsRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTeamStatsRepository.ts @@ -1,7 +1,7 @@ -import type { Logger } from '@core/shared/application/Logger'; -import type { ITeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository'; +import type { Logger } from '@core/shared/domain/Logger'; +import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository'; -export class InMemoryTeamStatsRepository implements ITeamStatsRepository { +export class InMemoryTeamStatsRepository implements TeamStatsRepository { private readonly stats = new Map(); constructor(private readonly logger: Logger) {} diff --git a/adapters/racing/persistence/inmemory/InMemoryTrackRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryTrackRepository.test.ts index a938ab647..3c1d7467f 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTrackRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTrackRepository.test.ts @@ -1,6 +1,6 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { InMemoryTrackRepository } from './InMemoryTrackRepository'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { Track } from '@core/racing/domain/entities/Track'; describe('InMemoryTrackRepository', () => { diff --git a/adapters/racing/persistence/inmemory/InMemoryTrackRepository.ts b/adapters/racing/persistence/inmemory/InMemoryTrackRepository.ts index 69596d32d..8ed118e22 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTrackRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTrackRepository.ts @@ -7,10 +7,10 @@ import { v4 as uuidv4 } from 'uuid'; import { Track, TrackCategory } from '@core/racing/domain/entities/Track'; -import type { ITrackRepository } from '@core/racing/domain/repositories/ITrackRepository'; -import type { Logger } from '@core/shared/application'; +import type { TrackRepository } from '@core/racing/domain/repositories/TrackRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryTrackRepository implements ITrackRepository { +export class InMemoryTrackRepository implements TrackRepository { private tracks: Map; private readonly logger: Logger; diff --git a/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.test.ts b/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.test.ts index 801ae8aa6..ba56f2ce3 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.test.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.test.ts @@ -4,7 +4,7 @@ import { Transaction, TransactionType } from '@core/racing/domain/entities/leagu import { TransactionId } from '@core/racing/domain/entities/league-wallet/TransactionId'; import { LeagueWalletId } from '@core/racing/domain/entities/league-wallet/LeagueWalletId'; import { Money } from '@core/racing/domain/value-objects/Money'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; describe('InMemoryTransactionRepository', () => { let repository: InMemoryTransactionRepository; diff --git a/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.ts b/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.ts index fae2b3f9e..b1c335b15 100644 --- a/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.ts +++ b/adapters/racing/persistence/inmemory/InMemoryTransactionRepository.ts @@ -5,10 +5,10 @@ */ import type { Transaction, TransactionType } from '@core/racing/domain/entities/league-wallet/Transaction'; -import type { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository'; -import type { Logger } from '@core/shared/application'; +import type { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryTransactionRepository implements ITransactionRepository { +export class InMemoryTransactionRepository implements TransactionRepository { private transactions: Map = new Map(); private readonly logger: Logger; diff --git a/adapters/racing/persistence/media/InMemoryMediaRepository.ts b/adapters/racing/persistence/media/InMemoryMediaRepository.ts index 55f29a316..3e8d6d1e3 100644 --- a/adapters/racing/persistence/media/InMemoryMediaRepository.ts +++ b/adapters/racing/persistence/media/InMemoryMediaRepository.ts @@ -5,10 +5,10 @@ * Stores URLs for media assets like avatars and logos. */ -import type { IMediaRepository } from '@core/racing/domain/repositories/IMediaRepository'; -import type { Logger } from '@core/shared/application'; +import type { MediaRepository } from '@core/racing/domain/repositories/MediaRepository'; +import type { Logger } from '@core/shared/domain'; -export class InMemoryMediaRepository implements IMediaRepository { +export class InMemoryMediaRepository implements MediaRepository { private driverAvatars = new Map(); private teamLogos = new Map(); private leagueLogos = new Map(); diff --git a/adapters/racing/persistence/typeorm/mappers/DriverStatsOrmMapper.ts b/adapters/racing/persistence/typeorm/mappers/DriverStatsOrmMapper.ts index f35546c8b..90ef6e70c 100644 --- a/adapters/racing/persistence/typeorm/mappers/DriverStatsOrmMapper.ts +++ b/adapters/racing/persistence/typeorm/mappers/DriverStatsOrmMapper.ts @@ -1,4 +1,4 @@ -import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase'; +import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase'; import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity'; import { diff --git a/adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper.ts b/adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper.ts index 625558e0f..bcd2b9095 100644 --- a/adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper.ts +++ b/adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper.ts @@ -1,4 +1,4 @@ -import type { TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository'; +import type { TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository'; import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity'; import { diff --git a/adapters/racing/persistence/typeorm/repositories/CommerceTypeOrmRepositories.ts b/adapters/racing/persistence/typeorm/repositories/CommerceTypeOrmRepositories.ts index 0497a96b8..f75b9ac38 100644 --- a/adapters/racing/persistence/typeorm/repositories/CommerceTypeOrmRepositories.ts +++ b/adapters/racing/persistence/typeorm/repositories/CommerceTypeOrmRepositories.ts @@ -1,12 +1,12 @@ import type { Repository } from 'typeorm'; -import type { IGameRepository } from '@core/racing/domain/repositories/IGameRepository'; -import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository'; -import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository'; -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 { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository'; +import type { GameRepository } from '@core/racing/domain/repositories/GameRepository'; +import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository'; +import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; +import type { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository'; +import type { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository'; +import type { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository'; +import type { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository'; import type { Game } from '@core/racing/domain/entities/Game'; import type { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet'; @@ -35,7 +35,7 @@ import { TransactionOrmMapper, } from '../mappers/CommerceOrmMappers'; -export class TypeOrmGameRepository implements IGameRepository { +export class TypeOrmGameRepository implements GameRepository { constructor( private readonly repo: Repository, private readonly mapper: GameOrmMapper, @@ -52,7 +52,7 @@ export class TypeOrmGameRepository implements IGameRepository { } } -export class TypeOrmLeagueWalletRepository implements ILeagueWalletRepository { +export class TypeOrmLeagueWalletRepository implements LeagueWalletRepository { constructor( private readonly repo: Repository, private readonly mapper: LeagueWalletOrmMapper, @@ -88,7 +88,7 @@ export class TypeOrmLeagueWalletRepository implements ILeagueWalletRepository { } } -export class TypeOrmTransactionRepository implements ITransactionRepository { +export class TypeOrmTransactionRepository implements TransactionRepository { constructor( private readonly repo: Repository, private readonly mapper: TransactionOrmMapper, @@ -129,7 +129,7 @@ export class TypeOrmTransactionRepository implements ITransactionRepository { } } -export class TypeOrmSponsorRepository implements ISponsorRepository { +export class TypeOrmSponsorRepository implements SponsorRepository { constructor( private readonly repo: Repository, private readonly mapper: SponsorOrmMapper, @@ -170,7 +170,7 @@ export class TypeOrmSponsorRepository implements ISponsorRepository { } } -export class TypeOrmSponsorshipPricingRepository implements ISponsorshipPricingRepository { +export class TypeOrmSponsorshipPricingRepository implements SponsorshipPricingRepository { constructor( private readonly repo: Repository, private readonly mapper: SponsorshipPricingOrmMapper, @@ -203,7 +203,7 @@ export class TypeOrmSponsorshipPricingRepository implements ISponsorshipPricingR } } -export class TypeOrmSponsorshipRequestRepository implements ISponsorshipRequestRepository { +export class TypeOrmSponsorshipRequestRepository implements SponsorshipRequestRepository { constructor( private readonly repo: Repository, private readonly mapper: SponsorshipRequestOrmMapper, @@ -268,7 +268,7 @@ export class TypeOrmSponsorshipRequestRepository implements ISponsorshipRequestR } } -export class TypeOrmSeasonSponsorshipRepository implements ISeasonSponsorshipRepository { +export class TypeOrmSeasonSponsorshipRepository implements SeasonSponsorshipRepository { constructor( private readonly repo: Repository, private readonly mapper: SeasonSponsorshipOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/StewardingTypeOrmRepositories.ts b/adapters/racing/persistence/typeorm/repositories/StewardingTypeOrmRepositories.ts index 9fa5c1071..a51577fef 100644 --- a/adapters/racing/persistence/typeorm/repositories/StewardingTypeOrmRepositories.ts +++ b/adapters/racing/persistence/typeorm/repositories/StewardingTypeOrmRepositories.ts @@ -1,14 +1,14 @@ import type { Repository } from 'typeorm'; -import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository'; -import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository'; +import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository'; +import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository'; import type { Penalty } from '@core/racing/domain/entities/penalty/Penalty'; import type { Protest } from '@core/racing/domain/entities/Protest'; import { PenaltyOrmEntity, ProtestOrmEntity } from '../entities/MissingRacingOrmEntities'; import { PenaltyOrmMapper, ProtestOrmMapper } from '../mappers/StewardingOrmMappers'; -export class TypeOrmPenaltyRepository implements IPenaltyRepository { +export class TypeOrmPenaltyRepository implements PenaltyRepository { constructor( private readonly repo: Repository, private readonly mapper: PenaltyOrmMapper, @@ -58,7 +58,7 @@ export class TypeOrmPenaltyRepository implements IPenaltyRepository { } } -export class TypeOrmProtestRepository implements IProtestRepository { +export class TypeOrmProtestRepository implements ProtestRepository { constructor( private readonly repo: Repository, private readonly mapper: ProtestOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TeamTypeOrmRepositories.ts b/adapters/racing/persistence/typeorm/repositories/TeamTypeOrmRepositories.ts index 786a5b46f..dab4a5b84 100644 --- a/adapters/racing/persistence/typeorm/repositories/TeamTypeOrmRepositories.ts +++ b/adapters/racing/persistence/typeorm/repositories/TeamTypeOrmRepositories.ts @@ -1,14 +1,14 @@ import type { Repository } from 'typeorm'; -import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; import type { Team } from '@core/racing/domain/entities/Team'; import type { TeamJoinRequest, TeamMembership } from '@core/racing/domain/types/TeamMembership'; import { TeamJoinRequestOrmEntity, TeamMembershipOrmEntity, TeamOrmEntity } from '../entities/TeamOrmEntities'; import { TeamMembershipOrmMapper, TeamOrmMapper } from '../mappers/TeamOrmMappers'; -export class TypeOrmTeamRepository implements ITeamRepository { +export class TypeOrmTeamRepository implements TeamRepository { constructor( private readonly repo: Repository, private readonly mapper: TeamOrmMapper, @@ -59,7 +59,7 @@ export class TypeOrmTeamRepository implements ITeamRepository { } } -export class TypeOrmTeamMembershipRepository implements ITeamMembershipRepository { +export class TypeOrmTeamMembershipRepository implements TeamMembershipRepository { constructor( private readonly membershipRepo: Repository, private readonly joinRequestRepo: Repository, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverRepository.ts index 9deb64014..5a1372205 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository'; +import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository'; import type { Driver } from '@core/racing/domain/entities/Driver'; import { DriverOrmEntity } from '../entities/DriverOrmEntity'; import { DriverOrmMapper } from '../mappers/DriverOrmMapper'; -export class TypeOrmDriverRepository implements IDriverRepository { +export class TypeOrmDriverRepository implements DriverRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: DriverOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverStatsRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverStatsRepository.ts index ba080ebe5..31957430b 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverStatsRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmDriverStatsRepository.ts @@ -1,11 +1,11 @@ -import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository'; -import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase'; +import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository'; +import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase'; import type { Repository } from 'typeorm'; import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity'; import { DriverStatsOrmMapper } from '../mappers/DriverStatsOrmMapper'; -export class TypeOrmDriverStatsRepository implements IDriverStatsRepository { +export class TypeOrmDriverStatsRepository implements DriverStatsRepository { constructor( private readonly repo: Repository, private readonly mapper: DriverStatsOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueMembershipRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueMembershipRepository.ts index 488a03dda..64622ac5f 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueMembershipRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueMembershipRepository.ts @@ -1,13 +1,13 @@ import type { DataSource } from 'typeorm'; -import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; import type { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership'; import { JoinRequest } from '@core/racing/domain/entities/JoinRequest'; import { LeagueMembershipOrmEntity } from '../entities/LeagueMembershipOrmEntity'; import { LeagueMembershipOrmMapper } from '../mappers/LeagueMembershipOrmMapper'; -export class TypeOrmLeagueMembershipRepository implements ILeagueMembershipRepository { +export class TypeOrmLeagueMembershipRepository implements LeagueMembershipRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: LeagueMembershipOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueRepository.ts index 714fc0223..90e41785a 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; import { League } from '@core/racing/domain/entities/League'; import { LeagueOrmEntity } from '../entities/LeagueOrmEntity'; import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper'; -export class TypeOrmLeagueRepository implements ILeagueRepository { +export class TypeOrmLeagueRepository implements LeagueRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: LeagueOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueScoringConfigRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueScoringConfigRepository.ts index 2ca1a8cc2..cc156ada1 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueScoringConfigRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmLeagueScoringConfigRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository'; +import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository'; import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig'; import { LeagueScoringConfigOrmEntity } from '../entities/LeagueScoringConfigOrmEntity'; import { LeagueScoringConfigOrmMapper } from '../mappers/LeagueScoringConfigOrmMapper'; -export class TypeOrmLeagueScoringConfigRepository implements ILeagueScoringConfigRepository { +export class TypeOrmLeagueScoringConfigRepository implements LeagueScoringConfigRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: LeagueScoringConfigOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRegistrationRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRegistrationRepository.ts index 92dcee5a2..633ecb807 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRegistrationRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRegistrationRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; import type { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; import { RaceRegistrationOrmEntity } from '../entities/RaceRegistrationOrmEntity'; import { RaceRegistrationOrmMapper } from '../mappers/RaceRegistrationOrmMapper'; -export class TypeOrmRaceRegistrationRepository implements IRaceRegistrationRepository { +export class TypeOrmRaceRegistrationRepository implements RaceRegistrationRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: RaceRegistrationOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRepository.ts index b70dda02d..09b233c68 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmRaceRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race'; import { RaceOrmEntity } from '../entities/RaceOrmEntity'; import { RaceOrmMapper } from '../mappers/RaceOrmMapper'; -export class TypeOrmRaceRepository implements IRaceRepository { +export class TypeOrmRaceRepository implements RaceRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: RaceOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmResultRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmResultRepository.ts index 925e81ad4..e08bdb834 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmResultRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmResultRepository.ts @@ -1,14 +1,14 @@ import type { DataSource } from 'typeorm'; import { In } from 'typeorm'; -import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository'; +import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; import type { Result } from '@core/racing/domain/entities/result/Result'; import { RaceOrmEntity } from '../entities/RaceOrmEntity'; import { ResultOrmEntity } from '../entities/ResultOrmEntity'; import { ResultOrmMapper } from '../mappers/ResultOrmMapper'; -export class TypeOrmResultRepository implements IResultRepository { +export class TypeOrmResultRepository implements ResultRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: ResultOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmSeasonRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmSeasonRepository.ts index 14ac2a831..827c7c6e5 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmSeasonRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmSeasonRepository.ts @@ -1,12 +1,12 @@ import type { DataSource } from 'typeorm'; -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; import { Season } from '@core/racing/domain/entities/season/Season'; import { SeasonOrmEntity } from '../entities/SeasonOrmEntity'; import { SeasonOrmMapper } from '../mappers/SeasonOrmMapper'; -export class TypeOrmSeasonRepository implements ISeasonRepository { +export class TypeOrmSeasonRepository implements SeasonRepository { constructor( private readonly dataSource: DataSource, private readonly mapper: SeasonOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmStandingRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmStandingRepository.ts index ae5562894..2c3d04393 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmStandingRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmStandingRepository.ts @@ -2,7 +2,7 @@ import type { DataSource } from 'typeorm'; import { In } from 'typeorm'; import { Standing } from '@core/racing/domain/entities/Standing'; -import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository'; +import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository'; import { LeagueOrmEntity } from '../entities/LeagueOrmEntity'; import { RaceOrmEntity } from '../entities/RaceOrmEntity'; @@ -12,7 +12,7 @@ import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper'; import { ResultOrmMapper } from '../mappers/ResultOrmMapper'; import { StandingOrmMapper } from '../mappers/StandingOrmMapper'; -export class TypeOrmStandingRepository implements IStandingRepository { +export class TypeOrmStandingRepository implements StandingRepository { constructor( private readonly dataSource: DataSource, private readonly standingMapper: StandingOrmMapper, diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingEventRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingEventRepository.ts index 7bdde7be8..88fdb7800 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingEventRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingEventRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { ITeamRatingEventRepository, FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; +import type { TeamRatingEventRepository, FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository'; import type { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import type { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; @@ -13,7 +13,7 @@ import { TeamRatingEventOrmMapper } from '../mappers/TeamRatingEventOrmMapper'; * Persists team rating events in the ledger with efficient querying by teamId * and ordering for snapshot computation. */ -export class TypeOrmTeamRatingEventRepository implements ITeamRatingEventRepository { +export class TypeOrmTeamRatingEventRepository implements TeamRatingEventRepository { constructor(private readonly dataSource: DataSource) {} async save(event: TeamRatingEvent): Promise { diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingRepository.ts index 47f4b94ff..649a0e46a 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamRatingRepository.ts @@ -1,6 +1,6 @@ import type { DataSource } from 'typeorm'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import type { TeamRatingSnapshot } from '@core/racing/domain/services/TeamRatingSnapshotCalculator'; import { TeamRatingOrmEntity } from '../entities/TeamRatingOrmEntity'; @@ -11,7 +11,7 @@ import { TeamRatingOrmMapper } from '../mappers/TeamRatingOrmMapper'; * * Persists and retrieves TeamRating snapshots for fast reads. */ -export class TypeOrmTeamRatingRepository implements ITeamRatingRepository { +export class TypeOrmTeamRatingRepository implements TeamRatingRepository { constructor(private readonly dataSource: DataSource) {} async findByTeamId(teamId: string): Promise { diff --git a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamStatsRepository.ts b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamStatsRepository.ts index 3c28ff49b..37735333c 100644 --- a/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamStatsRepository.ts +++ b/adapters/racing/persistence/typeorm/repositories/TypeOrmTeamStatsRepository.ts @@ -1,10 +1,10 @@ -import type { ITeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository'; +import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository'; import type { Repository } from 'typeorm'; import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity'; import { TeamStatsOrmMapper } from '../mappers/TeamStatsOrmMapper'; -export class TypeOrmTeamStatsRepository implements ITeamStatsRepository { +export class TypeOrmTeamStatsRepository implements TeamStatsRepository { constructor( private readonly repo: Repository, private readonly mapper: TeamStatsOrmMapper, diff --git a/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.test.ts b/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.test.ts index e6ef6aef5..1541d53a3 100644 --- a/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.test.ts +++ b/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { InMemoryDriverExtendedProfileProvider } from './InMemoryDriverExtendedProfileProvider'; describe('InMemoryDriverExtendedProfileProvider', () => { diff --git a/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.ts b/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.ts index 2eba59336..4ba7ca3eb 100644 --- a/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.ts +++ b/adapters/racing/ports/InMemoryDriverExtendedProfileProvider.ts @@ -1,5 +1,5 @@ import type { DriverExtendedProfileProvider } from '@core/racing/application/ports/DriverExtendedProfileProvider'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; // TODO Provider doesnt exist in Clean Architecture // TODO Hardcoded data here must be moved to a better place diff --git a/adapters/racing/ports/InMemoryDriverRatingProvider.test.ts b/adapters/racing/ports/InMemoryDriverRatingProvider.test.ts index 73d1771f0..ed9a83368 100644 --- a/adapters/racing/ports/InMemoryDriverRatingProvider.test.ts +++ b/adapters/racing/ports/InMemoryDriverRatingProvider.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import { InMemoryDriverRatingProvider } from './InMemoryDriverRatingProvider'; describe('InMemoryDriverRatingProvider', () => { diff --git a/adapters/racing/ports/InMemoryDriverRatingProvider.ts b/adapters/racing/ports/InMemoryDriverRatingProvider.ts index 4f5f312d3..035718a36 100644 --- a/adapters/racing/ports/InMemoryDriverRatingProvider.ts +++ b/adapters/racing/ports/InMemoryDriverRatingProvider.ts @@ -1,5 +1,5 @@ import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; // TODO Provider doesnt exist in Clean Architecture // TODO Hardcoded data here must be moved to a better place diff --git a/adapters/social/persistence/inmemory/InMemorySocialAndFeed.test.ts b/adapters/social/persistence/inmemory/InMemorySocialAndFeed.test.ts index 8e23a6e88..aa8985d22 100644 --- a/adapters/social/persistence/inmemory/InMemorySocialAndFeed.test.ts +++ b/adapters/social/persistence/inmemory/InMemorySocialAndFeed.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { Logger } from '@core/shared/application'; +import type { Logger } from '@core/shared/domain'; import type { RacingSeedData } from './InMemorySocialAndFeed'; import { InMemoryFeedRepository, InMemorySocialGraphRepository } from './InMemorySocialAndFeed'; diff --git a/adapters/social/persistence/inmemory/InMemorySocialAndFeed.ts b/adapters/social/persistence/inmemory/InMemorySocialAndFeed.ts index 79d972c4a..34788a841 100644 --- a/adapters/social/persistence/inmemory/InMemorySocialAndFeed.ts +++ b/adapters/social/persistence/inmemory/InMemorySocialAndFeed.ts @@ -1,7 +1,7 @@ import type { Driver } from '@core/racing/domain/entities/Driver'; -import type { Logger } from '@core/shared/application'; -import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; +import type { Logger } from '@core/shared/domain'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import type { FeedItem } from '@core/social/domain/types/FeedItem'; export type Friendship = { @@ -15,7 +15,7 @@ export type RacingSeedData = { feedEvents: FeedItem[]; }; -export class InMemoryFeedRepository implements IFeedRepository { +export class InMemoryFeedRepository implements FeedRepository { private feedEvents: FeedItem[]; private friendships: Friendship[]; private readonly logger: Logger; @@ -76,7 +76,7 @@ export class InMemoryFeedRepository implements IFeedRepository { } } -export class InMemorySocialGraphRepository implements ISocialGraphRepository { +export class InMemorySocialGraphRepository implements SocialGraphRepository { private friendships: Friendship[]; private driversById: Map; private readonly logger: Logger; diff --git a/adapters/social/persistence/typeorm/repositories/TypeOrmFeedRepository.ts b/adapters/social/persistence/typeorm/repositories/TypeOrmFeedRepository.ts index d438e5420..388df0daa 100644 --- a/adapters/social/persistence/typeorm/repositories/TypeOrmFeedRepository.ts +++ b/adapters/social/persistence/typeorm/repositories/TypeOrmFeedRepository.ts @@ -1,13 +1,13 @@ import { In, type Repository } from 'typeorm'; -import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; import type { FeedItem } from '@core/social/domain/types/FeedItem'; import { FeedItemOrmEntity } from '../entities/FeedItemOrmEntity'; import { FriendshipOrmEntity } from '../entities/FriendshipOrmEntity'; import { FeedItemOrmMapper } from '../mappers/FeedItemOrmMapper'; -export class TypeOrmFeedRepository implements IFeedRepository { +export class TypeOrmFeedRepository implements FeedRepository { constructor( private readonly feedRepo: Repository, private readonly friendshipRepo: Repository, diff --git a/adapters/social/persistence/typeorm/repositories/TypeOrmSocialGraphRepository.ts b/adapters/social/persistence/typeorm/repositories/TypeOrmSocialGraphRepository.ts index 911528677..64f750157 100644 --- a/adapters/social/persistence/typeorm/repositories/TypeOrmSocialGraphRepository.ts +++ b/adapters/social/persistence/typeorm/repositories/TypeOrmSocialGraphRepository.ts @@ -1,6 +1,6 @@ import { In, type Repository } from 'typeorm'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import type { Driver } from '@core/racing/domain/entities/Driver'; import { DriverOrmEntity } from '@adapters/racing/persistence/typeorm/entities/DriverOrmEntity'; @@ -10,7 +10,7 @@ import { FriendshipOrmEntity } from '../entities/FriendshipOrmEntity'; import { TypeOrmSocialSchemaError } from '../errors/TypeOrmSocialSchemaError'; import { assertNonEmptyString } from '../schema/TypeOrmSocialSchemaGuards'; -export class TypeOrmSocialGraphRepository implements ISocialGraphRepository { +export class TypeOrmSocialGraphRepository implements SocialGraphRepository { constructor( private readonly friendshipRepo: Repository, private readonly driverRepo: Repository, diff --git a/apps/api/src/domain/admin/AdminModule.ts b/apps/api/src/domain/admin/AdminModule.ts index 31de69e3b..c569c5a06 100644 --- a/apps/api/src/domain/admin/AdminModule.ts +++ b/apps/api/src/domain/admin/AdminModule.ts @@ -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'; diff --git a/apps/api/src/domain/admin/AdminService.test.ts b/apps/api/src/domain/admin/AdminService.test.ts index 57595b53d..45d05f560 100644 --- a/apps/api/src/domain/admin/AdminService.test.ts +++ b/apps/api/src/domain/admin/AdminService.test.ts @@ -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 diff --git a/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts b/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts index dff45e297..31a992fc8 100644 --- a/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts +++ b/apps/api/src/domain/admin/use-cases/GetDashboardStatsUseCase.ts @@ -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'; diff --git a/apps/api/src/domain/analytics/AnalyticsProviders.ts b/apps/api/src/domain/analytics/AnalyticsProviders.ts index 0f80400c0..db9d0b195 100644 --- a/apps/api/src/domain/analytics/AnalyticsProviders.ts +++ b/apps/api/src/domain/analytics/AnalyticsProviders.ts @@ -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'; diff --git a/apps/api/src/domain/analytics/AnalyticsService.test.ts b/apps/api/src/domain/analytics/AnalyticsService.test.ts index eee2e7998..cbed87e6c 100644 --- a/apps/api/src/domain/analytics/AnalyticsService.test.ts +++ b/apps/api/src/domain/analytics/AnalyticsService.test.ts @@ -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'; diff --git a/apps/api/src/domain/auth/ActorFromSession.test.ts b/apps/api/src/domain/auth/ActorFromSession.test.ts index 9c3282efa..7e35dbea0 100644 --- a/apps/api/src/domain/auth/ActorFromSession.test.ts +++ b/apps/api/src/domain/auth/ActorFromSession.test.ts @@ -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'; diff --git a/apps/api/src/domain/auth/AuthProviders.ts b/apps/api/src/domain/auth/AuthProviders.ts index d4dfbc5be..e1ec6d4c0 100644 --- a/apps/api/src/domain/auth/AuthProviders.ts +++ b/apps/api/src/domain/auth/AuthProviders.ts @@ -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, diff --git a/apps/api/src/domain/auth/AuthService.test.ts b/apps/api/src/domain/auth/AuthService.test.ts index 1f55c4692..2919edd52 100644 --- a/apps/api/src/domain/auth/AuthService.test.ts +++ b/apps/api/src/domain/auth/AuthService.test.ts @@ -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 { diff --git a/apps/api/src/domain/bootstrap/BootstrapProviders.ts b/apps/api/src/domain/bootstrap/BootstrapProviders.ts index 1ba0d2a4f..04694bc83 100644 --- a/apps/api/src/domain/bootstrap/BootstrapProviders.ts +++ b/apps/api/src/domain/bootstrap/BootstrapProviders.ts @@ -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'; diff --git a/apps/api/src/domain/dashboard/DashboardProviders.ts b/apps/api/src/domain/dashboard/DashboardProviders.ts index f5629b714..44050aa30 100644 --- a/apps/api/src/domain/dashboard/DashboardProviders.ts +++ b/apps/api/src/domain/dashboard/DashboardProviders.ts @@ -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'; diff --git a/apps/api/src/domain/dashboard/DashboardService.test.ts b/apps/api/src/domain/dashboard/DashboardService.test.ts index c617175bd..5775920ec 100644 --- a/apps/api/src/domain/dashboard/DashboardService.test.ts +++ b/apps/api/src/domain/dashboard/DashboardService.test.ts @@ -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', () => { diff --git a/apps/api/src/domain/driver/DriverProviders.ts b/apps/api/src/domain/driver/DriverProviders.ts index 649553d04..775082bae 100644 --- a/apps/api/src/domain/driver/DriverProviders.ts +++ b/apps/api/src/domain/driver/DriverProviders.ts @@ -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'; diff --git a/apps/api/src/domain/driver/DriverService.test.ts b/apps/api/src/domain/driver/DriverService.test.ts index 38a60f6da..43d87e23d 100644 --- a/apps/api/src/domain/driver/DriverService.test.ts +++ b/apps/api/src/domain/driver/DriverService.test.ts @@ -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', () => { diff --git a/apps/api/src/domain/driver/DriverService.ts b/apps/api/src/domain/driver/DriverService.ts index 5d6e66748..799a53365 100644 --- a/apps/api/src/domain/driver/DriverService.ts +++ b/apps/api/src/domain/driver/DriverService.ts @@ -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'; diff --git a/apps/api/src/domain/driver/presenters/DriverPresenter.ts b/apps/api/src/domain/driver/presenters/DriverPresenter.ts index 8fdeeee55..0379e85e3 100644 --- a/apps/api/src/domain/driver/presenters/DriverPresenter.ts +++ b/apps/api/src/domain/driver/presenters/DriverPresenter.ts @@ -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'; diff --git a/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.test.ts b/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.test.ts index 7434c29aa..3eb6259cd 100644 --- a/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.test.ts +++ b/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.test.ts @@ -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'; diff --git a/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.ts b/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.ts index 68357872d..dd99d4ab6 100644 --- a/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.ts +++ b/apps/api/src/domain/driver/presenters/GetDriverLiveriesPresenter.ts @@ -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'; diff --git a/apps/api/src/domain/league/LeagueProviders.ts b/apps/api/src/domain/league/LeagueProviders.ts index efe1a7d9e..b5c8f0224 100644 --- a/apps/api/src/domain/league/LeagueProviders.ts +++ b/apps/api/src/domain/league/LeagueProviders.ts @@ -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, diff --git a/apps/api/src/domain/league/LeagueService.test.ts b/apps/api/src/domain/league/LeagueService.test.ts index 00aec8d5d..ee890ae85 100644 --- a/apps/api/src/domain/league/LeagueService.test.ts +++ b/apps/api/src/domain/league/LeagueService.test.ts @@ -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'; diff --git a/apps/api/src/domain/media/MediaProviders.ts b/apps/api/src/domain/media/MediaProviders.ts index c5786dc2a..8d6f5c323 100644 --- a/apps/api/src/domain/media/MediaProviders.ts +++ b/apps/api/src/domain/media/MediaProviders.ts @@ -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'; diff --git a/apps/api/src/domain/media/MediaService.test.ts b/apps/api/src/domain/media/MediaService.test.ts index 2f2dd169f..fca132432 100644 --- a/apps/api/src/domain/media/MediaService.test.ts +++ b/apps/api/src/domain/media/MediaService.test.ts @@ -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', () => { diff --git a/apps/api/src/domain/notifications/NotificationsProviders.ts b/apps/api/src/domain/notifications/NotificationsProviders.ts index 26898c11b..e4ba81ebc 100644 --- a/apps/api/src/domain/notifications/NotificationsProviders.ts +++ b/apps/api/src/domain/notifications/NotificationsProviders.ts @@ -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, diff --git a/apps/api/src/domain/payments/PaymentsProviders.ts b/apps/api/src/domain/payments/PaymentsProviders.ts index c9157fae3..bd61e81e3 100644 --- a/apps/api/src/domain/payments/PaymentsProviders.ts +++ b/apps/api/src/domain/payments/PaymentsProviders.ts @@ -1,10 +1,10 @@ import { Provider } from '@nestjs/common'; // Import core interfaces -import type { 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'; diff --git a/apps/api/src/domain/payments/PaymentsService.test.ts b/apps/api/src/domain/payments/PaymentsService.test.ts index d0faea02c..4fdb39bf2 100644 --- a/apps/api/src/domain/payments/PaymentsService.test.ts +++ b/apps/api/src/domain/payments/PaymentsService.test.ts @@ -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', () => { diff --git a/apps/api/src/domain/protests/ProtestsProviders.ts b/apps/api/src/domain/protests/ProtestsProviders.ts index 6d7780b78..0bac1801f 100644 --- a/apps/api/src/domain/protests/ProtestsProviders.ts +++ b/apps/api/src/domain/protests/ProtestsProviders.ts @@ -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 diff --git a/apps/api/src/domain/protests/ProtestsService.test.ts b/apps/api/src/domain/protests/ProtestsService.test.ts index ca283d888..6062787e2 100644 --- a/apps/api/src/domain/protests/ProtestsService.test.ts +++ b/apps/api/src/domain/protests/ProtestsService.test.ts @@ -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, diff --git a/apps/api/src/domain/race/RaceProviders.ts b/apps/api/src/domain/race/RaceProviders.ts index 39152b495..fd11de12f 100644 --- a/apps/api/src/domain/race/RaceProviders.ts +++ b/apps/api/src/domain/race/RaceProviders.ts @@ -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 diff --git a/apps/api/src/domain/race/RaceService.test.ts b/apps/api/src/domain/race/RaceService.test.ts index 616d14f28..f0047950f 100644 --- a/apps/api/src/domain/race/RaceService.test.ts +++ b/apps/api/src/domain/race/RaceService.test.ts @@ -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 () => { diff --git a/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts b/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts index b67ffa9b8..4333b031a 100644 --- a/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts +++ b/apps/api/src/domain/race/presenters/RaceDetailPresenter.ts @@ -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'; diff --git a/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts b/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts index 452f1f8e3..2b8c648bb 100644 --- a/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts +++ b/apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts @@ -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'; diff --git a/apps/api/src/domain/sponsor/SponsorProviders.ts b/apps/api/src/domain/sponsor/SponsorProviders.ts index 15af81cc8..4088a6d49 100644 --- a/apps/api/src/domain/sponsor/SponsorProviders.ts +++ b/apps/api/src/domain/sponsor/SponsorProviders.ts @@ -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'; diff --git a/apps/api/src/domain/sponsor/SponsorService.test.ts b/apps/api/src/domain/sponsor/SponsorService.test.ts index 9201d25f4..cb3a26ff5 100644 --- a/apps/api/src/domain/sponsor/SponsorService.test.ts +++ b/apps/api/src/domain/sponsor/SponsorService.test.ts @@ -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'; diff --git a/apps/api/src/domain/team/TeamProviders.ts b/apps/api/src/domain/team/TeamProviders.ts index 52a1494b3..384e662f9 100644 --- a/apps/api/src/domain/team/TeamProviders.ts +++ b/apps/api/src/domain/team/TeamProviders.ts @@ -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'; diff --git a/apps/api/src/domain/team/TeamService.test.ts b/apps/api/src/domain/team/TeamService.test.ts index 04ef21e01..907cd8f65 100644 --- a/apps/api/src/domain/team/TeamService.test.ts +++ b/apps/api/src/domain/team/TeamService.test.ts @@ -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'; diff --git a/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts b/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts index 74c4e92c6..71528d47c 100644 --- a/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts +++ b/apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts @@ -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 }; diff --git a/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts index 1fe486816..9ca4b2f2f 100644 --- a/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts index d016fce8b..5e3d7299f 100644 --- a/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts @@ -4,7 +4,7 @@ import { LoggingModule } from '../../domain/logging/LoggingModule'; import type { 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'; diff --git a/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts index ed0078acb..7e726eaee 100644 --- a/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts index 47e68631f..94c07b108 100644 --- a/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts index d08b4de91..9dab9ff5e 100644 --- a/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts index 72ccce77f..734210ab2 100644 --- a/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts b/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts index 493d34879..6b4bfdc95 100644 --- a/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts +++ b/apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts @@ -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, diff --git a/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts index d098aa68a..1f92df040 100644 --- a/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts @@ -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'; diff --git a/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts b/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts index df06f6052..4a863fd7a 100644 --- a/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts +++ b/apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts @@ -4,10 +4,10 @@ import type { DataSource } from 'typeorm'; import { LoggingModule } from '../../domain/logging/LoggingModule'; -import type { 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'; diff --git a/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts b/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts index 20f1bfba2..1e7620a6f 100644 --- a/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts +++ b/apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts @@ -10,8 +10,8 @@ import { DatabaseModule } from '../../domain/database/DatabaseModule'; import { PostgresSocialPersistenceModule } from '../postgres/PostgresSocialPersistenceModule'; import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from './SocialPersistenceTokens'; -import type { IFeedRepository } from '@core/social/domain/repositories/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'; diff --git a/apps/companion/main/automation/application/ports/AuthenticationServicePort.ts b/apps/companion/main/automation/application/ports/AuthenticationServicePort.ts index 8fc24faec..20aad2642 100644 --- a/apps/companion/main/automation/application/ports/AuthenticationServicePort.ts +++ b/apps/companion/main/automation/application/ports/AuthenticationServicePort.ts @@ -1,6 +1,6 @@ import { AuthenticationState } from '../../domain/value-objects/AuthenticationState'; import { BrowserAuthenticationState } from '../../domain/value-objects/BrowserAuthenticationState'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; /** * Port for authentication services implementing zero-knowledge login. diff --git a/apps/companion/main/automation/application/ports/CheckoutConfirmationPort.ts b/apps/companion/main/automation/application/ports/CheckoutConfirmationPort.ts index 6e7f04382..8b36b4a96 100644 --- a/apps/companion/main/automation/application/ports/CheckoutConfirmationPort.ts +++ b/apps/companion/main/automation/application/ports/CheckoutConfirmationPort.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { CheckoutConfirmation } from '../../domain/value-objects/CheckoutConfirmation'; import type { CheckoutConfirmationRequestDTO } from '../dto/CheckoutConfirmationRequestDTO'; diff --git a/apps/companion/main/automation/application/ports/CheckoutServicePort.ts b/apps/companion/main/automation/application/ports/CheckoutServicePort.ts index eb33a7ef1..3010f085f 100644 --- a/apps/companion/main/automation/application/ports/CheckoutServicePort.ts +++ b/apps/companion/main/automation/application/ports/CheckoutServicePort.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { CheckoutInfoDTO } from '../dto/CheckoutInfoDTO'; export interface CheckoutServicePort { diff --git a/apps/companion/main/automation/application/ports/SessionValidatorPort.ts b/apps/companion/main/automation/application/ports/SessionValidatorPort.ts index e38b40431..dd2b5ad17 100644 --- a/apps/companion/main/automation/application/ports/SessionValidatorPort.ts +++ b/apps/companion/main/automation/application/ports/SessionValidatorPort.ts @@ -1,4 +1,4 @@ -import type { Result } from '@core/shared/application/Result'; +import type { Result } from '@core/shared/domain/Result'; export interface SessionValidatorPort { validateSession(): Promise>; diff --git a/apps/companion/main/automation/application/services/OverlaySyncService.ts b/apps/companion/main/automation/application/services/OverlaySyncService.ts index 5820fafbb..5278628ab 100644 --- a/apps/companion/main/automation/application/services/OverlaySyncService.ts +++ b/apps/companion/main/automation/application/services/OverlaySyncService.ts @@ -4,7 +4,7 @@ import { AutomationLifecycleEmitterPort, LifecycleCallback } from '../ports/Auto import { LoggerPort } from '../ports/LoggerPort'; import type { IAsyncApplicationService } from '@core/shared/application'; import { OverlayAction, OverlaySyncPort } from '../ports/OverlaySyncPort'; -import { ActionAck } from '../ports/IOverlaySyncPort'; +import { ActionAck } from '../ports/OverlaySyncPort'; type ConstructorArgs = { lifecycleEmitter: AutomationLifecycleEmitterPort diff --git a/apps/companion/main/automation/application/use-cases/CheckAuthenticationUseCase.ts b/apps/companion/main/automation/application/use-cases/CheckAuthenticationUseCase.ts index bb4bdcdcf..b0f1b5bfe 100644 --- a/apps/companion/main/automation/application/use-cases/CheckAuthenticationUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/CheckAuthenticationUseCase.ts @@ -1,6 +1,6 @@ import { AuthenticationState } from '../../domain/value-objects/AuthenticationState'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { AuthenticationServicePort } from '../ports/AuthenticationServicePort'; import { SessionLifetime } from '../../domain/value-objects/SessionLifetime'; import type { SessionValidatorPort } from '../ports/SessionValidatorPort'; diff --git a/apps/companion/main/automation/application/use-cases/ClearSessionUseCase.ts b/apps/companion/main/automation/application/use-cases/ClearSessionUseCase.ts index a47c36467..9c9ad127e 100644 --- a/apps/companion/main/automation/application/use-cases/ClearSessionUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/ClearSessionUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { AuthenticationServicePort } from '../ports/AuthenticationServicePort'; import type { Logger } from '@core/shared/application'; diff --git a/apps/companion/main/automation/application/use-cases/CompleteRaceCreationUseCase.ts b/apps/companion/main/automation/application/use-cases/CompleteRaceCreationUseCase.ts index f6af8ed7f..4818d5789 100644 --- a/apps/companion/main/automation/application/use-cases/CompleteRaceCreationUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/CompleteRaceCreationUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { RaceCreationResult } from '../../domain/value-objects/RaceCreationResult'; import type { CheckoutServicePort } from '../ports/CheckoutServicePort'; import type { Logger } from '@core/shared/application'; diff --git a/apps/companion/main/automation/application/use-cases/ConfirmCheckoutUseCase.ts b/apps/companion/main/automation/application/use-cases/ConfirmCheckoutUseCase.ts index 0df8b3ef2..a13bcc72c 100644 --- a/apps/companion/main/automation/application/use-cases/ConfirmCheckoutUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/ConfirmCheckoutUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application'; import type { CheckoutServicePort } from '../ports/CheckoutServicePort'; import type { CheckoutConfirmationPort } from '../ports/CheckoutConfirmationPort'; diff --git a/apps/companion/main/automation/application/use-cases/InitiateLoginUseCase.ts b/apps/companion/main/automation/application/use-cases/InitiateLoginUseCase.ts index 7d02e20a0..06459441f 100644 --- a/apps/companion/main/automation/application/use-cases/InitiateLoginUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/InitiateLoginUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { AuthenticationServicePort } from '../ports/AuthenticationServicePort'; import type { Logger } from '@core/shared/application/Logger'; diff --git a/apps/companion/main/automation/application/use-cases/VerifyAuthenticatedPageUseCase.ts b/apps/companion/main/automation/application/use-cases/VerifyAuthenticatedPageUseCase.ts index 6ce21fff7..ac0bf9daf 100644 --- a/apps/companion/main/automation/application/use-cases/VerifyAuthenticatedPageUseCase.ts +++ b/apps/companion/main/automation/application/use-cases/VerifyAuthenticatedPageUseCase.ts @@ -1,5 +1,5 @@ import type { AuthenticationServicePort } from '../ports/AuthenticationServicePort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { BrowserAuthenticationState } from '../../domain/value-objects/BrowserAuthenticationState'; import type { Logger } from '@core/shared/application'; diff --git a/apps/companion/main/automation/domain/services/PageStateValidator.ts b/apps/companion/main/automation/domain/services/PageStateValidator.ts index 17561f34e..f83429490 100644 --- a/apps/companion/main/automation/domain/services/PageStateValidator.ts +++ b/apps/companion/main/automation/domain/services/PageStateValidator.ts @@ -1,5 +1,5 @@ import type { IDomainValidationService } from '@core/shared/domain'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; /** * Configuration for page state validation. diff --git a/apps/companion/main/automation/domain/services/StepTransitionValidator.ts b/apps/companion/main/automation/domain/services/StepTransitionValidator.ts index 7e52ee0ad..1442beec3 100644 --- a/apps/companion/main/automation/domain/services/StepTransitionValidator.ts +++ b/apps/companion/main/automation/domain/services/StepTransitionValidator.ts @@ -1,7 +1,7 @@ import { StepId } from '../value-objects/StepId'; import type { IDomainValidationService } from '@core/shared/domain'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { SessionState } from '../value-objects/SessionState'; export interface ValidationResult { diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/CheckoutPriceExtractor.ts b/apps/companion/main/automation/infrastructure/adapters/automation/CheckoutPriceExtractor.ts index acb8df2da..ce6052b92 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/CheckoutPriceExtractor.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/CheckoutPriceExtractor.ts @@ -1,8 +1,8 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { CheckoutPrice } from '../../../domain/value-objects/CheckoutPrice'; import { CheckoutState } from '../../../domain/value-objects/CheckoutState'; import type { CheckoutInfoDTO } from '../../../application/dto/CheckoutInfoDTO'; -import { IRACING_SELECTORS } from './dom/IRacingSelectors'; +import { IRACING_SELECTORS } from './dom/RacingSelectors'; interface Page { locator(_selector: string): Locator; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/auth/IRacingPlaywrightAuthFlow.ts b/apps/companion/main/automation/infrastructure/adapters/automation/auth/IRacingPlaywrightAuthFlow.ts index 00fbfda19..e93f4df56 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/auth/IRacingPlaywrightAuthFlow.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/auth/IRacingPlaywrightAuthFlow.ts @@ -1,7 +1,7 @@ import type { Page } from 'playwright'; import type { LoggerPort } from 'apps/companion/main/automation/application/ports/LoggerPort'; import type { IPlaywrightAuthFlow } from './PlaywrightAuthFlow'; -import { IRACING_URLS, IRACING_SELECTORS, IRACING_TIMEOUTS } from '../dom/IRacingSelectors'; +import { IRACING_URLS, IRACING_SELECTORS, IRACING_TIMEOUTS } from '../dom/RacingSelectors'; import { AuthenticationGuard } from './AuthenticationGuard'; export class IRacingPlaywrightAuthFlow implements IPlaywrightAuthFlow { diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService.ts b/apps/companion/main/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService.ts index c475953bc..867882577 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/auth/PlaywrightAuthSessionService.ts @@ -5,7 +5,7 @@ import type { AuthenticationServicePort } from '../../../../application/ports/Au import type { LoggerPort } from '../../../../application/ports/LoggerPort'; import { AuthenticationState } from '../../../../domain/value-objects/AuthenticationState'; import { BrowserAuthenticationState } from '../../../../domain/value-objects/BrowserAuthenticationState'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { PlaywrightBrowserSession } from '../core/PlaywrightBrowserSession'; import { SessionCookieStore } from './SessionCookieStore'; import type { IPlaywrightAuthFlow } from './PlaywrightAuthFlow'; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/auth/SessionCookieStore.ts b/apps/companion/main/automation/infrastructure/adapters/automation/auth/SessionCookieStore.ts index 25689b3ae..f48004d6e 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/auth/SessionCookieStore.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/auth/SessionCookieStore.ts @@ -2,7 +2,7 @@ import * as fs from 'fs/promises'; import * as path from 'path'; import { AuthenticationState } from '../../../../domain/value-objects/AuthenticationState'; import { CookieConfiguration } from '../../../../domain/value-objects/CookieConfiguration'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { LoggerPort } from '../../../../application/ports/LoggerPort'; interface Cookie { diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/core/PlaywrightAutomationAdapter.ts b/apps/companion/main/automation/infrastructure/adapters/automation/core/PlaywrightAutomationAdapter.ts index 377e77b6e..b17d6aa6b 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/core/PlaywrightAutomationAdapter.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/core/PlaywrightAutomationAdapter.ts @@ -16,17 +16,17 @@ import type { ModalResultDTO } from '../../../../application/dto/ModalResultDTO' import type { AutomationResultDTO } from '../../../../application/dto/AutomationResultDTO'; import type { AuthenticationServicePort } from '../../../../application/ports/AuthenticationServicePort'; import type { LoggerPort } from '../../../../application/ports/LoggerPort'; -import { Result } from '@core/shared/application/Result'; -import { IRACING_SELECTORS, IRACING_URLS, IRACING_TIMEOUTS, BLOCKED_KEYWORDS } from '../dom/IRacingSelectors'; +import { Result } from '@core/shared/domain/Result'; +import { IRACING_SELECTORS, IRACING_URLS, IRACING_TIMEOUTS, BLOCKED_KEYWORDS } from '../dom/RacingSelectors'; import { SessionCookieStore } from '../auth/SessionCookieStore'; import { PlaywrightBrowserSession } from './PlaywrightBrowserSession'; import { PageStateValidator, PageStateValidation, PageStateValidationResult } from 'apps/companion/main/automation/domain/services/PageStateValidator'; -import { IRacingDomNavigator } from '../dom/IRacingDomNavigator'; +import { IRacingDomNavigator } from '../dom/RacingDomNavigator'; import { SafeClickService } from '../dom/SafeClickService'; -import { IRacingDomInteractor } from '../dom/IRacingDomInteractor'; +import { IRacingDomInteractor } from '../dom/RacingDomInteractor'; import { PlaywrightAuthSessionService } from '../auth/PlaywrightAuthSessionService'; -import { IRacingPlaywrightAuthFlow } from '../auth/IRacingPlaywrightAuthFlow'; +import { IRacingPlaywrightAuthFlow } from '../auth/RacingPlaywrightAuthFlow'; import { WizardStepOrchestrator } from './WizardStepOrchestrator'; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/core/WizardStepOrchestrator.ts b/apps/companion/main/automation/infrastructure/adapters/automation/core/WizardStepOrchestrator.ts index 1d4aa839a..40d4feeb2 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/core/WizardStepOrchestrator.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/core/WizardStepOrchestrator.ts @@ -10,15 +10,15 @@ import { CheckoutState } from '../../../../domain/value-objects/CheckoutState'; import { CheckoutConfirmation } from '../../../../domain/value-objects/CheckoutConfirmation'; import type { PlaywrightConfig } from './PlaywrightAutomationAdapter'; import { PlaywrightBrowserSession } from './PlaywrightBrowserSession'; -import { IRacingDomNavigator } from '../dom/IRacingDomNavigator'; -import { IRacingDomInteractor } from '../dom/IRacingDomInteractor'; -import { IRACING_SELECTORS } from '../dom/IRacingSelectors'; +import { IRacingDomNavigator } from '../dom/RacingDomNavigator'; +import { IRacingDomInteractor } from '../dom/RacingDomInteractor'; +import { IRACING_SELECTORS } from '../dom/RacingSelectors'; import type { PageStateValidation, PageStateValidationResult, } from '../../../../domain/services/PageStateValidator'; -import type { Result } from '@core/shared/application/Result'; +import type { Result } from '@core/shared/domain/Result'; interface WizardStepOrchestratorDeps { config: Required; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomInteractor.ts b/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomInteractor.ts index ada95f053..32602db1d 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomInteractor.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomInteractor.ts @@ -6,7 +6,7 @@ import type { ModalResultDTO } from '../../../../application/dto/ModalResultDTO' import { StepId } from '../../../../domain/value-objects/StepId'; import type { PlaywrightConfig } from '../core/PlaywrightAutomationAdapter'; import { PlaywrightBrowserSession } from '../core/PlaywrightBrowserSession'; -import { IRACING_SELECTORS, IRACING_TIMEOUTS } from './IRacingSelectors'; +import { IRACING_SELECTORS, IRACING_TIMEOUTS } from './RacingSelectors'; import { SafeClickService } from './SafeClickService'; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomNavigator.ts b/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomNavigator.ts index af23f1ea5..b753a83ed 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomNavigator.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/dom/IRacingDomNavigator.ts @@ -4,7 +4,7 @@ import type { NavigationResultDTO } from '../../../../application/dto/Navigation import type { WaitResultDTO } from '../../../../application/dto/WaitResultDTO'; import type { PlaywrightConfig } from '../core/PlaywrightAutomationAdapter'; import { PlaywrightBrowserSession } from '../core/PlaywrightBrowserSession'; -import { IRACING_SELECTORS, IRACING_TIMEOUTS, IRACING_URLS } from './IRacingSelectors'; +import { IRACING_SELECTORS, IRACING_TIMEOUTS, IRACING_URLS } from './RacingSelectors'; export class IRacingDomNavigator { private static readonly STEP_TO_PAGE_MAP: Record = { diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/dom/SafeClickService.ts b/apps/companion/main/automation/infrastructure/adapters/automation/dom/SafeClickService.ts index 6a33d5063..7ae5c5044 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/dom/SafeClickService.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/dom/SafeClickService.ts @@ -1,6 +1,6 @@ import type { Page } from 'playwright'; import type { LoggerPort } from 'apps/companion/main/automation/application/ports/LoggerPort'; -import { IRACING_SELECTORS, BLOCKED_KEYWORDS } from './IRacingSelectors'; +import { IRACING_SELECTORS, BLOCKED_KEYWORDS } from './RacingSelectors'; import type { PlaywrightConfig } from '../core/PlaywrightAutomationAdapter'; import { PlaywrightBrowserSession } from '../core/PlaywrightBrowserSession'; diff --git a/apps/companion/main/automation/infrastructure/adapters/automation/engine/MockBrowserAutomationAdapter.ts b/apps/companion/main/automation/infrastructure/adapters/automation/engine/MockBrowserAutomationAdapter.ts index 97928ff52..c871b2e3c 100644 --- a/apps/companion/main/automation/infrastructure/adapters/automation/engine/MockBrowserAutomationAdapter.ts +++ b/apps/companion/main/automation/infrastructure/adapters/automation/engine/MockBrowserAutomationAdapter.ts @@ -6,7 +6,7 @@ import type { ClickResultDTO } from '../../../../application/dto/ClickResultDTO' import type { WaitResultDTO } from '../../../../application/dto/WaitResultDTO'; import type { ModalResultDTO } from '../../../../application/dto/ModalResultDTO'; import type { AutomationResultDTO } from '../../../../application/dto/AutomationResultDTO'; -import type { IAutomationLifecycleEmitter, LifecycleCallback } from '../../IAutomationLifecycleEmitter'; +import type { IAutomationLifecycleEmitter, LifecycleCallback } from '../../AutomationLifecycleEmitter'; interface MockConfig { simulateFailures?: boolean; diff --git a/apps/companion/main/automation/infrastructure/adapters/ipc/ElectronCheckoutConfirmationAdapter.ts b/apps/companion/main/automation/infrastructure/adapters/ipc/ElectronCheckoutConfirmationAdapter.ts index cf3eb9dc3..657634ee7 100644 --- a/apps/companion/main/automation/infrastructure/adapters/ipc/ElectronCheckoutConfirmationAdapter.ts +++ b/apps/companion/main/automation/infrastructure/adapters/ipc/ElectronCheckoutConfirmationAdapter.ts @@ -5,7 +5,7 @@ import type { BrowserWindow } from 'electron'; import { ipcMain } from 'electron'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { CheckoutConfirmationPort } from '../../../application/ports/CheckoutConfirmationPort'; import type { CheckoutConfirmationRequestDTO } from '../../../application/dto/CheckoutConfirmationRequestDTO'; import { CheckoutConfirmation } from '../../../domain/value-objects/CheckoutConfirmation'; diff --git a/apps/companion/main/di-config.ts b/apps/companion/main/di-config.ts index a181a4da6..d6fa6811e 100644 --- a/apps/companion/main/di-config.ts +++ b/apps/companion/main/di-config.ts @@ -18,7 +18,7 @@ import { InitiateLoginUseCase } from 'apps/companion/main/automation/application import { ClearSessionUseCase } from 'apps/companion/main/automation/application/use-cases/ClearSessionUseCase'; import { ConfirmCheckoutUseCase } from 'apps/companion/main/automation/application/use-cases/ConfirmCheckoutUseCase'; import { OverlaySyncService } from 'apps/companion/main/automation/application/services/OverlaySyncService'; -import type { IAutomationLifecycleEmitter } from '@core/automation/infrastructure//IAutomationLifecycleEmitter'; +import type { IAutomationLifecycleEmitter } from '@core/automation/infrastructure//AutomationLifecycleEmitter'; // Infrastructure import { InMemorySessionRepository } from 'apps/companion/main/automation/infrastructure/repositories/InMemorySessionRepository'; diff --git a/apps/companion/main/ipc-handlers.ts b/apps/companion/main/ipc-handlers.ts index a666f757b..f2618501a 100644 --- a/apps/companion/main/ipc-handlers.ts +++ b/apps/companion/main/ipc-handlers.ts @@ -6,7 +6,7 @@ import { StepId } from 'apps/companion/main/automation/domain/value-objects/Step import { AuthenticationState } from 'apps/companion/main/automation/domain/value-objects/AuthenticationState'; import { ElectronCheckoutConfirmationAdapter } from 'core/automation/infrastructure//ipc/ElectronCheckoutConfirmationAdapter'; import type { OverlayAction } from 'apps/companion/main/automation/application/ports/OverlaySyncPort'; -import type { IAutomationLifecycleEmitter } from 'core/automation/infrastructure//IAutomationLifecycleEmitter'; +import type { IAutomationLifecycleEmitter } from 'core/automation/infrastructure//AutomationLifecycleEmitter'; let progressMonitorInterval: NodeJS.Timeout | null = null; let lifecycleSubscribed = false; diff --git a/core/admin/application/ports/IAdminUserRepository.ts b/core/admin/application/ports/AdminUserRepository.ts similarity index 97% rename from core/admin/application/ports/IAdminUserRepository.ts rename to core/admin/application/ports/AdminUserRepository.ts index 03f25f36f..0b08ab009 100644 --- a/core/admin/application/ports/IAdminUserRepository.ts +++ b/core/admin/application/ports/AdminUserRepository.ts @@ -39,7 +39,7 @@ export interface UserListResult { * Output port for user management operations * Implemented by infrastructure layer */ -export interface IAdminUserRepository { +export interface AdminUserRepository { findById(id: UserId): Promise; findByEmail(email: Email): Promise; emailExists(email: Email): Promise; diff --git a/core/admin/application/use-cases/ListUsersUseCase.test.ts b/core/admin/application/use-cases/ListUsersUseCase.test.ts index 44fc79395..8f343ae13 100644 --- a/core/admin/application/use-cases/ListUsersUseCase.test.ts +++ b/core/admin/application/use-cases/ListUsersUseCase.test.ts @@ -1,6 +1,6 @@ import { vi, describe, it, expect, beforeEach } from 'vitest'; import { ListUsersUseCase, ListUsersResult } from './ListUsersUseCase'; -import { IAdminUserRepository } from '../ports/IAdminUserRepository'; +import { AdminUserRepository } from '../ports/AdminUserRepository'; import { AdminUser } from '../../domain/entities/AdminUser'; import { AuthorizationService } from '../../domain/services/AuthorizationService'; diff --git a/core/admin/application/use-cases/ListUsersUseCase.ts b/core/admin/application/use-cases/ListUsersUseCase.ts index 7f9dc222c..f12e93d44 100644 --- a/core/admin/application/use-cases/ListUsersUseCase.ts +++ b/core/admin/application/use-cases/ListUsersUseCase.ts @@ -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 '../ports/IAdminUserRepository'; +import type { AdminUserRepository } from '../ports/AdminUserRepository'; import { AuthorizationService } from '../../domain/services/AuthorizationService'; import { UserId } from '../../domain/value-objects/UserId'; import { UserRole } from '../../domain/value-objects/UserRole'; diff --git a/core/admin/domain/entities/AdminUser.ts b/core/admin/domain/entities/AdminUser.ts index 9578a076a..90d7a259a 100644 --- a/core/admin/domain/entities/AdminUser.ts +++ b/core/admin/domain/entities/AdminUser.ts @@ -1,4 +1,4 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { UserId } from '../value-objects/UserId'; import { Email } from '../value-objects/Email'; import { UserRole } from '../value-objects/UserRole'; @@ -17,7 +17,7 @@ export interface AdminUserProps { primaryDriverId: string | undefined; } -export class AdminUser implements IEntity { +export class AdminUser implements Entity { readonly id: UserId; private _email: Email; private _roles: UserRole[]; diff --git a/core/admin/domain/errors/AdminDomainError.ts b/core/admin/domain/errors/AdminDomainError.ts index 0a594f2e9..eb342d58e 100644 --- a/core/admin/domain/errors/AdminDomainError.ts +++ b/core/admin/domain/errors/AdminDomainError.ts @@ -1,6 +1,6 @@ -import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors'; +import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors'; -export abstract class AdminDomainError extends Error implements IDomainError { +export abstract class AdminDomainError extends Error implements DomainError { readonly type = 'domain' as const; readonly context = 'admin-domain'; abstract readonly kind: CommonDomainErrorKind; @@ -13,7 +13,7 @@ export abstract class AdminDomainError extends Error implements IDomainError + implements DomainError<'validation'> { readonly kind = 'validation' as const; @@ -24,7 +24,7 @@ export class AdminDomainValidationError export class AdminDomainInvariantError extends AdminDomainError - implements IDomainError<'invariant'> + implements DomainError<'invariant'> { readonly kind = 'invariant' as const; @@ -35,7 +35,7 @@ export class AdminDomainInvariantError export class AuthorizationError extends AdminDomainError - implements IDomainError<'authorization'> + implements DomainError<'authorization'> { readonly kind = 'authorization' as const; diff --git a/core/admin/domain/repositories/IAdminUserRepository.ts b/core/admin/domain/repositories/AdminUserRepository.ts similarity index 98% rename from core/admin/domain/repositories/IAdminUserRepository.ts rename to core/admin/domain/repositories/AdminUserRepository.ts index 2661633d5..14277adc7 100644 --- a/core/admin/domain/repositories/IAdminUserRepository.ts +++ b/core/admin/domain/repositories/AdminUserRepository.ts @@ -51,7 +51,7 @@ export interface StoredAdminUser { * Repository interface for AdminUser entity * Follows clean architecture - this is an output port from application layer */ -export interface IAdminUserRepository { +export interface AdminUserRepository { /** * Find user by ID */ diff --git a/core/admin/domain/value-objects/Email.ts b/core/admin/domain/value-objects/Email.ts index d43191ed9..ed162c8f6 100644 --- a/core/admin/domain/value-objects/Email.ts +++ b/core/admin/domain/value-objects/Email.ts @@ -1,11 +1,11 @@ -import { IValueObject } from '@core/shared/domain'; +import { ValueObject } from '@core/shared/domain'; import { AdminDomainValidationError } from '../errors/AdminDomainError'; export interface EmailProps { value: string; } -export class Email implements IValueObject { +export class Email implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/admin/domain/value-objects/UserId.ts b/core/admin/domain/value-objects/UserId.ts index ebd6bda3b..c0ff65e03 100644 --- a/core/admin/domain/value-objects/UserId.ts +++ b/core/admin/domain/value-objects/UserId.ts @@ -1,11 +1,11 @@ -import { IValueObject } from '@core/shared/domain'; +import { ValueObject } from '@core/shared/domain'; import { AdminDomainValidationError } from '../errors/AdminDomainError'; export interface UserIdProps { value: string; } -export class UserId implements IValueObject { +export class UserId implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/admin/domain/value-objects/UserRole.ts b/core/admin/domain/value-objects/UserRole.ts index 472285900..21f777adf 100644 --- a/core/admin/domain/value-objects/UserRole.ts +++ b/core/admin/domain/value-objects/UserRole.ts @@ -1,4 +1,4 @@ -import { IValueObject } from '@core/shared/domain'; +import { ValueObject } from '@core/shared/domain'; import { AdminDomainValidationError } from '../errors/AdminDomainError'; export type UserRoleValue = string; @@ -7,7 +7,7 @@ export interface UserRoleProps { value: UserRoleValue; } -export class UserRole implements IValueObject { +export class UserRole implements ValueObject { readonly value: UserRoleValue; private constructor(value: UserRoleValue) { diff --git a/core/admin/domain/value-objects/UserStatus.ts b/core/admin/domain/value-objects/UserStatus.ts index 6b771c70e..50ccb1d40 100644 --- a/core/admin/domain/value-objects/UserStatus.ts +++ b/core/admin/domain/value-objects/UserStatus.ts @@ -1,4 +1,4 @@ -import { IValueObject } from '@core/shared/domain'; +import { ValueObject } from '@core/shared/domain'; import { AdminDomainValidationError } from '../errors/AdminDomainError'; export type UserStatusValue = string; @@ -7,7 +7,7 @@ export interface UserStatusProps { value: UserStatusValue; } -export class UserStatus implements IValueObject { +export class UserStatus implements ValueObject { readonly value: UserStatusValue; private constructor(value: UserStatusValue) { diff --git a/core/admin/infrastructure/persistence/InMemoryAdminUserRepository.ts b/core/admin/infrastructure/persistence/InMemoryAdminUserRepository.ts index 659b1ae1f..8d3bdb8ba 100644 --- a/core/admin/infrastructure/persistence/InMemoryAdminUserRepository.ts +++ b/core/admin/infrastructure/persistence/InMemoryAdminUserRepository.ts @@ -1,4 +1,4 @@ -import { IAdminUserRepository, UserFilter, UserListQuery, UserListResult, StoredAdminUser } from '../../domain/repositories/IAdminUserRepository'; +import { AdminUserRepository, UserFilter, UserListQuery, UserListResult, StoredAdminUser } from '../../domain/repositories/AdminUserRepository'; import { AdminUser } from '../../domain/entities/AdminUser'; import { UserId } from '../../domain/value-objects/UserId'; import { Email } from '../../domain/value-objects/Email'; @@ -7,7 +7,7 @@ import { Email } from '../../domain/value-objects/Email'; * In-memory implementation of AdminUserRepository for testing and development * Follows TDD - created with tests first */ -export class InMemoryAdminUserRepository implements IAdminUserRepository { +export class InMemoryAdminUserRepository implements AdminUserRepository { private storage: Map = new Map(); async findById(id: UserId): Promise { diff --git a/core/admin/infrastructure/typeorm/repositories/TypeOrmAdminUserRepository.ts b/core/admin/infrastructure/typeorm/repositories/TypeOrmAdminUserRepository.ts index 62a6de11f..5c1a40518 100644 --- a/core/admin/infrastructure/typeorm/repositories/TypeOrmAdminUserRepository.ts +++ b/core/admin/infrastructure/typeorm/repositories/TypeOrmAdminUserRepository.ts @@ -1,12 +1,12 @@ import type { DataSource, Repository } from 'typeorm'; -import type { IAdminUserRepository, UserListQuery, UserListResult, UserFilter, StoredAdminUser } from '@core/admin/domain/repositories/IAdminUserRepository'; +import type { AdminUserRepository, UserListQuery, UserListResult, UserFilter, StoredAdminUser } from '@core/admin/domain/repositories/AdminUserRepository'; import { AdminUser } from '@core/admin/domain/entities/AdminUser'; import { AdminUserOrmEntity } from '../entities/AdminUserOrmEntity'; import { AdminUserOrmMapper } from '../mappers/AdminUserOrmMapper'; import { Email } from '@core/admin/domain/value-objects/Email'; import { UserId } from '@core/admin/domain/value-objects/UserId'; -export class TypeOrmAdminUserRepository implements IAdminUserRepository { +export class TypeOrmAdminUserRepository implements AdminUserRepository { private readonly repository: Repository; private readonly mapper: AdminUserOrmMapper; diff --git a/core/analytics/application/repositories/IPageViewRepository.ts b/core/analytics/application/repositories/PageViewRepository.ts similarity index 94% rename from core/analytics/application/repositories/IPageViewRepository.ts rename to core/analytics/application/repositories/PageViewRepository.ts index 1346c89c2..83b5a8004 100644 --- a/core/analytics/application/repositories/IPageViewRepository.ts +++ b/core/analytics/application/repositories/PageViewRepository.ts @@ -1,7 +1,7 @@ import { PageView } from '../../domain/entities/PageView'; import { EntityType } from '../../domain/types/PageView'; -export interface IPageViewRepository { +export interface PageViewRepository { save(pageView: PageView): Promise; findById(id: string): Promise; findByEntityId(entityType: EntityType, entityId: string): Promise; diff --git a/core/analytics/application/use-cases/GetAnalyticsMetricsUseCase.ts b/core/analytics/application/use-cases/GetAnalyticsMetricsUseCase.ts index 747a53f90..2a760deef 100644 --- a/core/analytics/application/use-cases/GetAnalyticsMetricsUseCase.ts +++ b/core/analytics/application/use-cases/GetAnalyticsMetricsUseCase.ts @@ -1,7 +1,7 @@ import type { Logger, UseCase } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IPageViewRepository } from '../repositories/IPageViewRepository'; +import type { PageViewRepository } from '../repositories/PageViewRepository'; export interface GetAnalyticsMetricsInput { startDate?: Date; diff --git a/core/analytics/application/use-cases/GetDashboardDataUseCase.ts b/core/analytics/application/use-cases/GetDashboardDataUseCase.ts index d1615111d..3b09fd3e5 100644 --- a/core/analytics/application/use-cases/GetDashboardDataUseCase.ts +++ b/core/analytics/application/use-cases/GetDashboardDataUseCase.ts @@ -1,5 +1,5 @@ import type { Logger, UseCase } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetDashboardDataInput {} diff --git a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts index 07b2ef0dd..fe53bd0c3 100644 --- a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts +++ b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetEntityAnalyticsQuery, type GetEntityAnalyticsInput } from './GetEntityAnalyticsQuery'; -import type { IPageViewRepository } from '../repositories/IPageViewRepository'; -import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository'; -import type { Logger } from '@core/shared/application'; +import type { PageViewRepository } from '../repositories/PageViewRepository'; +import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; +import type { Logger } from '@core/shared/domain'; import type { EntityType } from '../../domain/types/PageView'; describe('GetEntityAnalyticsQuery', () => { diff --git a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.ts b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.ts index ee27c7e07..6cbdc668f 100644 --- a/core/analytics/application/use-cases/GetEntityAnalyticsQuery.ts +++ b/core/analytics/application/use-cases/GetEntityAnalyticsQuery.ts @@ -6,11 +6,11 @@ */ import type { AsyncUseCase , Logger } from '@core/shared/application'; -import type { IPageViewRepository } from '../repositories/IPageViewRepository'; -import type { IEngagementRepository } from '@core/analytics/domain/repositories/IEngagementRepository'; +import type { PageViewRepository } from '../repositories/PageViewRepository'; +import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository'; import type { EntityType } from '../../domain/types/PageView'; import type { SnapshotPeriod } from '../../domain/types/AnalyticsSnapshot'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetEntityAnalyticsInput { diff --git a/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts b/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts index acf01d09c..b23541f5a 100644 --- a/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts +++ b/core/analytics/application/use-cases/RecordEngagementUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { RecordEngagementUseCase, type RecordEngagementInput } from './RecordEngagementUseCase'; -import type { IEngagementRepository } from '../../domain/repositories/IEngagementRepository'; +import type { EngagementRepository } from '../../domain/repositories/EngagementRepository'; import { EngagementEvent } from '../../domain/entities/EngagementEvent'; import type { Logger } from '@core/shared/application'; import type { EngagementAction, EngagementEntityType } from '../../domain/types/EngagementEvent'; diff --git a/core/analytics/application/use-cases/RecordEngagementUseCase.ts b/core/analytics/application/use-cases/RecordEngagementUseCase.ts index b7d1ded24..219ed778e 100644 --- a/core/analytics/application/use-cases/RecordEngagementUseCase.ts +++ b/core/analytics/application/use-cases/RecordEngagementUseCase.ts @@ -1,8 +1,8 @@ import type { Logger, UseCase } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { EngagementEvent } from '../../domain/entities/EngagementEvent'; -import type { IEngagementRepository } from '../../domain/repositories/IEngagementRepository'; +import type { EngagementRepository } from '../../domain/repositories/EngagementRepository'; import type { EngagementAction, EngagementEntityType } from '../../domain/types/EngagementEvent'; export interface RecordEngagementInput { diff --git a/core/analytics/application/use-cases/RecordPageViewUseCase.ts b/core/analytics/application/use-cases/RecordPageViewUseCase.ts index 5daa9a3e7..4d94de311 100644 --- a/core/analytics/application/use-cases/RecordPageViewUseCase.ts +++ b/core/analytics/application/use-cases/RecordPageViewUseCase.ts @@ -1,8 +1,8 @@ import type { Logger, UseCase } from '@core/shared/application'; -import type { IPageViewRepository } from '../repositories/IPageViewRepository'; +import type { PageViewRepository } from '../repositories/PageViewRepository'; import { PageView } from '../../domain/entities/PageView'; import type { EntityType, VisitorType } from '../../domain/types/PageView'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface RecordPageViewInput { diff --git a/core/analytics/domain/entities/AnalyticsSnapshot.ts b/core/analytics/domain/entities/AnalyticsSnapshot.ts index e1737856e..e15f22e0f 100644 --- a/core/analytics/domain/entities/AnalyticsSnapshot.ts +++ b/core/analytics/domain/entities/AnalyticsSnapshot.ts @@ -5,7 +5,7 @@ * Pre-calculated metrics for sponsor dashboard and entity analytics. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { AnalyticsSnapshotProps, AnalyticsMetrics, @@ -15,7 +15,7 @@ import type { export type { SnapshotEntityType, SnapshotPeriod } from '../types/AnalyticsSnapshot'; import { AnalyticsEntityId } from '../value-objects/AnalyticsEntityId'; -export class AnalyticsSnapshot implements IEntity { +export class AnalyticsSnapshot implements Entity { readonly id: string; readonly entityType: SnapshotEntityType; readonly period: SnapshotPeriod; diff --git a/core/analytics/domain/entities/EngagementEvent.ts b/core/analytics/domain/entities/EngagementEvent.ts index e8bb0f7dd..eeab6cf39 100644 --- a/core/analytics/domain/entities/EngagementEvent.ts +++ b/core/analytics/domain/entities/EngagementEvent.ts @@ -5,7 +5,7 @@ * Tracks clicks, downloads, sign-ups, and other engagement actions. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { EngagementAction, EngagementEntityType, @@ -15,7 +15,7 @@ import type { export type { EngagementAction, EngagementEntityType } from '../types/EngagementEvent'; import { AnalyticsEntityId } from '../value-objects/AnalyticsEntityId'; -export class EngagementEvent implements IEntity { +export class EngagementEvent implements Entity { readonly id: string; readonly action: EngagementAction; readonly entityType: EngagementEntityType; diff --git a/core/analytics/domain/entities/PageView.ts b/core/analytics/domain/entities/PageView.ts index 9014c3a86..63e5df702 100644 --- a/core/analytics/domain/entities/PageView.ts +++ b/core/analytics/domain/entities/PageView.ts @@ -5,7 +5,7 @@ * Captures visitor interactions with leagues, drivers, teams, races. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { EntityType, VisitorType, PageViewProps } from '../types/PageView'; export type { EntityType, VisitorType } from '../types/PageView'; @@ -13,7 +13,7 @@ import { AnalyticsEntityId } from '../value-objects/AnalyticsEntityId'; import { AnalyticsSessionId } from '../value-objects/AnalyticsSessionId'; import { PageViewId } from '../value-objects/PageViewId'; -export class PageView implements IEntity { +export class PageView implements Entity { readonly entityType: EntityType; readonly visitorId: string | undefined; readonly visitorType: VisitorType; diff --git a/core/analytics/domain/repositories/IAnalyticsSnapshotRepository.ts b/core/analytics/domain/repositories/AnalyticsSnapshotRepository.ts similarity index 95% rename from core/analytics/domain/repositories/IAnalyticsSnapshotRepository.ts rename to core/analytics/domain/repositories/AnalyticsSnapshotRepository.ts index f24d00d68..527c6271b 100644 --- a/core/analytics/domain/repositories/IAnalyticsSnapshotRepository.ts +++ b/core/analytics/domain/repositories/AnalyticsSnapshotRepository.ts @@ -6,7 +6,7 @@ import type { AnalyticsSnapshot, SnapshotPeriod, SnapshotEntityType } from '../entities/AnalyticsSnapshot'; -export interface IAnalyticsSnapshotRepository { +export interface AnalyticsSnapshotRepository { save(snapshot: AnalyticsSnapshot): Promise; findById(id: string): Promise; findByEntity(entityType: SnapshotEntityType, entityId: string): Promise; diff --git a/core/analytics/domain/repositories/IEngagementRepository.ts b/core/analytics/domain/repositories/EngagementRepository.ts similarity index 93% rename from core/analytics/domain/repositories/IEngagementRepository.ts rename to core/analytics/domain/repositories/EngagementRepository.ts index 0cff32fbc..987a2307f 100644 --- a/core/analytics/domain/repositories/IEngagementRepository.ts +++ b/core/analytics/domain/repositories/EngagementRepository.ts @@ -1,6 +1,6 @@ import type { EngagementEvent, EngagementAction, EngagementEntityType } from '../entities/EngagementEvent'; -export interface IEngagementRepository { +export interface EngagementRepository { save(event: EngagementEvent): Promise; findById(id: string): Promise; findByEntityId(entityType: EngagementEntityType, entityId: string): Promise; diff --git a/core/analytics/domain/repositories/IPageViewRepository.ts b/core/analytics/domain/repositories/PageViewRepository.ts similarity index 93% rename from core/analytics/domain/repositories/IPageViewRepository.ts rename to core/analytics/domain/repositories/PageViewRepository.ts index ce02fd878..60d3d31d9 100644 --- a/core/analytics/domain/repositories/IPageViewRepository.ts +++ b/core/analytics/domain/repositories/PageViewRepository.ts @@ -1,6 +1,6 @@ import type { PageView } from '../entities/PageView'; -export interface IPageViewRepository { +export interface PageViewRepository { save(pageView: PageView): Promise; findById(id: string): Promise; findByEntityId(entityId: string): Promise; diff --git a/core/analytics/domain/value-objects/AnalyticsEntityId.ts b/core/analytics/domain/value-objects/AnalyticsEntityId.ts index fb7743013..0a95db644 100644 --- a/core/analytics/domain/value-objects/AnalyticsEntityId.ts +++ b/core/analytics/domain/value-objects/AnalyticsEntityId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface AnalyticsEntityIdProps { value: string; @@ -10,7 +10,7 @@ export interface AnalyticsEntityIdProps { * Represents the ID of an entity (league, driver, team, race, sponsor) * within the analytics bounded context. */ -export class AnalyticsEntityId implements IValueObject { +export class AnalyticsEntityId implements ValueObject { public readonly props: AnalyticsEntityIdProps; private constructor(value: string) { diff --git a/core/analytics/domain/value-objects/AnalyticsSessionId.ts b/core/analytics/domain/value-objects/AnalyticsSessionId.ts index 0913d02ee..1635531c5 100644 --- a/core/analytics/domain/value-objects/AnalyticsSessionId.ts +++ b/core/analytics/domain/value-objects/AnalyticsSessionId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface AnalyticsSessionIdProps { value: string; @@ -9,7 +9,7 @@ export interface AnalyticsSessionIdProps { * * Represents an analytics session identifier within the analytics bounded context. */ -export class AnalyticsSessionId implements IValueObject { +export class AnalyticsSessionId implements ValueObject { public readonly props: AnalyticsSessionIdProps; private constructor(value: string) { diff --git a/core/analytics/domain/value-objects/PageViewId.ts b/core/analytics/domain/value-objects/PageViewId.ts index af211f6ab..0c54fea22 100644 --- a/core/analytics/domain/value-objects/PageViewId.ts +++ b/core/analytics/domain/value-objects/PageViewId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface PageViewIdProps { value: string; @@ -9,7 +9,7 @@ export interface PageViewIdProps { * * Represents the identifier of a PageView within the analytics bounded context. */ -export class PageViewId implements IValueObject { +export class PageViewId implements ValueObject { public readonly props: PageViewIdProps; private constructor(value: string) { diff --git a/core/analytics/index.ts b/core/analytics/index.ts deleted file mode 100644 index 95408355c..000000000 --- a/core/analytics/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @gridpilot/analytics - * - * Analytics bounded context - tracks page views, engagement events, - * and generates analytics snapshots for sponsor exposure metrics. - */ - -// Domain entities -export * from './domain/entities/PageView'; -export * from './domain/entities/EngagementEvent'; -export * from './domain/entities/AnalyticsSnapshot'; - -// Application repositories -export * from './application/repositories/IPageViewRepository'; -export * from './domain/repositories/IEngagementRepository'; -export * from './domain/repositories/IAnalyticsSnapshotRepository'; - -// Application use cases -export * from './application/use-cases/RecordPageViewUseCase'; -export * from './application/use-cases/RecordEngagementUseCase'; -export * from './application/use-cases/GetEntityAnalyticsQuery'; - -// Infrastructure (moved to adapters) \ No newline at end of file diff --git a/core/domain/media/MediaReference.ts b/core/domain/media/MediaReference.ts index cb66e700b..2586d7ec6 100644 --- a/core/domain/media/MediaReference.ts +++ b/core/domain/media/MediaReference.ts @@ -10,7 +10,7 @@ * Follows clean architecture and TDD principles. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; // Variant types for system-default references export type MediaVariant = 'avatar' | 'logo'; @@ -78,7 +78,7 @@ function isNoneRef(props: unknown): props is NoneRef { Object.keys(typedProps).length === 1; // Only 'type' property } -export class MediaReference implements IValueObject { +export class MediaReference implements ValueObject { public readonly props: MediaReferenceProps; private constructor(props: MediaReferenceProps) { diff --git a/core/identity/application/dtos/index.ts b/core/identity/application/dtos/index.ts deleted file mode 100644 index 7a56e8733..000000000 --- a/core/identity/application/dtos/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * DTOs Index - * - * Export all DTO types - */ - -export type { RatingSummaryDto, PlatformRatingDimension, ExternalGameRating, ExternalGameRatings } from './RatingSummaryDto'; -export type { LedgerEntryDto, LedgerFilter, PaginatedLedgerResult } from './LedgerEntryDto'; -export type { EligibilityFilterDto, EligibilityCondition, ParsedEligibilityFilter } from './EligibilityFilterDto'; -export type { EvaluationResultDto, EvaluationReason } from './EvaluationResultDto'; - -// Existing DTOs -export type { UserRatingDto, RatingDimensionDto } from './UserRatingDto'; diff --git a/core/identity/application/ports/IRaceResultsProvider.ts b/core/identity/application/ports/RaceResultsProvider.ts similarity index 95% rename from core/identity/application/ports/IRaceResultsProvider.ts rename to core/identity/application/ports/RaceResultsProvider.ts index 7e6c02d2e..c275fc841 100644 --- a/core/identity/application/ports/IRaceResultsProvider.ts +++ b/core/identity/application/ports/RaceResultsProvider.ts @@ -19,7 +19,7 @@ export interface RaceResultsData { results: RaceResultData[]; } -export interface IRaceResultsProvider { +export interface RaceResultsProvider { /** * Get race results by race ID * Returns null if race not found or no results diff --git a/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.test.ts b/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.test.ts index 41bc7a134..5864a839a 100644 --- a/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.test.ts +++ b/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.test.ts @@ -9,8 +9,8 @@ import { GameKey } from '../../domain/value-objects/GameKey'; import { UserRating } from '../../domain/value-objects/UserRating'; import { UserId } from '../../domain/value-objects/UserId'; import { GetLeagueEligibilityPreviewQuery, GetLeagueEligibilityPreviewQueryHandler } from './GetLeagueEligibilityPreviewQuery'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; -import { IExternalGameRatingRepository } from '../../domain/repositories/IExternalGameRatingRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; +import { ExternalGameRatingRepository } from '../../domain/repositories/ExternalGameRatingRepository'; describe('GetLeagueEligibilityPreviewQuery', () => { let mockUserRatingRepo: IUserRatingRepository; diff --git a/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.ts b/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.ts index 04e833b4f..fc0e41fb4 100644 --- a/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.ts +++ b/core/identity/application/queries/GetLeagueEligibilityPreviewQuery.ts @@ -8,8 +8,8 @@ import { EvaluationResultDto } from '../dtos/EvaluationResultDto'; import { EligibilityFilterDto } from '../dtos/EligibilityFilterDto'; import { EligibilityEvaluator, RatingData } from '../../domain/services/EligibilityEvaluator'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; -import { IExternalGameRatingRepository } from '../../domain/repositories/IExternalGameRatingRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; +import { ExternalGameRatingRepository } from '../../domain/repositories/ExternalGameRatingRepository'; export interface GetLeagueEligibilityPreviewQuery { userId: string; diff --git a/core/identity/application/queries/GetUserRatingLedgerQuery.ts b/core/identity/application/queries/GetUserRatingLedgerQuery.ts index cba63e71b..89da33c3d 100644 --- a/core/identity/application/queries/GetUserRatingLedgerQuery.ts +++ b/core/identity/application/queries/GetUserRatingLedgerQuery.ts @@ -5,7 +5,7 @@ */ import { LedgerEntryDto, LedgerFilter, PaginatedLedgerResult } from '../dtos/LedgerEntryDto'; -import { IRatingEventRepository, PaginatedQueryOptions, RatingEventFilter } from '../../domain/repositories/IRatingEventRepository'; +import { RatingEventRepository, PaginatedQueryOptions, RatingEventFilter } from '../../domain/repositories/RatingEventRepository'; export interface GetUserRatingLedgerQuery { userId: string; diff --git a/core/identity/application/queries/GetUserRatingsSummaryQuery.ts b/core/identity/application/queries/GetUserRatingsSummaryQuery.ts index 8a7336d13..82eabb9b8 100644 --- a/core/identity/application/queries/GetUserRatingsSummaryQuery.ts +++ b/core/identity/application/queries/GetUserRatingsSummaryQuery.ts @@ -6,9 +6,9 @@ */ import { RatingSummaryDto } from '../dtos/RatingSummaryDto'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; -import { IExternalGameRatingRepository } from '../../domain/repositories/IExternalGameRatingRepository'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; +import { ExternalGameRatingRepository } from '../../domain/repositories/ExternalGameRatingRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; export interface GetUserRatingsSummaryQuery { userId: string; diff --git a/core/identity/application/queries/index.ts b/core/identity/application/queries/index.ts deleted file mode 100644 index dcb6f9344..000000000 --- a/core/identity/application/queries/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Queries Index - * - * Export all query handlers and related types - */ - -// GetUserRatingsSummaryQuery -export type { GetUserRatingsSummaryQuery } from './GetUserRatingsSummaryQuery'; -export { GetUserRatingsSummaryQueryHandler } from './GetUserRatingsSummaryQuery'; - -// GetUserRatingLedgerQuery -export type { GetUserRatingLedgerQuery } from './GetUserRatingLedgerQuery'; -export { GetUserRatingLedgerQueryHandler } from './GetUserRatingLedgerQuery'; - -// GetLeagueEligibilityPreviewQuery -export type { GetLeagueEligibilityPreviewQuery } from './GetLeagueEligibilityPreviewQuery'; -export { GetLeagueEligibilityPreviewQueryHandler } from './GetLeagueEligibilityPreviewQuery'; diff --git a/core/identity/application/use-cases/AppendRatingEventsUseCase.test.ts b/core/identity/application/use-cases/AppendRatingEventsUseCase.test.ts index a5c1f7f05..d77531a4a 100644 --- a/core/identity/application/use-cases/AppendRatingEventsUseCase.test.ts +++ b/core/identity/application/use-cases/AppendRatingEventsUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it, vi, beforeEach } from 'vitest'; import { AppendRatingEventsUseCase, AppendRatingEventsInput } from './AppendRatingEventsUseCase'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { RatingEvent } from '../../domain/entities/RatingEvent'; import { UserRating } from '../../domain/value-objects/UserRating'; import { RatingEventId } from '../../domain/value-objects/RatingEventId'; diff --git a/core/identity/application/use-cases/AppendRatingEventsUseCase.ts b/core/identity/application/use-cases/AppendRatingEventsUseCase.ts index d248280ac..345d47a02 100644 --- a/core/identity/application/use-cases/AppendRatingEventsUseCase.ts +++ b/core/identity/application/use-cases/AppendRatingEventsUseCase.ts @@ -1,5 +1,5 @@ -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { RatingEventFactory } from '../../domain/services/RatingEventFactory'; import { RatingSnapshotCalculator } from '../../domain/services/RatingSnapshotCalculator'; import { RatingEvent } from '../../domain/entities/RatingEvent'; diff --git a/core/identity/application/use-cases/CastAdminVoteUseCase.ts b/core/identity/application/use-cases/CastAdminVoteUseCase.ts index 59f761ee4..bdba5189b 100644 --- a/core/identity/application/use-cases/CastAdminVoteUseCase.ts +++ b/core/identity/application/use-cases/CastAdminVoteUseCase.ts @@ -1,4 +1,4 @@ -import { IAdminVoteSessionRepository } from '../../domain/repositories/IAdminVoteSessionRepository'; +import { AdminVoteSessionRepository } from '../../domain/repositories/AdminVoteSessionRepository'; import { CastAdminVoteInput, CastAdminVoteOutput } from '../dtos/AdminVoteSessionDto'; /** diff --git a/core/identity/application/use-cases/CloseAdminVoteSessionUseCase.ts b/core/identity/application/use-cases/CloseAdminVoteSessionUseCase.ts index e86f1a758..82ab64b02 100644 --- a/core/identity/application/use-cases/CloseAdminVoteSessionUseCase.ts +++ b/core/identity/application/use-cases/CloseAdminVoteSessionUseCase.ts @@ -1,6 +1,6 @@ -import { IAdminVoteSessionRepository } from '../../domain/repositories/IAdminVoteSessionRepository'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { AdminVoteSessionRepository } from '../../domain/repositories/AdminVoteSessionRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { AdminTrustRatingCalculator } from '../../domain/services/AdminTrustRatingCalculator'; import { RatingSnapshotCalculator } from '../../domain/services/RatingSnapshotCalculator'; import { RatingEventFactory } from '../../domain/services/RatingEventFactory'; diff --git a/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts b/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts index f8a42a8ec..570d4d09b 100644 --- a/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts +++ b/core/identity/application/use-cases/ForgotPasswordUseCase.test.ts @@ -1,10 +1,10 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { ForgotPasswordUseCase } from './ForgotPasswordUseCase'; -import type { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import type { IMagicLinkRepository } from '../../domain/repositories/IMagicLinkRepository'; -import type { IMagicLinkNotificationPort } from '../../domain/ports/IMagicLinkNotificationPort'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { MagicLinkRepository } from '../../domain/repositories/MagicLinkRepository'; +import type { MagicLinkNotificationPort } from '../../domain/ports/MagicLinkNotificationPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { User } from '../../domain/entities/User'; import { UserId } from '../../domain/value-objects/UserId'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; diff --git a/core/identity/application/use-cases/ForgotPasswordUseCase.ts b/core/identity/application/use-cases/ForgotPasswordUseCase.ts index 20436a597..7c9459a91 100644 --- a/core/identity/application/use-cases/ForgotPasswordUseCase.ts +++ b/core/identity/application/use-cases/ForgotPasswordUseCase.ts @@ -1,8 +1,8 @@ import { EmailAddress } from '../../domain/value-objects/EmailAddress'; -import { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import { IMagicLinkRepository } from '../../domain/repositories/IMagicLinkRepository'; -import { IMagicLinkNotificationPort } from '../../domain/ports/IMagicLinkNotificationPort'; -import { Result } from '@core/shared/application/Result'; +import { AuthRepository } from '../../domain/repositories/AuthRepository'; +import { MagicLinkRepository } from '../../domain/repositories/MagicLinkRepository'; +import { MagicLinkNotificationPort } from '../../domain/ports/MagicLinkNotificationPort'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; import { randomBytes } from 'crypto'; diff --git a/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts b/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts index 19b4648b1..1489d96b6 100644 --- a/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts +++ b/core/identity/application/use-cases/GetCurrentSessionUseCase.test.ts @@ -1,9 +1,9 @@ import { vi, type Mock } from 'vitest'; import { GetCurrentSessionUseCase } from './GetCurrentSessionUseCase'; import { User } from '../../domain/entities/User'; -import { IUserRepository, StoredUser } from '../../domain/repositories/IUserRepository'; +import { UserRepository, StoredUser } from '../../domain/repositories/UserRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('GetCurrentSessionUseCase', () => { let useCase: GetCurrentSessionUseCase; diff --git a/core/identity/application/use-cases/GetCurrentSessionUseCase.ts b/core/identity/application/use-cases/GetCurrentSessionUseCase.ts index 102d93c23..1972d1fb2 100644 --- a/core/identity/application/use-cases/GetCurrentSessionUseCase.ts +++ b/core/identity/application/use-cases/GetCurrentSessionUseCase.ts @@ -1,6 +1,6 @@ import { User } from '../../domain/entities/User'; -import { IUserRepository } from '../../domain/repositories/IUserRepository'; -import { Result } from '@core/shared/application/Result'; +import { UserRepository } from '../../domain/repositories/UserRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/GetCurrentUserSessionUseCase.test.ts b/core/identity/application/use-cases/GetCurrentUserSessionUseCase.test.ts index 886b3c379..e23ac21a6 100644 --- a/core/identity/application/use-cases/GetCurrentUserSessionUseCase.test.ts +++ b/core/identity/application/use-cases/GetCurrentUserSessionUseCase.test.ts @@ -2,7 +2,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetCurrentUserSessionUseCase } from './GetCurrentUserSessionUseCase'; import type { AuthSession, IdentitySessionPort } from '../ports/IdentitySessionPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('GetCurrentUserSessionUseCase', () => { let sessionPort: { diff --git a/core/identity/application/use-cases/GetCurrentUserSessionUseCase.ts b/core/identity/application/use-cases/GetCurrentUserSessionUseCase.ts index 18bcf4012..6341bf398 100644 --- a/core/identity/application/use-cases/GetCurrentUserSessionUseCase.ts +++ b/core/identity/application/use-cases/GetCurrentUserSessionUseCase.ts @@ -1,5 +1,5 @@ import type { AuthSession, IdentitySessionPort } from '../ports/IdentitySessionPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/GetUserUseCase.test.ts b/core/identity/application/use-cases/GetUserUseCase.test.ts index c4c6e4379..59b362e0f 100644 --- a/core/identity/application/use-cases/GetUserUseCase.test.ts +++ b/core/identity/application/use-cases/GetUserUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetUserUseCase } from './GetUserUseCase'; -import type { IUserRepository } from '../../domain/repositories/IUserRepository'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { User } from '../../domain/entities/User'; import { UserId } from '../../domain/value-objects/UserId'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; diff --git a/core/identity/application/use-cases/GetUserUseCase.ts b/core/identity/application/use-cases/GetUserUseCase.ts index 309ebb2c9..303c4c398 100644 --- a/core/identity/application/use-cases/GetUserUseCase.ts +++ b/core/identity/application/use-cases/GetUserUseCase.ts @@ -1,6 +1,6 @@ import { User } from '../../domain/entities/User'; -import { IUserRepository } from '../../domain/repositories/IUserRepository'; -import { Result } from '@core/shared/application/Result'; +import { UserRepository } from '../../domain/repositories/UserRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/HandleAuthCallbackUseCase.test.ts b/core/identity/application/use-cases/HandleAuthCallbackUseCase.test.ts index a560c5128..395bb694e 100644 --- a/core/identity/application/use-cases/HandleAuthCallbackUseCase.test.ts +++ b/core/identity/application/use-cases/HandleAuthCallbackUseCase.test.ts @@ -3,7 +3,7 @@ import { HandleAuthCallbackUseCase } from './HandleAuthCallbackUseCase'; import type { IdentityProviderPort } from '../ports/IdentityProviderPort'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('HandleAuthCallbackUseCase', () => { let provider: { diff --git a/core/identity/application/use-cases/HandleAuthCallbackUseCase.ts b/core/identity/application/use-cases/HandleAuthCallbackUseCase.ts index c95b7f1e7..8300861b0 100644 --- a/core/identity/application/use-cases/HandleAuthCallbackUseCase.ts +++ b/core/identity/application/use-cases/HandleAuthCallbackUseCase.ts @@ -1,6 +1,6 @@ import type { AuthCallbackCommand, AuthenticatedUser, IdentityProviderPort } from '../ports/IdentityProviderPort'; import type { AuthSession, IdentitySessionPort } from '../ports/IdentitySessionPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/LoginUseCase.test.ts b/core/identity/application/use-cases/LoginUseCase.test.ts index 880f0f938..5399fb928 100644 --- a/core/identity/application/use-cases/LoginUseCase.test.ts +++ b/core/identity/application/use-cases/LoginUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { LoginUseCase } from './LoginUseCase'; -import type { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import type { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { User } from '../../domain/entities/User'; import { UserId } from '../../domain/value-objects/UserId'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; diff --git a/core/identity/application/use-cases/LoginUseCase.ts b/core/identity/application/use-cases/LoginUseCase.ts index 01707fe3d..b22e3a75a 100644 --- a/core/identity/application/use-cases/LoginUseCase.ts +++ b/core/identity/application/use-cases/LoginUseCase.ts @@ -1,8 +1,8 @@ import { EmailAddress } from '../../domain/value-objects/EmailAddress'; import { User } from '../../domain/entities/User'; -import { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; -import { Result } from '@core/shared/application/Result'; +import { AuthRepository } from '../../domain/repositories/AuthRepository'; +import { PasswordHashingService } from '../../domain/services/PasswordHashingService'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/LoginWithEmailUseCase.test.ts b/core/identity/application/use-cases/LoginWithEmailUseCase.test.ts index b4b958a4a..230670620 100644 --- a/core/identity/application/use-cases/LoginWithEmailUseCase.test.ts +++ b/core/identity/application/use-cases/LoginWithEmailUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock, beforeEach } from 'vitest'; import { LoginWithEmailUseCase } from './LoginWithEmailUseCase'; -import type { IUserRepository } from '../../domain/repositories/IUserRepository'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/LoginWithEmailUseCase.ts b/core/identity/application/use-cases/LoginWithEmailUseCase.ts index a245b66b0..4c6d54fa9 100644 --- a/core/identity/application/use-cases/LoginWithEmailUseCase.ts +++ b/core/identity/application/use-cases/LoginWithEmailUseCase.ts @@ -4,9 +4,9 @@ * Authenticates a user with email and password. */ -import type { IUserRepository } from '../../domain/repositories/IUserRepository'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import { PasswordHash } from '@core/identity/domain/value-objects/PasswordHash'; diff --git a/core/identity/application/use-cases/LogoutUseCase.test.ts b/core/identity/application/use-cases/LogoutUseCase.test.ts index 2cb68d2f8..7a89e5923 100644 --- a/core/identity/application/use-cases/LogoutUseCase.test.ts +++ b/core/identity/application/use-cases/LogoutUseCase.test.ts @@ -2,7 +2,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { LogoutUseCase } from './LogoutUseCase'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('LogoutUseCase', () => { let sessionPort: { diff --git a/core/identity/application/use-cases/LogoutUseCase.ts b/core/identity/application/use-cases/LogoutUseCase.ts index 59fbe3add..99529f799 100644 --- a/core/identity/application/use-cases/LogoutUseCase.ts +++ b/core/identity/application/use-cases/LogoutUseCase.ts @@ -1,5 +1,5 @@ import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/OpenAdminVoteSessionUseCase.ts b/core/identity/application/use-cases/OpenAdminVoteSessionUseCase.ts index d2cea97d3..51912f810 100644 --- a/core/identity/application/use-cases/OpenAdminVoteSessionUseCase.ts +++ b/core/identity/application/use-cases/OpenAdminVoteSessionUseCase.ts @@ -1,4 +1,4 @@ -import { IAdminVoteSessionRepository } from '../../domain/repositories/IAdminVoteSessionRepository'; +import { AdminVoteSessionRepository } from '../../domain/repositories/AdminVoteSessionRepository'; import { AdminVoteSession } from '../../domain/entities/AdminVoteSession'; import { OpenAdminVoteSessionInput, OpenAdminVoteSessionOutput } from '../dtos/AdminVoteSessionDto'; diff --git a/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.test.ts b/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.test.ts index c5ebe93e0..c5e86c0fd 100644 --- a/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.test.ts +++ b/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it, vi, beforeEach } from 'vitest'; import { RecomputeUserRatingSnapshotUseCase } from './RecomputeUserRatingSnapshotUseCase'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { UserRating } from '../../domain/value-objects/UserRating'; import { RatingEvent } from '../../domain/entities/RatingEvent'; import { RatingEventId } from '../../domain/value-objects/RatingEventId'; diff --git a/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.ts b/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.ts index ed8430a17..20636462e 100644 --- a/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.ts +++ b/core/identity/application/use-cases/RecomputeUserRatingSnapshotUseCase.ts @@ -1,5 +1,5 @@ -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { RatingSnapshotCalculator } from '../../domain/services/RatingSnapshotCalculator'; import { UserRatingDto } from '../dtos/UserRatingDto'; diff --git a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.integration.test.ts b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.integration.test.ts index 314100119..684f3e389 100644 --- a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.integration.test.ts +++ b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.integration.test.ts @@ -1,7 +1,7 @@ import { RecordRaceRatingEventsUseCase } from './RecordRaceRatingEventsUseCase'; -import { IRaceResultsProvider, RaceResultsData } from '../ports/IRaceResultsProvider'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RaceResultsProvider, RaceResultsData } from '../ports/RaceResultsProvider'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { AppendRatingEventsUseCase } from './AppendRatingEventsUseCase'; import { UserRating } from '../../domain/value-objects/UserRating'; import { RatingEvent } from '../../domain/entities/RatingEvent'; @@ -10,7 +10,7 @@ import { RatingDimensionKey } from '../../domain/value-objects/RatingDimensionKe import { RatingDelta } from '../../domain/value-objects/RatingDelta'; // In-memory implementations for integration testing -class InMemoryRaceResultsProvider implements IRaceResultsProvider { +class InMemoryRaceResultsProvider implements RaceResultsProvider { private results: Map = new Map(); async getRaceResults(raceId: string): Promise { @@ -27,7 +27,7 @@ class InMemoryRaceResultsProvider implements IRaceResultsProvider { } } -class InMemoryRatingEventRepository implements IRatingEventRepository { +class InMemoryRatingEventRepository implements RatingEventRepository { private events: Map = new Map(); async save(event: RatingEvent): Promise { @@ -52,7 +52,7 @@ class InMemoryRatingEventRepository implements IRatingEventRepository { return this.events.get(userId) || []; } - async findEventsPaginated(userId: string, options?: import('@core/identity/domain/repositories/IRatingEventRepository').PaginatedQueryOptions): Promise> { + async findEventsPaginated(userId: string, options?: import('@core/identity/domain/repositories/RatingEventRepository').PaginatedQueryOptions): Promise> { const allEvents = await this.findByUserId(userId); // Apply filters @@ -86,7 +86,7 @@ class InMemoryRatingEventRepository implements IRatingEventRepository { const hasMore = offset + limit < total; const nextOffset = hasMore ? offset + limit : undefined; - const result: import('@core/identity/domain/repositories/IRatingEventRepository').PaginatedResult = { + const result: import('@core/identity/domain/repositories/RatingEventRepository').PaginatedResult = { items, total, limit, @@ -111,7 +111,7 @@ class InMemoryRatingEventRepository implements IRatingEventRepository { } } -class InMemoryUserRatingRepository implements IUserRatingRepository { +class InMemoryUserRatingRepository implements UserRatingRepository { private ratings: Map = new Map(); async findByUserId(userId: string): Promise { diff --git a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts index 6b27a4c1b..2914bc630 100644 --- a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts +++ b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.test.ts @@ -1,7 +1,7 @@ import { RecordRaceRatingEventsUseCase } from './RecordRaceRatingEventsUseCase'; -import { IRaceResultsProvider, RaceResultsData } from '../ports/IRaceResultsProvider'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RaceResultsProvider, RaceResultsData } from '../ports/RaceResultsProvider'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { AppendRatingEventsUseCase } from './AppendRatingEventsUseCase'; import { UserRating } from '../../domain/value-objects/UserRating'; import { RatingEvent } from '../../domain/entities/RatingEvent'; @@ -10,7 +10,7 @@ import { RatingDimensionKey } from '../../domain/value-objects/RatingDimensionKe import { RatingDelta } from '../../domain/value-objects/RatingDelta'; // Mock implementations -class MockRaceResultsProvider implements IRaceResultsProvider { +class MockRaceResultsProvider implements RaceResultsProvider { private results: RaceResultsData | null = null; setResults(results: RaceResultsData | null) { @@ -26,7 +26,7 @@ class MockRaceResultsProvider implements IRaceResultsProvider { } } -class MockRatingEventRepository implements IRatingEventRepository { +class MockRatingEventRepository implements RatingEventRepository { private events: RatingEvent[] = []; async save(event: RatingEvent): Promise { @@ -46,7 +46,7 @@ class MockRatingEventRepository implements IRatingEventRepository { return this.events.filter(e => e.userId === userId); } - async findEventsPaginated(userId: string, options?: import('@core/identity/domain/repositories/IRatingEventRepository').PaginatedQueryOptions): Promise> { + async findEventsPaginated(userId: string, options?: import('@core/identity/domain/repositories/RatingEventRepository').PaginatedQueryOptions): Promise> { const allEvents = await this.findByUserId(userId); // Apply filters @@ -80,7 +80,7 @@ class MockRatingEventRepository implements IRatingEventRepository { const hasMore = offset + limit < total; const nextOffset = hasMore ? offset + limit : undefined; - const result: import('@core/identity/domain/repositories/IRatingEventRepository').PaginatedResult = { + const result: import('@core/identity/domain/repositories/RatingEventRepository').PaginatedResult = { items, total, limit, @@ -96,7 +96,7 @@ class MockRatingEventRepository implements IRatingEventRepository { } } -class MockUserRatingRepository implements IUserRatingRepository { +class MockUserRatingRepository implements UserRatingRepository { private ratings: Map = new Map(); async findByUserId(userId: string): Promise { diff --git a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.ts b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.ts index 4a83d69ae..58f4b5acb 100644 --- a/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.ts +++ b/core/identity/application/use-cases/RecordRaceRatingEventsUseCase.ts @@ -1,6 +1,6 @@ -import { IRaceResultsProvider } from '../ports/IRaceResultsProvider'; -import { IRatingEventRepository } from '../../domain/repositories/IRatingEventRepository'; -import { IUserRatingRepository } from '../../domain/repositories/IUserRatingRepository'; +import { RaceResultsProvider } from '../ports/RaceResultsProvider'; +import { RatingEventRepository } from '../../domain/repositories/RatingEventRepository'; +import { UserRatingRepository } from '../../domain/repositories/UserRatingRepository'; import { RatingEventFactory } from '../../domain/services/RatingEventFactory'; import { DrivingRatingCalculator } from '../../domain/services/DrivingRatingCalculator'; import { RatingSnapshotCalculator } from '../../domain/services/RatingSnapshotCalculator'; diff --git a/core/identity/application/use-cases/ResetPasswordUseCase.test.ts b/core/identity/application/use-cases/ResetPasswordUseCase.test.ts index 407ab04de..bd3967ff5 100644 --- a/core/identity/application/use-cases/ResetPasswordUseCase.test.ts +++ b/core/identity/application/use-cases/ResetPasswordUseCase.test.ts @@ -1,10 +1,10 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { ResetPasswordUseCase } from './ResetPasswordUseCase'; -import type { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import type { IMagicLinkRepository } from '../../domain/repositories/IMagicLinkRepository'; -import type { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { MagicLinkRepository } from '../../domain/repositories/MagicLinkRepository'; +import type { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { User } from '../../domain/entities/User'; import { UserId } from '../../domain/value-objects/UserId'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; diff --git a/core/identity/application/use-cases/ResetPasswordUseCase.ts b/core/identity/application/use-cases/ResetPasswordUseCase.ts index f4f128d1a..3038cbb5f 100644 --- a/core/identity/application/use-cases/ResetPasswordUseCase.ts +++ b/core/identity/application/use-cases/ResetPasswordUseCase.ts @@ -1,9 +1,9 @@ -import { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import { IMagicLinkRepository } from '../../domain/repositories/IMagicLinkRepository'; -import { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import { AuthRepository } from '../../domain/repositories/AuthRepository'; +import { MagicLinkRepository } from '../../domain/repositories/MagicLinkRepository'; +import { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import { EmailAddress } from '../../domain/value-objects/EmailAddress'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/SignupSponsorUseCase.test.ts b/core/identity/application/use-cases/SignupSponsorUseCase.test.ts index c3f1214de..1329366e0 100644 --- a/core/identity/application/use-cases/SignupSponsorUseCase.test.ts +++ b/core/identity/application/use-cases/SignupSponsorUseCase.test.ts @@ -1,10 +1,10 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { SignupSponsorUseCase } from './SignupSponsorUseCase'; -import type { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import type { ICompanyRepository } from '../../domain/repositories/ICompanyRepository'; -import type { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { CompanyRepository } from '../../domain/repositories/CompanyRepository'; +import type { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('SignupSponsorUseCase', () => { let authRepo: { diff --git a/core/identity/application/use-cases/SignupSponsorUseCase.ts b/core/identity/application/use-cases/SignupSponsorUseCase.ts index d111e8b73..14bd2d0d0 100644 --- a/core/identity/application/use-cases/SignupSponsorUseCase.ts +++ b/core/identity/application/use-cases/SignupSponsorUseCase.ts @@ -2,10 +2,10 @@ import { EmailAddress } from '../../domain/value-objects/EmailAddress'; import { UserId } from '../../domain/value-objects/UserId'; import { User } from '../../domain/entities/User'; import { Company } from '../../domain/entities/Company'; -import { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import { ICompanyRepository } from '../../domain/repositories/ICompanyRepository'; -import { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; -import { Result } from '@core/shared/application/Result'; +import { AuthRepository } from '../../domain/repositories/AuthRepository'; +import { CompanyRepository } from '../../domain/repositories/CompanyRepository'; +import { PasswordHashingService } from '../../domain/services/PasswordHashingService'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/SignupUseCase.test.ts b/core/identity/application/use-cases/SignupUseCase.test.ts index 042460902..6bdec269c 100644 --- a/core/identity/application/use-cases/SignupUseCase.test.ts +++ b/core/identity/application/use-cases/SignupUseCase.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { SignupUseCase } from './SignupUseCase'; -import type { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import type { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import type { AuthRepository } from '../../domain/repositories/AuthRepository'; +import type { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import type { Logger } from '@core/shared/application'; import { User } from '../../domain/entities/User'; import { UserId } from '../../domain/value-objects/UserId'; diff --git a/core/identity/application/use-cases/SignupUseCase.ts b/core/identity/application/use-cases/SignupUseCase.ts index 3f02a2684..49b3efd7f 100644 --- a/core/identity/application/use-cases/SignupUseCase.ts +++ b/core/identity/application/use-cases/SignupUseCase.ts @@ -1,10 +1,10 @@ import { EmailAddress } from '../../domain/value-objects/EmailAddress'; import { UserId } from '../../domain/value-objects/UserId'; import { User } from '../../domain/entities/User'; -import { IAuthRepository } from '../../domain/repositories/IAuthRepository'; -import { IPasswordHashingService } from '../../domain/services/PasswordHashingService'; +import { AuthRepository } from '../../domain/repositories/AuthRepository'; +import { PasswordHashingService } from '../../domain/services/PasswordHashingService'; import { PasswordHash } from '../../domain/value-objects/PasswordHash'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger, UseCase } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts b/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts index fb479f401..c08513c6c 100644 --- a/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts +++ b/core/identity/application/use-cases/SignupWithEmailUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { SignupWithEmailUseCase } from './SignupWithEmailUseCase'; -import type { IUserRepository } from '../../domain/repositories/IUserRepository'; +import type { UserRepository } from '../../domain/repositories/UserRepository'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('SignupWithEmailUseCase', () => { let userRepository: { diff --git a/core/identity/application/use-cases/SignupWithEmailUseCase.ts b/core/identity/application/use-cases/SignupWithEmailUseCase.ts index f220243c2..315c83190 100644 --- a/core/identity/application/use-cases/SignupWithEmailUseCase.ts +++ b/core/identity/application/use-cases/SignupWithEmailUseCase.ts @@ -4,10 +4,10 @@ * Creates a new user account with email and password. */ -import type { IUserRepository, StoredUser } from '../../domain/repositories/IUserRepository'; +import type { UserRepository, StoredUser } from '../../domain/repositories/UserRepository'; import type { AuthenticatedUser } from '../ports/IdentityProviderPort'; import type { IdentitySessionPort } from '../ports/IdentitySessionPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/StartAuthUseCase.test.ts b/core/identity/application/use-cases/StartAuthUseCase.test.ts index d00d17535..c6dc3a9f8 100644 --- a/core/identity/application/use-cases/StartAuthUseCase.test.ts +++ b/core/identity/application/use-cases/StartAuthUseCase.test.ts @@ -2,7 +2,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { StartAuthUseCase } from './StartAuthUseCase'; import type { IdentityProviderPort } from '../ports/IdentityProviderPort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('StartAuthUseCase', () => { let provider: { diff --git a/core/identity/application/use-cases/StartAuthUseCase.ts b/core/identity/application/use-cases/StartAuthUseCase.ts index b67a0f07c..4458b0de8 100644 --- a/core/identity/application/use-cases/StartAuthUseCase.ts +++ b/core/identity/application/use-cases/StartAuthUseCase.ts @@ -1,5 +1,5 @@ import type { IdentityProviderPort, AuthProvider, StartAuthCommand } from '../ports/IdentityProviderPort'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.test.ts b/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.test.ts index 60d7e79d1..1ff312024 100644 --- a/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.test.ts +++ b/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.test.ts @@ -1,5 +1,5 @@ import { UpsertExternalGameRatingUseCase } from './UpsertExternalGameRatingUseCase'; -import { IExternalGameRatingRepository } from '../../domain/repositories/IExternalGameRatingRepository'; +import { ExternalGameRatingRepository } from '../../domain/repositories/ExternalGameRatingRepository'; import { ExternalGameRatingProfile } from '../../domain/entities/ExternalGameRatingProfile'; import { UserId } from '../../domain/value-objects/UserId'; import { GameKey } from '../../domain/value-objects/GameKey'; diff --git a/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.ts b/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.ts index f462ba139..99ec8f56a 100644 --- a/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.ts +++ b/core/identity/application/use-cases/UpsertExternalGameRatingUseCase.ts @@ -1,4 +1,4 @@ -import { IExternalGameRatingRepository } from '../../domain/repositories/IExternalGameRatingRepository'; +import { ExternalGameRatingRepository } from '../../domain/repositories/ExternalGameRatingRepository'; import { ExternalGameRatingProfile } from '../../domain/entities/ExternalGameRatingProfile'; import { UserId } from '../../domain/value-objects/UserId'; import { GameKey } from '../../domain/value-objects/GameKey'; diff --git a/core/identity/application/use-cases/achievement/CreateAchievementUseCase.test.ts b/core/identity/application/use-cases/achievement/CreateAchievementUseCase.test.ts index 4396d80be..eb97f2eee 100644 --- a/core/identity/application/use-cases/achievement/CreateAchievementUseCase.test.ts +++ b/core/identity/application/use-cases/achievement/CreateAchievementUseCase.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { CreateAchievementUseCase, type IAchievementRepository } from './CreateAchievementUseCase'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { Achievement } from '@core/identity/domain/entities/Achievement'; describe('CreateAchievementUseCase', () => { diff --git a/core/identity/application/use-cases/achievement/CreateAchievementUseCase.ts b/core/identity/application/use-cases/achievement/CreateAchievementUseCase.ts index 0bd74ffba..d1b70e11d 100644 --- a/core/identity/application/use-cases/achievement/CreateAchievementUseCase.ts +++ b/core/identity/application/use-cases/achievement/CreateAchievementUseCase.ts @@ -1,9 +1,9 @@ import { Achievement, AchievementProps } from '@core/identity/domain/entities/Achievement'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; -export interface IAchievementRepository { +export interface AchievementRepository { save(achievement: Achievement): Promise; findById(id: string): Promise; } diff --git a/core/identity/domain/entities/Achievement.ts b/core/identity/domain/entities/Achievement.ts index bc65cec25..39794fdd3 100644 --- a/core/identity/domain/entities/Achievement.ts +++ b/core/identity/domain/entities/Achievement.ts @@ -5,7 +5,7 @@ * Achievements are categorized by role (driver, steward, admin) and type. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; export type AchievementCategory = 'driver' | 'steward' | 'admin' | 'community'; @@ -32,7 +32,7 @@ export interface AchievementRequirement { operator: '>=' | '>' | '=' | '<' | '<='; } -export class Achievement implements IEntity { +export class Achievement implements Entity { readonly id: string; readonly name: string; readonly description: string; diff --git a/core/identity/domain/entities/AdminVoteSession.ts b/core/identity/domain/entities/AdminVoteSession.ts index fc19ebced..f009d08d9 100644 --- a/core/identity/domain/entities/AdminVoteSession.ts +++ b/core/identity/domain/entities/AdminVoteSession.ts @@ -1,4 +1,4 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { IdentityDomainValidationError, IdentityDomainInvariantError } from '../errors/IdentityDomainError'; export interface AdminVote { @@ -42,7 +42,7 @@ export interface AdminVoteSessionProps { * * Based on ratings-architecture-concept.md sections 5.2.1 and 7.1.1 */ -export class AdminVoteSession implements IEntity { +export class AdminVoteSession implements Entity { readonly id: string; readonly leagueId: string; readonly adminId: string; diff --git a/core/identity/domain/entities/RatingEvent.ts b/core/identity/domain/entities/RatingEvent.ts index 205ee43e2..9906c80f8 100644 --- a/core/identity/domain/entities/RatingEvent.ts +++ b/core/identity/domain/entities/RatingEvent.ts @@ -1,4 +1,4 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RatingEventId } from '../value-objects/RatingEventId'; import { RatingDimensionKey } from '../value-objects/RatingDimensionKey'; import { RatingDelta } from '../value-objects/RatingDelta'; @@ -34,7 +34,7 @@ export interface RatingEventProps { version: number; } -export class RatingEvent implements IEntity { +export class RatingEvent implements Entity { readonly id: RatingEventId; readonly userId: string; readonly dimension: RatingDimensionKey; diff --git a/core/identity/domain/entities/User.ts b/core/identity/domain/entities/User.ts index c9d8769ea..111a12d9a 100644 --- a/core/identity/domain/entities/User.ts +++ b/core/identity/domain/entities/User.ts @@ -2,7 +2,7 @@ import type { EmailValidationResult } from '../types/EmailAddress'; import { validateEmail } from '../types/EmailAddress'; import { UserId } from '../value-objects/UserId'; import { PasswordHash } from '../value-objects/PasswordHash'; -import { StoredUser } from '../repositories/IUserRepository'; +import { StoredUser } from '../repositories/UserRepository'; export interface UserProps { id: UserId; diff --git a/core/identity/domain/entities/UserAchievement.ts b/core/identity/domain/entities/UserAchievement.ts index 8d7324b8c..87b5ed9e8 100644 --- a/core/identity/domain/entities/UserAchievement.ts +++ b/core/identity/domain/entities/UserAchievement.ts @@ -4,7 +4,7 @@ * Represents an achievement earned by a specific user. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; export interface UserAchievementProps { id: string; @@ -15,7 +15,7 @@ export interface UserAchievementProps { progress?: number; // For partial progress tracking (0-100) } -export class UserAchievement implements IEntity { +export class UserAchievement implements Entity { readonly id: string; readonly userId: string; readonly achievementId: string; diff --git a/core/identity/domain/errors/IdentityDomainError.ts b/core/identity/domain/errors/IdentityDomainError.ts index 9a2be1b6b..026d18274 100644 --- a/core/identity/domain/errors/IdentityDomainError.ts +++ b/core/identity/domain/errors/IdentityDomainError.ts @@ -1,6 +1,6 @@ -import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors'; +import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors'; -export abstract class IdentityDomainError extends Error implements IDomainError { +export abstract class IdentityDomainError extends Error implements DomainError { readonly type = 'domain' as const; readonly context = 'identity-domain'; abstract readonly kind: CommonDomainErrorKind; @@ -13,7 +13,7 @@ export abstract class IdentityDomainError extends Error implements IDomainError< export class IdentityDomainValidationError extends IdentityDomainError - implements IDomainError<'validation'> + implements DomainError<'validation'> { readonly kind = 'validation' as const; @@ -24,7 +24,7 @@ export class IdentityDomainValidationError export class IdentityDomainInvariantError extends IdentityDomainError - implements IDomainError<'invariant'> + implements DomainError<'invariant'> { readonly kind = 'invariant' as const; diff --git a/core/identity/domain/ports/IMagicLinkNotificationPort.ts b/core/identity/domain/ports/MagicLinkNotificationPort.ts similarity index 91% rename from core/identity/domain/ports/IMagicLinkNotificationPort.ts rename to core/identity/domain/ports/MagicLinkNotificationPort.ts index b71f27903..f17f30dc0 100644 --- a/core/identity/domain/ports/IMagicLinkNotificationPort.ts +++ b/core/identity/domain/ports/MagicLinkNotificationPort.ts @@ -10,7 +10,7 @@ export interface MagicLinkNotificationInput { expiresAt: Date; } -export interface IMagicLinkNotificationPort { +export interface MagicLinkNotificationPort { /** * Send a magic link notification to the user * @param input - The notification data diff --git a/core/identity/domain/repositories/IAchievementRepository.ts b/core/identity/domain/repositories/AchievementRepository.ts similarity index 97% rename from core/identity/domain/repositories/IAchievementRepository.ts rename to core/identity/domain/repositories/AchievementRepository.ts index 0d0e16af0..452b1c609 100644 --- a/core/identity/domain/repositories/IAchievementRepository.ts +++ b/core/identity/domain/repositories/AchievementRepository.ts @@ -7,7 +7,7 @@ import type { Achievement, AchievementCategory } from '../entities/Achievement'; import type { UserAchievement } from '../entities/UserAchievement'; -export interface IAchievementRepository { +export interface AchievementRepository { // Achievement operations findAchievementById(id: string): Promise; findAllAchievements(): Promise; diff --git a/core/identity/domain/repositories/IAdminVoteSessionRepository.ts b/core/identity/domain/repositories/AdminVoteSessionRepository.ts similarity index 95% rename from core/identity/domain/repositories/IAdminVoteSessionRepository.ts rename to core/identity/domain/repositories/AdminVoteSessionRepository.ts index 98f9f68e7..d432a25d7 100644 --- a/core/identity/domain/repositories/IAdminVoteSessionRepository.ts +++ b/core/identity/domain/repositories/AdminVoteSessionRepository.ts @@ -7,7 +7,7 @@ import type { AdminVoteSession } from '../entities/AdminVoteSession'; * Sessions are scoped to leagues and control voting windows. */ -export interface IAdminVoteSessionRepository { +export interface AdminVoteSessionRepository { /** * Save a vote session */ diff --git a/core/identity/domain/repositories/IAuthRepository.ts b/core/identity/domain/repositories/AuthRepository.ts similarity index 91% rename from core/identity/domain/repositories/IAuthRepository.ts rename to core/identity/domain/repositories/AuthRepository.ts index 1cd5140b9..11bacb958 100644 --- a/core/identity/domain/repositories/IAuthRepository.ts +++ b/core/identity/domain/repositories/AuthRepository.ts @@ -6,7 +6,7 @@ import { User } from '../entities/User'; * * Repository interface for authentication operations. */ -export interface IAuthRepository { +export interface AuthRepository { /** * Find user by email */ diff --git a/core/identity/domain/repositories/ICompanyRepository.ts b/core/identity/domain/repositories/CompanyRepository.ts similarity index 94% rename from core/identity/domain/repositories/ICompanyRepository.ts rename to core/identity/domain/repositories/CompanyRepository.ts index 037c289d3..85d7e9ed1 100644 --- a/core/identity/domain/repositories/ICompanyRepository.ts +++ b/core/identity/domain/repositories/CompanyRepository.ts @@ -5,7 +5,7 @@ import { Company } from '../entities/Company'; * * Repository interface for Company entity operations. */ -export interface ICompanyRepository { +export interface CompanyRepository { /** * Create a new company (returns unsaved entity) */ diff --git a/core/identity/domain/repositories/IExternalGameRatingRepository.test.ts b/core/identity/domain/repositories/ExternalGameRatingRepository.test.ts similarity index 96% rename from core/identity/domain/repositories/IExternalGameRatingRepository.test.ts rename to core/identity/domain/repositories/ExternalGameRatingRepository.test.ts index 9803161af..811f9c7dc 100644 --- a/core/identity/domain/repositories/IExternalGameRatingRepository.test.ts +++ b/core/identity/domain/repositories/ExternalGameRatingRepository.test.ts @@ -1,4 +1,4 @@ -import { IExternalGameRatingRepository } from './IExternalGameRatingRepository'; +import { ExternalGameRatingRepository } from './ExternalGameRatingRepository'; import { ExternalGameRatingProfile } from '../entities/ExternalGameRatingProfile'; import { UserId } from '../value-objects/UserId'; import { GameKey } from '../value-objects/GameKey'; @@ -11,7 +11,7 @@ import { ExternalRatingProvenance } from '../value-objects/ExternalRatingProvena */ describe('IExternalGameRatingRepository', () => { // Mock implementation for testing - class MockExternalGameRatingRepository implements IExternalGameRatingRepository { + class MockExternalGameRatingRepository implements ExternalGameRatingRepository { private profiles: Map = new Map(); private getKey(userId: string, gameKey: string): string { @@ -61,7 +61,7 @@ describe('IExternalGameRatingRepository', () => { return this.profiles.has(key); } - async findProfilesPaginated(userId: string, options?: import('./IExternalGameRatingRepository').PaginatedQueryOptions): Promise> { + async findProfilesPaginated(userId: string, options?: import('./ExternalGameRatingRepository').PaginatedQueryOptions): Promise> { const allProfiles = await this.findByUserId(userId); // Apply filters @@ -89,7 +89,7 @@ describe('IExternalGameRatingRepository', () => { const hasMore = offset + limit < total; const nextOffset = hasMore ? offset + limit : undefined; - const result: import('./IExternalGameRatingRepository').PaginatedResult = { + const result: import('./ExternalGameRatingRepository').PaginatedResult = { items, total, limit, diff --git a/core/identity/domain/repositories/IExternalGameRatingRepository.ts b/core/identity/domain/repositories/ExternalGameRatingRepository.ts similarity index 97% rename from core/identity/domain/repositories/IExternalGameRatingRepository.ts rename to core/identity/domain/repositories/ExternalGameRatingRepository.ts index 587d826e9..ca1d9054c 100644 --- a/core/identity/domain/repositories/IExternalGameRatingRepository.ts +++ b/core/identity/domain/repositories/ExternalGameRatingRepository.ts @@ -33,7 +33,7 @@ export interface PaginatedResult { nextOffset?: number; } -export interface IExternalGameRatingRepository { +export interface ExternalGameRatingRepository { /** * Find profile by user ID and game key */ diff --git a/core/identity/domain/repositories/IMagicLinkRepository.ts b/core/identity/domain/repositories/MagicLinkRepository.ts similarity index 88% rename from core/identity/domain/repositories/IMagicLinkRepository.ts rename to core/identity/domain/repositories/MagicLinkRepository.ts index f75e59a80..c0c6c1c7f 100644 --- a/core/identity/domain/repositories/IMagicLinkRepository.ts +++ b/core/identity/domain/repositories/MagicLinkRepository.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; export interface PasswordResetRequest { email: string; @@ -8,7 +8,7 @@ export interface PasswordResetRequest { used?: boolean; } -export interface IMagicLinkRepository { +export interface MagicLinkRepository { /** * Create a password reset request */ diff --git a/core/identity/domain/repositories/IRatingEventRepository.test.ts b/core/identity/domain/repositories/RatingEventRepository.test.ts similarity index 98% rename from core/identity/domain/repositories/IRatingEventRepository.test.ts rename to core/identity/domain/repositories/RatingEventRepository.test.ts index 96cb95553..c24beb286 100644 --- a/core/identity/domain/repositories/IRatingEventRepository.test.ts +++ b/core/identity/domain/repositories/RatingEventRepository.test.ts @@ -6,10 +6,10 @@ import { RatingEvent } from '../entities/RatingEvent'; import { RatingEventId } from '../value-objects/RatingEventId'; import { RatingDimensionKey } from '../value-objects/RatingDimensionKey'; import { RatingDelta } from '../value-objects/RatingDelta'; -import { IRatingEventRepository, FindByUserIdOptions, PaginatedQueryOptions, PaginatedResult } from './IRatingEventRepository'; +import { RatingEventRepository, FindByUserIdOptions, PaginatedQueryOptions, PaginatedResult } from './RatingEventRepository'; // In-memory test implementation -class InMemoryRatingEventRepository implements IRatingEventRepository { +class InMemoryRatingEventRepository implements RatingEventRepository { private events: RatingEvent[] = []; async save(event: RatingEvent): Promise { diff --git a/core/identity/domain/repositories/IRatingEventRepository.ts b/core/identity/domain/repositories/RatingEventRepository.ts similarity index 97% rename from core/identity/domain/repositories/IRatingEventRepository.ts rename to core/identity/domain/repositories/RatingEventRepository.ts index 9e2f822ad..521b3040c 100644 --- a/core/identity/domain/repositories/IRatingEventRepository.ts +++ b/core/identity/domain/repositories/RatingEventRepository.ts @@ -44,7 +44,7 @@ export interface PaginatedResult { nextOffset?: number; } -export interface IRatingEventRepository { +export interface RatingEventRepository { /** * Save a rating event to the ledger */ diff --git a/core/identity/domain/repositories/ISponsorAccountRepository.ts b/core/identity/domain/repositories/SponsorAccountRepository.ts similarity index 92% rename from core/identity/domain/repositories/ISponsorAccountRepository.ts rename to core/identity/domain/repositories/SponsorAccountRepository.ts index 3c297e500..6a3e42f66 100644 --- a/core/identity/domain/repositories/ISponsorAccountRepository.ts +++ b/core/identity/domain/repositories/SponsorAccountRepository.ts @@ -7,7 +7,7 @@ import type { SponsorAccount } from '../entities/SponsorAccount'; import type { UserId } from '../value-objects/UserId'; -export interface ISponsorAccountRepository { +export interface SponsorAccountRepository { save(account: SponsorAccount): Promise; findById(id: UserId): Promise; findBySponsorId(sponsorId: string): Promise; diff --git a/core/identity/domain/repositories/IUserRatingRepository.test.ts b/core/identity/domain/repositories/UserRatingRepository.test.ts similarity index 95% rename from core/identity/domain/repositories/IUserRatingRepository.test.ts rename to core/identity/domain/repositories/UserRatingRepository.test.ts index afbe7c266..d3fcbd9f3 100644 --- a/core/identity/domain/repositories/IUserRatingRepository.test.ts +++ b/core/identity/domain/repositories/UserRatingRepository.test.ts @@ -3,10 +3,10 @@ */ import { UserRating } from '../value-objects/UserRating'; -import { IUserRatingRepository } from './IUserRatingRepository'; +import { UserRatingRepository } from './UserRatingRepository'; // In-memory test implementation -class InMemoryUserRatingRepository implements IUserRatingRepository { +class InMemoryUserRatingRepository implements UserRatingRepository { private ratings: Map = new Map(); async findByUserId(userId: string): Promise { diff --git a/core/identity/domain/repositories/IUserRatingRepository.ts b/core/identity/domain/repositories/UserRatingRepository.ts similarity index 91% rename from core/identity/domain/repositories/IUserRatingRepository.ts rename to core/identity/domain/repositories/UserRatingRepository.ts index d6b6770f1..0ae09c628 100644 --- a/core/identity/domain/repositories/IUserRatingRepository.ts +++ b/core/identity/domain/repositories/UserRatingRepository.ts @@ -7,7 +7,7 @@ import type { UserRating } from '../value-objects/UserRating'; -export interface IUserRatingRepository { +export interface UserRatingRepository { /** * Find rating snapshot by user ID */ diff --git a/core/identity/domain/repositories/IUserRepository.ts b/core/identity/domain/repositories/UserRepository.ts similarity index 96% rename from core/identity/domain/repositories/IUserRepository.ts rename to core/identity/domain/repositories/UserRepository.ts index 976d1df75..71f1c8112 100644 --- a/core/identity/domain/repositories/IUserRepository.ts +++ b/core/identity/domain/repositories/UserRepository.ts @@ -20,7 +20,7 @@ export interface StoredUser { createdAt: Date; } -export interface IUserRepository { +export interface UserRepository { /** * Find user by email */ diff --git a/core/identity/domain/services/PasswordHashingService.ts b/core/identity/domain/services/PasswordHashingService.ts index 93458aac3..b2be88374 100644 --- a/core/identity/domain/services/PasswordHashingService.ts +++ b/core/identity/domain/services/PasswordHashingService.ts @@ -5,7 +5,7 @@ import { PasswordHash } from '../value-objects/PasswordHash'; * * Service for password hashing and verification. */ -export interface IPasswordHashingService { +export interface PasswordHashingService { hash(plain: string): Promise; verify(plain: string, hash: string): Promise; } @@ -13,7 +13,7 @@ export interface IPasswordHashingService { /** * Implementation using bcrypt via PasswordHash VO. */ -export class PasswordHashingService implements IPasswordHashingService { +export class PasswordHashingService implements PasswordHashingService { async hash(plain: string): Promise { const passwordHash = await PasswordHash.create(plain); return passwordHash.value; diff --git a/core/identity/domain/services/RatingUpdateService.test.ts b/core/identity/domain/services/RatingUpdateService.test.ts index 252dc72f8..550b83105 100644 --- a/core/identity/domain/services/RatingUpdateService.test.ts +++ b/core/identity/domain/services/RatingUpdateService.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, beforeEach, vi } from 'vitest'; import { RatingUpdateService } from './RatingUpdateService'; -import type { IUserRatingRepository } from '../repositories/IUserRatingRepository'; -import type { IRatingEventRepository } from '../repositories/IRatingEventRepository'; +import type { UserRatingRepository } from '../repositories/UserRatingRepository'; +import type { RatingEventRepository } from '../repositories/RatingEventRepository'; import { UserRating } from '../value-objects/UserRating'; import { RatingEvent } from '../entities/RatingEvent'; import { RatingEventId } from '../value-objects/RatingEventId'; diff --git a/core/identity/domain/services/RatingUpdateService.ts b/core/identity/domain/services/RatingUpdateService.ts index 228b6628d..d0e82dd2a 100644 --- a/core/identity/domain/services/RatingUpdateService.ts +++ b/core/identity/domain/services/RatingUpdateService.ts @@ -1,6 +1,6 @@ -import type { IDomainService } from '@core/shared/domain'; -import type { IUserRatingRepository } from '../repositories/IUserRatingRepository'; -import type { IRatingEventRepository } from '../repositories/IRatingEventRepository'; +import type { DomainService } from '@core/shared/domain'; +import type { UserRatingRepository } from '../repositories/UserRatingRepository'; +import type { RatingEventRepository } from '../repositories/RatingEventRepository'; import { RatingEventFactory } from './RatingEventFactory'; import { RatingSnapshotCalculator } from './RatingSnapshotCalculator'; import { RatingEvent } from '../entities/RatingEvent'; @@ -17,7 +17,7 @@ import { RatingDelta } from '../value-objects/RatingDelta'; * EVOLVED (Slice 7): Now uses event-driven approach with ledger pattern. * Records rating events and recomputes snapshots for transparency and auditability. */ -export class RatingUpdateService implements IDomainService { +export class RatingUpdateService implements DomainService { readonly serviceName = 'RatingUpdateService'; constructor( diff --git a/core/identity/domain/value-objects/AdminTrustReasonCode.ts b/core/identity/domain/value-objects/AdminTrustReasonCode.ts index 3dd864a9f..858b7c5b2 100644 --- a/core/identity/domain/value-objects/AdminTrustReasonCode.ts +++ b/core/identity/domain/value-objects/AdminTrustReasonCode.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; /** @@ -37,7 +37,7 @@ const VALID_REASON_CODES: AdminTrustReasonCodeValue[] = [ 'ADMIN_ACTION_ABUSE_REPORT_PENALTY', ]; -export class AdminTrustReasonCode implements IValueObject { +export class AdminTrustReasonCode implements ValueObject { readonly value: AdminTrustReasonCodeValue; private constructor(value: AdminTrustReasonCodeValue) { diff --git a/core/identity/domain/value-objects/DrivingReasonCode.ts b/core/identity/domain/value-objects/DrivingReasonCode.ts index ed7f29141..9a4eebb22 100644 --- a/core/identity/domain/value-objects/DrivingReasonCode.ts +++ b/core/identity/domain/value-objects/DrivingReasonCode.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; /** @@ -49,7 +49,7 @@ const VALID_REASON_CODES: DrivingReasonCodeValue[] = [ 'DRIVING_SEASON_ATTENDANCE_BONUS', ]; -export class DrivingReasonCode implements IValueObject { +export class DrivingReasonCode implements ValueObject { readonly value: DrivingReasonCodeValue; private constructor(value: DrivingReasonCodeValue) { diff --git a/core/identity/domain/value-objects/EmailAddress.ts b/core/identity/domain/value-objects/EmailAddress.ts index 7b4d93354..daafb927c 100644 --- a/core/identity/domain/value-objects/EmailAddress.ts +++ b/core/identity/domain/value-objects/EmailAddress.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import type { EmailValidationResult } from '../types/EmailAddress'; import { validateEmail, isDisposableEmail } from '../types/EmailAddress'; @@ -12,7 +12,7 @@ export interface EmailAddressProps { * Wraps a validated, normalized email string and provides equality semantics. * Validation and helper utilities live in domain/types/EmailAddress. */ -export class EmailAddress implements IValueObject { +export class EmailAddress implements ValueObject { public readonly props: EmailAddressProps; private constructor(value: string) { diff --git a/core/identity/domain/value-objects/ExternalRating.ts b/core/identity/domain/value-objects/ExternalRating.ts index 6e2821721..f33aa8ec0 100644 --- a/core/identity/domain/value-objects/ExternalRating.ts +++ b/core/identity/domain/value-objects/ExternalRating.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; import { GameKey } from './GameKey'; @@ -8,7 +8,7 @@ export interface ExternalRatingProps { value: number; } -export class ExternalRating implements IValueObject { +export class ExternalRating implements ValueObject { readonly gameKey: GameKey; readonly type: string; readonly value: number; diff --git a/core/identity/domain/value-objects/ExternalRatingProvenance.ts b/core/identity/domain/value-objects/ExternalRatingProvenance.ts index ab408af2d..b25aef2fb 100644 --- a/core/identity/domain/value-objects/ExternalRatingProvenance.ts +++ b/core/identity/domain/value-objects/ExternalRatingProvenance.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export interface ExternalRatingProvenanceProps { @@ -7,7 +7,7 @@ export interface ExternalRatingProvenanceProps { verified?: boolean; } -export class ExternalRatingProvenance implements IValueObject { +export class ExternalRatingProvenance implements ValueObject { readonly source: string; readonly lastSyncedAt: Date; readonly verified: boolean; diff --git a/core/identity/domain/value-objects/GameKey.ts b/core/identity/domain/value-objects/GameKey.ts index a7ec6fa5e..74290cb41 100644 --- a/core/identity/domain/value-objects/GameKey.ts +++ b/core/identity/domain/value-objects/GameKey.ts @@ -1,11 +1,11 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export interface GameKeyProps { value: string; } -export class GameKey implements IValueObject { +export class GameKey implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/identity/domain/value-objects/PasswordHash.ts b/core/identity/domain/value-objects/PasswordHash.ts index 3a5badb25..aa7cc8882 100644 --- a/core/identity/domain/value-objects/PasswordHash.ts +++ b/core/identity/domain/value-objects/PasswordHash.ts @@ -1,5 +1,5 @@ import bcrypt from 'bcrypt'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface PasswordHashProps { value: string; @@ -10,7 +10,7 @@ export interface PasswordHashProps { * * Wraps a bcrypt-hashed password string and provides verification. */ -export class PasswordHash implements IValueObject { +export class PasswordHash implements ValueObject { public readonly props: PasswordHashProps; private constructor(value: string) { diff --git a/core/identity/domain/value-objects/RatingDelta.ts b/core/identity/domain/value-objects/RatingDelta.ts index 382533758..39ce87e42 100644 --- a/core/identity/domain/value-objects/RatingDelta.ts +++ b/core/identity/domain/value-objects/RatingDelta.ts @@ -1,11 +1,11 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export interface RatingDeltaProps { value: number; } -export class RatingDelta implements IValueObject { +export class RatingDelta implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/identity/domain/value-objects/RatingDimensionKey.ts b/core/identity/domain/value-objects/RatingDimensionKey.ts index ebe3115b5..4651088af 100644 --- a/core/identity/domain/value-objects/RatingDimensionKey.ts +++ b/core/identity/domain/value-objects/RatingDimensionKey.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export interface RatingDimensionKeyProps { @@ -7,7 +7,7 @@ export interface RatingDimensionKeyProps { const VALID_DIMENSIONS = ['driving', 'adminTrust', 'stewardTrust', 'broadcasterTrust'] as const; -export class RatingDimensionKey implements IValueObject { +export class RatingDimensionKey implements ValueObject { readonly value: RatingDimensionKeyProps['value']; private constructor(value: RatingDimensionKeyProps['value']) { diff --git a/core/identity/domain/value-objects/RatingEventId.ts b/core/identity/domain/value-objects/RatingEventId.ts index ef7de6951..592ea4d13 100644 --- a/core/identity/domain/value-objects/RatingEventId.ts +++ b/core/identity/domain/value-objects/RatingEventId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; import { v4 as uuidv4 } from 'uuid'; @@ -6,7 +6,7 @@ export interface RatingEventIdProps { value: string; } -export class RatingEventId implements IValueObject { +export class RatingEventId implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/identity/domain/value-objects/RatingReference.ts b/core/identity/domain/value-objects/RatingReference.ts index 4bccbd5a4..b625f067d 100644 --- a/core/identity/domain/value-objects/RatingReference.ts +++ b/core/identity/domain/value-objects/RatingReference.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export type RatingReferenceType = 'race' | 'penalty' | 'vote' | 'adminAction'; @@ -10,7 +10,7 @@ export interface RatingReferenceProps { const VALID_TYPES: RatingReferenceType[] = ['race', 'penalty', 'vote', 'adminAction']; -export class RatingReference implements IValueObject { +export class RatingReference implements ValueObject { readonly type: RatingReferenceType; readonly id: string; diff --git a/core/identity/domain/value-objects/RatingValue.ts b/core/identity/domain/value-objects/RatingValue.ts index c488988dd..7c184a6d2 100644 --- a/core/identity/domain/value-objects/RatingValue.ts +++ b/core/identity/domain/value-objects/RatingValue.ts @@ -1,11 +1,11 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { IdentityDomainValidationError } from '../errors/IdentityDomainError'; export interface RatingValueProps { value: number; } -export class RatingValue implements IValueObject { +export class RatingValue implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/identity/domain/value-objects/UserId.ts b/core/identity/domain/value-objects/UserId.ts index 9d8bd7b8a..dee596de8 100644 --- a/core/identity/domain/value-objects/UserId.ts +++ b/core/identity/domain/value-objects/UserId.ts @@ -1,11 +1,11 @@ import { v4 as uuidv4 } from 'uuid'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface UserIdProps { value: string; } -export class UserId implements IValueObject { +export class UserId implements ValueObject { public readonly props: UserIdProps; private constructor(value: string) { diff --git a/core/identity/domain/value-objects/UserRating.ts b/core/identity/domain/value-objects/UserRating.ts index e6e244568..ffdfa847f 100644 --- a/core/identity/domain/value-objects/UserRating.ts +++ b/core/identity/domain/value-objects/UserRating.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Value Object: UserRating @@ -40,7 +40,7 @@ const DEFAULT_DIMENSION: RatingDimension = { lastUpdated: new Date(), }; -export class UserRating implements IValueObject { +export class UserRating implements ValueObject { readonly props: UserRatingProps; private constructor(props: UserRatingProps) { diff --git a/core/identity/index.ts b/core/identity/index.ts deleted file mode 100644 index 580577e9d..000000000 --- a/core/identity/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -export * from './domain/value-objects/EmailAddress'; -export * from './domain/value-objects/UserId'; -export * from './domain/value-objects/UserRating'; -export * from './domain/entities/User'; -export * from './domain/entities/SponsorAccount'; -export * from './domain/entities/Achievement'; -export * from './domain/entities/UserAchievement'; - -export * from './domain/repositories/IUserRepository'; -export * from './domain/repositories/ISponsorAccountRepository'; -export * from './domain/repositories/IUserRatingRepository'; -export * from './domain/repositories/IAchievementRepository'; -export * from './domain/repositories/IAuthRepository'; -export * from './domain/repositories/IMagicLinkRepository'; - -export * from './application/ports/IdentityProviderPort'; -export * from './application/ports/IdentitySessionPort'; - -export * from './application/use-cases/StartAuthUseCase'; -export * from './application/use-cases/HandleAuthCallbackUseCase'; -export * from './application/use-cases/GetCurrentUserSessionUseCase'; -export * from './application/use-cases/LogoutUseCase'; -export * from './application/use-cases/SignupUseCase'; -export * from './application/use-cases/LoginUseCase'; -export * from './application/use-cases/ForgotPasswordUseCase'; -export * from './application/use-cases/ResetPasswordUseCase'; diff --git a/core/league/application/index.ts b/core/league/application/index.ts deleted file mode 100644 index 05ba246a7..000000000 --- a/core/league/application/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './ports/ILeagueStandingsRepository'; \ No newline at end of file diff --git a/core/league/application/ports/ILeagueStandingsRepository.ts b/core/league/application/ports/LeagueStandingsRepository.ts similarity index 83% rename from core/league/application/ports/ILeagueStandingsRepository.ts rename to core/league/application/ports/LeagueStandingsRepository.ts index d958bd9ca..4cb862e72 100644 --- a/core/league/application/ports/ILeagueStandingsRepository.ts +++ b/core/league/application/ports/LeagueStandingsRepository.ts @@ -8,6 +8,6 @@ export interface RawStanding { podiums: number; } -export interface ILeagueStandingsRepository { +export interface LeagueStandingsRepository { getLeagueStandings(leagueId: string): Promise; } \ No newline at end of file diff --git a/core/media/application/use-cases/DeleteMediaUseCase.test.ts b/core/media/application/use-cases/DeleteMediaUseCase.test.ts index b368b4b2c..225be9203 100644 --- a/core/media/application/use-cases/DeleteMediaUseCase.test.ts +++ b/core/media/application/use-cases/DeleteMediaUseCase.test.ts @@ -4,10 +4,10 @@ import { type DeleteMediaInput, type DeleteMediaErrorCode, } from './DeleteMediaUseCase'; -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { MediaStoragePort } from '../ports/MediaStoragePort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Media } from '../../domain/entities/Media'; diff --git a/core/media/application/use-cases/DeleteMediaUseCase.ts b/core/media/application/use-cases/DeleteMediaUseCase.ts index ccbab3fa1..0d90c1cf2 100644 --- a/core/media/application/use-cases/DeleteMediaUseCase.ts +++ b/core/media/application/use-cases/DeleteMediaUseCase.ts @@ -4,10 +4,10 @@ * Handles the business logic for deleting media files. */ -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { MediaStoragePort } from '../ports/MediaStoragePort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface DeleteMediaInput { diff --git a/core/media/application/use-cases/GetAvatarUseCase.test.ts b/core/media/application/use-cases/GetAvatarUseCase.test.ts index 83b2cae92..549222587 100644 --- a/core/media/application/use-cases/GetAvatarUseCase.test.ts +++ b/core/media/application/use-cases/GetAvatarUseCase.test.ts @@ -4,9 +4,9 @@ import { type GetAvatarInput, type GetAvatarErrorCode, } from './GetAvatarUseCase'; -import type { IAvatarRepository } from '../../domain/repositories/IAvatarRepository'; +import type { AvatarRepository } from '../../domain/repositories/AvatarRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Avatar } from '../../domain/entities/Avatar'; diff --git a/core/media/application/use-cases/GetAvatarUseCase.ts b/core/media/application/use-cases/GetAvatarUseCase.ts index 18c8377c6..872477a2a 100644 --- a/core/media/application/use-cases/GetAvatarUseCase.ts +++ b/core/media/application/use-cases/GetAvatarUseCase.ts @@ -4,9 +4,9 @@ * Handles the business logic for retrieving a driver's avatar. */ -import type { IAvatarRepository } from '../../domain/repositories/IAvatarRepository'; +import type { AvatarRepository } from '../../domain/repositories/AvatarRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetAvatarInput { diff --git a/core/media/application/use-cases/GetMediaUseCase.test.ts b/core/media/application/use-cases/GetMediaUseCase.test.ts index 4b43eccda..d2f5e1c45 100644 --- a/core/media/application/use-cases/GetMediaUseCase.test.ts +++ b/core/media/application/use-cases/GetMediaUseCase.test.ts @@ -4,9 +4,9 @@ import { type GetMediaInput, type GetMediaErrorCode, } from './GetMediaUseCase'; -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Media } from '../../domain/entities/Media'; diff --git a/core/media/application/use-cases/GetMediaUseCase.ts b/core/media/application/use-cases/GetMediaUseCase.ts index 9c2ff7fdc..bd9182e62 100644 --- a/core/media/application/use-cases/GetMediaUseCase.ts +++ b/core/media/application/use-cases/GetMediaUseCase.ts @@ -4,9 +4,9 @@ * Handles the business logic for retrieving media information. */ -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetMediaInput { diff --git a/core/media/application/use-cases/GetUploadedMediaUseCase.ts b/core/media/application/use-cases/GetUploadedMediaUseCase.ts index 3e984b6c8..23b6cbbac 100644 --- a/core/media/application/use-cases/GetUploadedMediaUseCase.ts +++ b/core/media/application/use-cases/GetUploadedMediaUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { MediaStoragePort } from '../ports/MediaStoragePort'; export type GetUploadedMediaInput = { diff --git a/core/media/application/use-cases/RequestAvatarGenerationUseCase.test.ts b/core/media/application/use-cases/RequestAvatarGenerationUseCase.test.ts index d3c21244f..74938d2c7 100644 --- a/core/media/application/use-cases/RequestAvatarGenerationUseCase.test.ts +++ b/core/media/application/use-cases/RequestAvatarGenerationUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { RequestAvatarGenerationUseCase, @@ -8,7 +8,7 @@ import { type RequestAvatarGenerationErrorCode, type RequestAvatarGenerationResult, } from './RequestAvatarGenerationUseCase'; -import type { IAvatarGenerationRepository } from '../../domain/repositories/IAvatarGenerationRepository'; +import type { AvatarGenerationRepository } from '../../domain/repositories/AvatarGenerationRepository'; import type { FaceValidationPort } from '../ports/FaceValidationPort'; import type { AvatarGenerationPort } from '../ports/AvatarGenerationPort'; diff --git a/core/media/application/use-cases/RequestAvatarGenerationUseCase.ts b/core/media/application/use-cases/RequestAvatarGenerationUseCase.ts index f175ec4fc..ff5d84d09 100644 --- a/core/media/application/use-cases/RequestAvatarGenerationUseCase.ts +++ b/core/media/application/use-cases/RequestAvatarGenerationUseCase.ts @@ -5,13 +5,13 @@ */ import { v4 as uuidv4 } from 'uuid'; -import type { IAvatarGenerationRepository } from '../../domain/repositories/IAvatarGenerationRepository'; +import type { AvatarGenerationRepository } from '../../domain/repositories/AvatarGenerationRepository'; import type { FaceValidationPort } from '../ports/FaceValidationPort'; import type { AvatarGenerationPort } from '../ports/AvatarGenerationPort'; import type { Logger } from '@core/shared/application'; import { AvatarGenerationRequest } from '../../domain/entities/AvatarGenerationRequest'; import type { RacingSuitColor } from '../../domain/types/AvatarGenerationRequest'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface RequestAvatarGenerationInput { diff --git a/core/media/application/use-cases/ResolveMediaReferenceUseCase.ts b/core/media/application/use-cases/ResolveMediaReferenceUseCase.ts index 0d48543fa..f104ec573 100644 --- a/core/media/application/use-cases/ResolveMediaReferenceUseCase.ts +++ b/core/media/application/use-cases/ResolveMediaReferenceUseCase.ts @@ -1,4 +1,4 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { MediaReference } from '@core/domain/media/MediaReference'; import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort'; diff --git a/core/media/application/use-cases/SelectAvatarUseCase.test.ts b/core/media/application/use-cases/SelectAvatarUseCase.test.ts index 21826c3f1..0c478101a 100644 --- a/core/media/application/use-cases/SelectAvatarUseCase.test.ts +++ b/core/media/application/use-cases/SelectAvatarUseCase.test.ts @@ -1,13 +1,13 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { SelectAvatarUseCase, type SelectAvatarErrorCode, type SelectAvatarInput, } from './SelectAvatarUseCase'; -import type { IAvatarGenerationRepository } from '../../domain/repositories/IAvatarGenerationRepository'; +import type { AvatarGenerationRepository } from '../../domain/repositories/AvatarGenerationRepository'; import { AvatarGenerationRequest } from '../../domain/entities/AvatarGenerationRequest'; describe('SelectAvatarUseCase', () => { diff --git a/core/media/application/use-cases/SelectAvatarUseCase.ts b/core/media/application/use-cases/SelectAvatarUseCase.ts index 0037b1364..48a65651b 100644 --- a/core/media/application/use-cases/SelectAvatarUseCase.ts +++ b/core/media/application/use-cases/SelectAvatarUseCase.ts @@ -4,9 +4,9 @@ * Handles the business logic for selecting a generated avatar from the options. */ -import type { IAvatarGenerationRepository } from '../../domain/repositories/IAvatarGenerationRepository'; +import type { AvatarGenerationRepository } from '../../domain/repositories/AvatarGenerationRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface SelectAvatarInput { diff --git a/core/media/application/use-cases/UpdateAvatarUseCase.test.ts b/core/media/application/use-cases/UpdateAvatarUseCase.test.ts index 60755faef..05e4f5214 100644 --- a/core/media/application/use-cases/UpdateAvatarUseCase.test.ts +++ b/core/media/application/use-cases/UpdateAvatarUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { UpdateAvatarUseCase, @@ -8,7 +8,7 @@ import { type UpdateAvatarInput, type UpdateAvatarResult, } from './UpdateAvatarUseCase'; -import type { IAvatarRepository } from '../../domain/repositories/IAvatarRepository'; +import type { AvatarRepository } from '../../domain/repositories/AvatarRepository'; import { Avatar } from '../../domain/entities/Avatar'; vi.mock('uuid', () => ({ diff --git a/core/media/application/use-cases/UpdateAvatarUseCase.ts b/core/media/application/use-cases/UpdateAvatarUseCase.ts index f955d2a08..c4696b402 100644 --- a/core/media/application/use-cases/UpdateAvatarUseCase.ts +++ b/core/media/application/use-cases/UpdateAvatarUseCase.ts @@ -5,11 +5,11 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { v4 as uuidv4 } from 'uuid'; import { Avatar } from '../../domain/entities/Avatar'; -import type { IAvatarRepository } from '../../domain/repositories/IAvatarRepository'; +import type { AvatarRepository } from '../../domain/repositories/AvatarRepository'; import { AvatarId } from '../../domain/value-objects/AvatarId'; export interface UpdateAvatarInput { diff --git a/core/media/application/use-cases/UploadMediaUseCase.test.ts b/core/media/application/use-cases/UploadMediaUseCase.test.ts index 25f2ca67b..9e42b43c7 100644 --- a/core/media/application/use-cases/UploadMediaUseCase.test.ts +++ b/core/media/application/use-cases/UploadMediaUseCase.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { Readable } from 'node:stream'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { UploadMediaUseCase, @@ -10,7 +10,7 @@ import { type UploadMediaInput, type UploadMediaResult, } from './UploadMediaUseCase'; -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { MediaStoragePort } from '../ports/MediaStoragePort'; import { Media } from '../../domain/entities/Media'; diff --git a/core/media/application/use-cases/UploadMediaUseCase.ts b/core/media/application/use-cases/UploadMediaUseCase.ts index ebbe97036..ec515855d 100644 --- a/core/media/application/use-cases/UploadMediaUseCase.ts +++ b/core/media/application/use-cases/UploadMediaUseCase.ts @@ -4,10 +4,10 @@ * Handles the business logic for uploading media files. */ -import type { IMediaRepository } from '../../domain/repositories/IMediaRepository'; +import type { MediaRepository } from '../../domain/repositories/MediaRepository'; import type { MediaStoragePort } from '../ports/MediaStoragePort'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Media } from '../../domain/entities/Media'; import { v4 as uuidv4 } from 'uuid'; diff --git a/core/media/domain/entities/Avatar.ts b/core/media/domain/entities/Avatar.ts index 83634259a..7a8a6f461 100644 --- a/core/media/domain/entities/Avatar.ts +++ b/core/media/domain/entities/Avatar.ts @@ -4,7 +4,7 @@ * Represents a user's selected avatar. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { MediaUrl } from '../value-objects/MediaUrl'; export interface AvatarProps { @@ -15,7 +15,7 @@ export interface AvatarProps { isActive: boolean; } -export class Avatar implements IEntity { +export class Avatar implements Entity { readonly id: string; readonly driverId: string; readonly mediaUrl: MediaUrl; diff --git a/core/media/domain/entities/AvatarGenerationRequest.ts b/core/media/domain/entities/AvatarGenerationRequest.ts index 982ffff95..3864145d0 100644 --- a/core/media/domain/entities/AvatarGenerationRequest.ts +++ b/core/media/domain/entities/AvatarGenerationRequest.ts @@ -4,7 +4,7 @@ * Represents a request to generate a racing avatar from a face photo. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { AvatarGenerationRequestProps, AvatarGenerationStatus, @@ -13,7 +13,7 @@ import type { } from '../types/AvatarGenerationRequest'; import { MediaUrl } from '../value-objects/MediaUrl'; -export class AvatarGenerationRequest implements IEntity { +export class AvatarGenerationRequest implements Entity { readonly id: string; readonly userId: string; readonly facePhotoUrl: MediaUrl; diff --git a/core/media/domain/entities/Media.ts b/core/media/domain/entities/Media.ts index 55f10ec56..50fc476bb 100644 --- a/core/media/domain/entities/Media.ts +++ b/core/media/domain/entities/Media.ts @@ -4,7 +4,7 @@ * Represents a media file (image, video, etc.) stored in the system. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { MediaUrl } from '../value-objects/MediaUrl'; export type MediaType = 'image' | 'video' | 'document'; @@ -22,7 +22,7 @@ export interface MediaProps { metadata?: Record | undefined; } -export class Media implements IEntity { +export class Media implements Entity { readonly id: string; readonly filename: string; readonly originalName: string; diff --git a/core/media/domain/repositories/IAvatarGenerationRepository.ts b/core/media/domain/repositories/AvatarGenerationRepository.ts similarity index 94% rename from core/media/domain/repositories/IAvatarGenerationRepository.ts rename to core/media/domain/repositories/AvatarGenerationRepository.ts index e2250c491..f329df2fd 100644 --- a/core/media/domain/repositories/IAvatarGenerationRepository.ts +++ b/core/media/domain/repositories/AvatarGenerationRepository.ts @@ -6,7 +6,7 @@ import type { AvatarGenerationRequest } from '../entities/AvatarGenerationRequest'; -export interface IAvatarGenerationRepository { +export interface AvatarGenerationRepository { /** * Save an avatar generation request */ diff --git a/core/media/domain/repositories/IAvatarRepository.ts b/core/media/domain/repositories/AvatarRepository.ts similarity index 94% rename from core/media/domain/repositories/IAvatarRepository.ts rename to core/media/domain/repositories/AvatarRepository.ts index 0df34a600..8453c52cb 100644 --- a/core/media/domain/repositories/IAvatarRepository.ts +++ b/core/media/domain/repositories/AvatarRepository.ts @@ -6,7 +6,7 @@ import type { Avatar } from '../entities/Avatar'; -export interface IAvatarRepository { +export interface AvatarRepository { /** * Save an avatar */ diff --git a/core/media/domain/repositories/IMediaRepository.ts b/core/media/domain/repositories/MediaRepository.ts similarity index 93% rename from core/media/domain/repositories/IMediaRepository.ts rename to core/media/domain/repositories/MediaRepository.ts index c96ff91b9..c6558c8b3 100644 --- a/core/media/domain/repositories/IMediaRepository.ts +++ b/core/media/domain/repositories/MediaRepository.ts @@ -6,7 +6,7 @@ import type { Media } from '../entities/Media'; -export interface IMediaRepository { +export interface MediaRepository { /** * Save a media file */ diff --git a/core/media/domain/value-objects/AvatarId.ts b/core/media/domain/value-objects/AvatarId.ts index b0a9ae77e..a49f0c21a 100644 --- a/core/media/domain/value-objects/AvatarId.ts +++ b/core/media/domain/value-objects/AvatarId.ts @@ -1,10 +1,10 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface AvatarIdProps { value: string; } -export class AvatarId implements IValueObject { +export class AvatarId implements ValueObject { public readonly props: AvatarIdProps; private constructor(value: string) { diff --git a/core/media/domain/value-objects/MediaUrl.ts b/core/media/domain/value-objects/MediaUrl.ts index b52979507..cf2288186 100644 --- a/core/media/domain/value-objects/MediaUrl.ts +++ b/core/media/domain/value-objects/MediaUrl.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Value Object: MediaUrl @@ -12,7 +12,7 @@ export interface MediaUrlProps { value: string; } -export class MediaUrl implements IValueObject { +export class MediaUrl implements ValueObject { public readonly props: MediaUrlProps; private constructor(value: string) { diff --git a/core/notifications/application/index.ts b/core/notifications/application/index.ts deleted file mode 100644 index 8a3704d9b..000000000 --- a/core/notifications/application/index.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Notifications Application Layer - * - * Exports all use cases, queries, and ports. - */ - -// Use Cases -export * from './use-cases/GetUnreadNotificationsUseCase'; -export * from './use-cases/MarkNotificationReadUseCase'; -export * from './use-cases/NotificationPreferencesUseCases'; -export * from './use-cases/SendNotificationUseCase'; - -// Ports -export * from './ports/NotificationGateway'; - -// Re-export domain types for convenience -export type { - Notification, NotificationAction, NotificationData, NotificationProps, - NotificationStatus, NotificationUrgency -} from '../domain/entities/Notification'; -export type { ChannelPreference, NotificationPreference, NotificationPreferenceProps, TypePreference } from '../domain/entities/NotificationPreference'; -export { ALL_CHANNELS, DEFAULT_ENABLED_CHANNELS, getChannelDisplayName, getNotificationTypePriority, getNotificationTypeTitle, isExternalChannel } from '../domain/types/NotificationTypes'; -export type { NotificationChannel, NotificationType } from '../domain/types/NotificationTypes'; - -// Re-export repository interfaces -export type { INotificationPreferenceRepository } from '../domain/repositories/INotificationPreferenceRepository'; -export type { INotificationRepository } from '../domain/repositories/INotificationRepository'; - diff --git a/core/notifications/application/use-cases/GetAllNotificationsUseCase.ts b/core/notifications/application/use-cases/GetAllNotificationsUseCase.ts index 035e57d4f..f6b3b9832 100644 --- a/core/notifications/application/use-cases/GetAllNotificationsUseCase.ts +++ b/core/notifications/application/use-cases/GetAllNotificationsUseCase.ts @@ -5,10 +5,10 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Notification } from '../../domain/entities/Notification'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; export type GetAllNotificationsInput = { recipientId: string; diff --git a/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.test.ts b/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.test.ts index 42ac21860..bc10240bc 100644 --- a/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.test.ts +++ b/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.test.ts @@ -3,9 +3,9 @@ import { GetUnreadNotificationsUseCase, type GetUnreadNotificationsInput, } from './GetUnreadNotificationsUseCase'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Notification } from '../../domain/entities/Notification'; diff --git a/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.ts b/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.ts index f95358cb1..750200aa3 100644 --- a/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.ts +++ b/core/notifications/application/use-cases/GetUnreadNotificationsUseCase.ts @@ -5,10 +5,10 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Notification } from '../../domain/entities/Notification'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; export type GetUnreadNotificationsInput = { recipientId: string; diff --git a/core/notifications/application/use-cases/MarkNotificationReadUseCase.test.ts b/core/notifications/application/use-cases/MarkNotificationReadUseCase.test.ts index 7ae543ead..b0374618a 100644 --- a/core/notifications/application/use-cases/MarkNotificationReadUseCase.test.ts +++ b/core/notifications/application/use-cases/MarkNotificationReadUseCase.test.ts @@ -7,9 +7,9 @@ import { DismissNotificationUseCase, type DismissNotificationCommand, } from './MarkNotificationReadUseCase'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Notification } from '../../domain/entities/Notification'; diff --git a/core/notifications/application/use-cases/MarkNotificationReadUseCase.ts b/core/notifications/application/use-cases/MarkNotificationReadUseCase.ts index 2d8c5b34a..a78ec9c29 100644 --- a/core/notifications/application/use-cases/MarkNotificationReadUseCase.ts +++ b/core/notifications/application/use-cases/MarkNotificationReadUseCase.ts @@ -5,9 +5,9 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; export interface MarkNotificationReadCommand { notificationId: string; diff --git a/core/notifications/application/use-cases/NotificationPreferencesUseCases.test.ts b/core/notifications/application/use-cases/NotificationPreferencesUseCases.test.ts index a716d55de..9e6ad46b3 100644 --- a/core/notifications/application/use-cases/NotificationPreferencesUseCases.test.ts +++ b/core/notifications/application/use-cases/NotificationPreferencesUseCases.test.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { describe, expect, it, vi, type Mock, beforeEach } from 'vitest'; import type { ChannelPreference, NotificationPreference, TypePreference } from '../../domain/entities/NotificationPreference'; -import type { INotificationPreferenceRepository } from '../../domain/repositories/INotificationPreferenceRepository'; +import type { NotificationPreferenceRepository } from '../../domain/repositories/NotificationPreferenceRepository'; import type { NotificationChannel, NotificationType } from '../../domain/types/NotificationTypes'; import { GetNotificationPreferencesQuery, diff --git a/core/notifications/application/use-cases/NotificationPreferencesUseCases.ts b/core/notifications/application/use-cases/NotificationPreferencesUseCases.ts index 2ede4de9b..56cc87bc9 100644 --- a/core/notifications/application/use-cases/NotificationPreferencesUseCases.ts +++ b/core/notifications/application/use-cases/NotificationPreferencesUseCases.ts @@ -5,11 +5,11 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { NotificationPreference } from '../../domain/entities/NotificationPreference'; import type { ChannelPreference, TypePreference } from '../../domain/entities/NotificationPreference'; -import type { INotificationPreferenceRepository } from '../../domain/repositories/INotificationPreferenceRepository'; +import type { NotificationPreferenceRepository } from '../../domain/repositories/NotificationPreferenceRepository'; import type { NotificationType, NotificationChannel } from '../../domain/types/NotificationTypes'; /** diff --git a/core/notifications/application/use-cases/SendNotificationUseCase.test.ts b/core/notifications/application/use-cases/SendNotificationUseCase.test.ts index adfb5e071..5941f2d30 100644 --- a/core/notifications/application/use-cases/SendNotificationUseCase.test.ts +++ b/core/notifications/application/use-cases/SendNotificationUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { @@ -10,8 +10,8 @@ import { type SendNotificationResult, } from './SendNotificationUseCase'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; -import type { INotificationPreferenceRepository } from '../../domain/repositories/INotificationPreferenceRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; +import type { NotificationPreferenceRepository } from '../../domain/repositories/NotificationPreferenceRepository'; import type { NotificationGatewayRegistry } from '../ports/NotificationGateway'; import type { NotificationChannel, NotificationType } from '../../domain/types/NotificationTypes'; diff --git a/core/notifications/application/use-cases/SendNotificationUseCase.ts b/core/notifications/application/use-cases/SendNotificationUseCase.ts index 34e60e1b9..96018ba33 100644 --- a/core/notifications/application/use-cases/SendNotificationUseCase.ts +++ b/core/notifications/application/use-cases/SendNotificationUseCase.ts @@ -6,13 +6,13 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { v4 as uuid } from 'uuid'; import type { NotificationData } from '../../domain/entities/Notification'; import { Notification } from '../../domain/entities/Notification'; -import type { INotificationPreferenceRepository } from '../../domain/repositories/INotificationPreferenceRepository'; -import type { INotificationRepository } from '../../domain/repositories/INotificationRepository'; +import type { NotificationPreferenceRepository } from '../../domain/repositories/NotificationPreferenceRepository'; +import type { NotificationRepository } from '../../domain/repositories/NotificationRepository'; import type { NotificationChannel, NotificationType } from '../../domain/types/NotificationTypes'; import type { NotificationDeliveryResult, NotificationGatewayRegistry } from '../ports/NotificationGateway'; diff --git a/core/notifications/domain/entities/Notification.ts b/core/notifications/domain/entities/Notification.ts index c24c74d39..7078fa34b 100644 --- a/core/notifications/domain/entities/Notification.ts +++ b/core/notifications/domain/entities/Notification.ts @@ -5,7 +5,7 @@ * Immutable entity with factory methods and domain validation. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { NotificationDomainError } from '../errors/NotificationDomainError'; import { NotificationId } from '../value-objects/NotificationId'; @@ -86,7 +86,7 @@ export interface NotificationProps { respondedAt?: Date; } -export class Notification implements IEntity { +export class Notification implements Entity { private constructor(private readonly props: NotificationProps) {} static create(props: Omit & { diff --git a/core/notifications/domain/entities/NotificationPreference.ts b/core/notifications/domain/entities/NotificationPreference.ts index b96b538fa..c083aa951 100644 --- a/core/notifications/domain/entities/NotificationPreference.ts +++ b/core/notifications/domain/entities/NotificationPreference.ts @@ -4,7 +4,7 @@ * Represents a user's notification preferences for different channels and types. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { NotificationType, NotificationChannel } from '../types/NotificationTypes'; import { NotificationDomainError } from '../errors/NotificationDomainError'; import { QuietHours } from '../value-objects/QuietHours'; @@ -44,7 +44,7 @@ export interface NotificationPreferenceProps { updatedAt: Date; } -export class NotificationPreference implements IEntity { +export class NotificationPreference implements Entity { private constructor(private readonly props: NotificationPreferenceProps) {} static create( diff --git a/core/notifications/domain/errors/NotificationDomainError.ts b/core/notifications/domain/errors/NotificationDomainError.ts index 907cff718..3049b2210 100644 --- a/core/notifications/domain/errors/NotificationDomainError.ts +++ b/core/notifications/domain/errors/NotificationDomainError.ts @@ -1,11 +1,11 @@ -import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors'; +import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors'; /** * Domain Error: NotificationDomainError * * Implements the shared IDomainError contract for notification domain failures. */ -export class NotificationDomainError extends Error implements IDomainError { +export class NotificationDomainError extends Error implements DomainError { readonly name = 'NotificationDomainError'; readonly type = 'domain' as const; readonly context = 'notifications'; diff --git a/core/notifications/domain/repositories/INotificationPreferenceRepository.ts b/core/notifications/domain/repositories/NotificationPreferenceRepository.ts similarity index 93% rename from core/notifications/domain/repositories/INotificationPreferenceRepository.ts rename to core/notifications/domain/repositories/NotificationPreferenceRepository.ts index c979af590..1f2d84ff5 100644 --- a/core/notifications/domain/repositories/INotificationPreferenceRepository.ts +++ b/core/notifications/domain/repositories/NotificationPreferenceRepository.ts @@ -6,7 +6,7 @@ import type { NotificationPreference } from '../entities/NotificationPreference'; -export interface INotificationPreferenceRepository { +export interface NotificationPreferenceRepository { /** * Find preferences for a driver */ diff --git a/core/notifications/domain/repositories/INotificationRepository.ts b/core/notifications/domain/repositories/NotificationRepository.ts similarity index 97% rename from core/notifications/domain/repositories/INotificationRepository.ts rename to core/notifications/domain/repositories/NotificationRepository.ts index 759b2eb24..2176dd263 100644 --- a/core/notifications/domain/repositories/INotificationRepository.ts +++ b/core/notifications/domain/repositories/NotificationRepository.ts @@ -7,7 +7,7 @@ import type { Notification } from '../entities/Notification'; import type { NotificationType } from '../types/NotificationTypes'; -export interface INotificationRepository { +export interface NotificationRepository { /** * Find a notification by ID */ diff --git a/core/notifications/domain/value-objects/NotificationId.ts b/core/notifications/domain/value-objects/NotificationId.ts index b0bc86699..a9085c72f 100644 --- a/core/notifications/domain/value-objects/NotificationId.ts +++ b/core/notifications/domain/value-objects/NotificationId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { NotificationDomainError } from '../errors/NotificationDomainError'; export interface NotificationIdProps { @@ -11,7 +11,7 @@ export interface NotificationIdProps { * Encapsulates the unique identifier for a notification and * enforces basic invariants (non-empty trimmed string). */ -export class NotificationId implements IValueObject { +export class NotificationId implements ValueObject { public readonly props: NotificationIdProps; private constructor(value: string) { diff --git a/core/notifications/domain/value-objects/QuietHours.ts b/core/notifications/domain/value-objects/QuietHours.ts index f4c93c006..a92ab4ce0 100644 --- a/core/notifications/domain/value-objects/QuietHours.ts +++ b/core/notifications/domain/value-objects/QuietHours.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { NotificationDomainError } from '../errors/NotificationDomainError'; export interface QuietHoursProps { @@ -14,7 +14,7 @@ export interface QuietHoursProps { * * Supports both normal ranges (start < end) and overnight ranges (start > end). */ -export class QuietHours implements IValueObject { +export class QuietHours implements ValueObject { public readonly props: QuietHoursProps; private constructor(startHour: number, endHour: number) { diff --git a/core/payments/application/index.ts b/core/payments/application/index.ts deleted file mode 100644 index d5ddacaaf..000000000 --- a/core/payments/application/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './use-cases'; \ No newline at end of file diff --git a/core/payments/application/use-cases/AwardPrizeUseCase.test.ts b/core/payments/application/use-cases/AwardPrizeUseCase.test.ts index 697c1047f..5a277fc47 100644 --- a/core/payments/application/use-cases/AwardPrizeUseCase.test.ts +++ b/core/payments/application/use-cases/AwardPrizeUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { AwardPrizeUseCase, type AwardPrizeInput } from './AwardPrizeUseCase'; -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import { PrizeType, type Prize } from '../../domain/entities/Prize'; describe('AwardPrizeUseCase', () => { diff --git a/core/payments/application/use-cases/AwardPrizeUseCase.ts b/core/payments/application/use-cases/AwardPrizeUseCase.ts index 441f25361..2934a2d5c 100644 --- a/core/payments/application/use-cases/AwardPrizeUseCase.ts +++ b/core/payments/application/use-cases/AwardPrizeUseCase.ts @@ -4,10 +4,10 @@ * Awards a prize to a driver. */ -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import type { Prize } from '../../domain/entities/Prize'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface AwardPrizeInput { diff --git a/core/payments/application/use-cases/CreatePaymentUseCase.test.ts b/core/payments/application/use-cases/CreatePaymentUseCase.test.ts index 81416f133..c0ae458d0 100644 --- a/core/payments/application/use-cases/CreatePaymentUseCase.test.ts +++ b/core/payments/application/use-cases/CreatePaymentUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { CreatePaymentUseCase, type CreatePaymentInput } from './CreatePaymentUseCase'; -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import { PaymentType, PayerType, PaymentStatus } from '../../domain/entities/Payment'; describe('CreatePaymentUseCase', () => { diff --git a/core/payments/application/use-cases/CreatePaymentUseCase.ts b/core/payments/application/use-cases/CreatePaymentUseCase.ts index 59978d885..67dd9a6f0 100644 --- a/core/payments/application/use-cases/CreatePaymentUseCase.ts +++ b/core/payments/application/use-cases/CreatePaymentUseCase.ts @@ -4,11 +4,11 @@ * Creates a new payment. */ -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import type { Payment, PaymentType, PayerType } from '../../domain/entities/Payment'; import { PaymentStatus } from '../../domain/entities/Payment'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface CreatePaymentInput { diff --git a/core/payments/application/use-cases/CreatePrizeUseCase.test.ts b/core/payments/application/use-cases/CreatePrizeUseCase.test.ts index df24c9843..5718906c2 100644 --- a/core/payments/application/use-cases/CreatePrizeUseCase.test.ts +++ b/core/payments/application/use-cases/CreatePrizeUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { CreatePrizeUseCase, type CreatePrizeInput } from './CreatePrizeUseCase'; -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import { PrizeType, type Prize } from '../../domain/entities/Prize'; describe('CreatePrizeUseCase', () => { diff --git a/core/payments/application/use-cases/CreatePrizeUseCase.ts b/core/payments/application/use-cases/CreatePrizeUseCase.ts index e62826d82..86a5d7752 100644 --- a/core/payments/application/use-cases/CreatePrizeUseCase.ts +++ b/core/payments/application/use-cases/CreatePrizeUseCase.ts @@ -4,10 +4,10 @@ * Creates a new prize. */ -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import type { PrizeType, Prize } from '../../domain/entities/Prize'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface CreatePrizeInput { diff --git a/core/payments/application/use-cases/DeletePrizeUseCase.test.ts b/core/payments/application/use-cases/DeletePrizeUseCase.test.ts index 5b5112f3c..509295781 100644 --- a/core/payments/application/use-cases/DeletePrizeUseCase.test.ts +++ b/core/payments/application/use-cases/DeletePrizeUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { DeletePrizeUseCase, type DeletePrizeInput } from './DeletePrizeUseCase'; -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import { PrizeType, type Prize } from '../../domain/entities/Prize'; describe('DeletePrizeUseCase', () => { diff --git a/core/payments/application/use-cases/DeletePrizeUseCase.ts b/core/payments/application/use-cases/DeletePrizeUseCase.ts index b2a4903b5..f21776e3a 100644 --- a/core/payments/application/use-cases/DeletePrizeUseCase.ts +++ b/core/payments/application/use-cases/DeletePrizeUseCase.ts @@ -4,9 +4,9 @@ * Deletes a prize. */ -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface DeletePrizeInput { diff --git a/core/payments/application/use-cases/GetMembershipFeesUseCase.test.ts b/core/payments/application/use-cases/GetMembershipFeesUseCase.test.ts index b24193990..ce1f0eb57 100644 --- a/core/payments/application/use-cases/GetMembershipFeesUseCase.test.ts +++ b/core/payments/application/use-cases/GetMembershipFeesUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetMembershipFeesUseCase, type GetMembershipFeesInput } from './GetMembershipFeesUseCase'; -import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository'; describe('GetMembershipFeesUseCase', () => { let membershipFeeRepository: { diff --git a/core/payments/application/use-cases/GetMembershipFeesUseCase.ts b/core/payments/application/use-cases/GetMembershipFeesUseCase.ts index e9d104933..ec5481f6c 100644 --- a/core/payments/application/use-cases/GetMembershipFeesUseCase.ts +++ b/core/payments/application/use-cases/GetMembershipFeesUseCase.ts @@ -4,11 +4,11 @@ * Retrieves membership fees and member payments. */ -import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository'; import type { MembershipFee } from '../../domain/entities/MembershipFee'; import type { MemberPayment } from '../../domain/entities/MemberPayment'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetMembershipFeesErrorCode = 'INVALID_INPUT'; diff --git a/core/payments/application/use-cases/GetPaymentsUseCase.test.ts b/core/payments/application/use-cases/GetPaymentsUseCase.test.ts index 2548ce834..42594cd9a 100644 --- a/core/payments/application/use-cases/GetPaymentsUseCase.test.ts +++ b/core/payments/application/use-cases/GetPaymentsUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetPaymentsUseCase, type GetPaymentsInput } from './GetPaymentsUseCase'; -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import { PaymentType, PayerType } from '../../domain/entities/Payment'; describe('GetPaymentsUseCase', () => { diff --git a/core/payments/application/use-cases/GetPaymentsUseCase.ts b/core/payments/application/use-cases/GetPaymentsUseCase.ts index 067007e27..a44bf7f56 100644 --- a/core/payments/application/use-cases/GetPaymentsUseCase.ts +++ b/core/payments/application/use-cases/GetPaymentsUseCase.ts @@ -4,10 +4,10 @@ * Retrieves payments based on filters. */ -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import type { Payment, PaymentType } from '../../domain/entities/Payment'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetPaymentsInput { diff --git a/core/payments/application/use-cases/GetPrizesUseCase.test.ts b/core/payments/application/use-cases/GetPrizesUseCase.test.ts index 38bd8ed54..69990ee33 100644 --- a/core/payments/application/use-cases/GetPrizesUseCase.test.ts +++ b/core/payments/application/use-cases/GetPrizesUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetPrizesUseCase, type GetPrizesInput } from './GetPrizesUseCase'; -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import { PrizeType, type Prize } from '../../domain/entities/Prize'; describe('GetPrizesUseCase', () => { diff --git a/core/payments/application/use-cases/GetPrizesUseCase.ts b/core/payments/application/use-cases/GetPrizesUseCase.ts index e8ded5e54..322c1c839 100644 --- a/core/payments/application/use-cases/GetPrizesUseCase.ts +++ b/core/payments/application/use-cases/GetPrizesUseCase.ts @@ -4,10 +4,10 @@ * Retrieves prizes for a league or season. */ -import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository'; +import type { PrizeRepository } from '../../domain/repositories/PrizeRepository'; import type { Prize } from '../../domain/entities/Prize'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; export interface GetPrizesInput { leagueId: string; diff --git a/core/payments/application/use-cases/GetSponsorBillingUseCase.test.ts b/core/payments/application/use-cases/GetSponsorBillingUseCase.test.ts index 5c2fc4d50..ab1bd374c 100644 --- a/core/payments/application/use-cases/GetSponsorBillingUseCase.test.ts +++ b/core/payments/application/use-cases/GetSponsorBillingUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { GetSponsorBillingUseCase, type GetSponsorBillingInput } from './GetSponsorBillingUseCase'; -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import type { Payment } from '../../domain/entities/Payment'; import { PaymentStatus, PaymentType, PayerType } from '../../domain/entities/Payment'; -import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository'; +import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; import { SeasonSponsorship } from '@core/racing/domain/entities/season/SeasonSponsorship'; import { Money } from '@core/racing/domain/value-objects/Money'; diff --git a/core/payments/application/use-cases/GetSponsorBillingUseCase.ts b/core/payments/application/use-cases/GetSponsorBillingUseCase.ts index e4a28190a..42b55d68f 100644 --- a/core/payments/application/use-cases/GetSponsorBillingUseCase.ts +++ b/core/payments/application/use-cases/GetSponsorBillingUseCase.ts @@ -1,8 +1,8 @@ import { PaymentStatus, PaymentType } from '../../domain/entities/Payment'; -import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository'; -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface SponsorBillingStats { diff --git a/core/payments/application/use-cases/GetWalletUseCase.test.ts b/core/payments/application/use-cases/GetWalletUseCase.test.ts index 8af3bd32d..41fafc204 100644 --- a/core/payments/application/use-cases/GetWalletUseCase.test.ts +++ b/core/payments/application/use-cases/GetWalletUseCase.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { GetWalletUseCase, type GetWalletInput } from './GetWalletUseCase'; -import type { ITransactionRepository, IWalletRepository } from '../../domain/repositories/IWalletRepository'; +import type { TransactionRepository, IWalletRepository } from '../../domain/repositories/WalletRepository'; import type { Transaction, Wallet } from '../../domain/entities/Wallet'; import { TransactionType } from '../../domain/entities/Wallet'; diff --git a/core/payments/application/use-cases/GetWalletUseCase.ts b/core/payments/application/use-cases/GetWalletUseCase.ts index 52248f783..71edd7236 100644 --- a/core/payments/application/use-cases/GetWalletUseCase.ts +++ b/core/payments/application/use-cases/GetWalletUseCase.ts @@ -4,10 +4,10 @@ * Retrieves wallet information and transactions. */ -import type { IWalletRepository, ITransactionRepository } from '../../domain/repositories/IWalletRepository'; +import type { WalletRepository, ITransactionRepository } from '../../domain/repositories/WalletRepository'; import type { Wallet, Transaction } from '../../domain/entities/Wallet'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetWalletErrorCode = 'INVALID_INPUT'; diff --git a/core/payments/application/use-cases/ProcessWalletTransactionUseCase.test.ts b/core/payments/application/use-cases/ProcessWalletTransactionUseCase.test.ts index 91ab356af..e306c907b 100644 --- a/core/payments/application/use-cases/ProcessWalletTransactionUseCase.test.ts +++ b/core/payments/application/use-cases/ProcessWalletTransactionUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { ProcessWalletTransactionUseCase, type ProcessWalletTransactionInput } from './ProcessWalletTransactionUseCase'; -import type { IWalletRepository, ITransactionRepository } from '../../domain/repositories/IWalletRepository'; +import type { WalletRepository, ITransactionRepository } from '../../domain/repositories/WalletRepository'; import { TransactionType, ReferenceType } from '../../domain/entities/Wallet'; describe('ProcessWalletTransactionUseCase', () => { diff --git a/core/payments/application/use-cases/ProcessWalletTransactionUseCase.ts b/core/payments/application/use-cases/ProcessWalletTransactionUseCase.ts index 3e6b5c974..dda178b4e 100644 --- a/core/payments/application/use-cases/ProcessWalletTransactionUseCase.ts +++ b/core/payments/application/use-cases/ProcessWalletTransactionUseCase.ts @@ -4,11 +4,11 @@ * Processes a wallet transaction (deposit or withdrawal). */ -import type { IWalletRepository, ITransactionRepository } from '../../domain/repositories/IWalletRepository'; +import type { WalletRepository, ITransactionRepository } from '../../domain/repositories/WalletRepository'; import type { Wallet, Transaction } from '../../domain/entities/Wallet'; import { TransactionType, ReferenceType } from '../../domain/entities/Wallet'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface ProcessWalletTransactionInput { diff --git a/core/payments/application/use-cases/UpdateMemberPaymentUseCase.test.ts b/core/payments/application/use-cases/UpdateMemberPaymentUseCase.test.ts index 1bc016bad..d1217183c 100644 --- a/core/payments/application/use-cases/UpdateMemberPaymentUseCase.test.ts +++ b/core/payments/application/use-cases/UpdateMemberPaymentUseCase.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { UpdateMemberPaymentUseCase, type UpdateMemberPaymentInput } from './UpdateMemberPaymentUseCase'; -import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository'; import { MemberPaymentStatus, type MemberPayment } from '../../domain/entities/MemberPayment'; describe('UpdateMemberPaymentUseCase', () => { diff --git a/core/payments/application/use-cases/UpdateMemberPaymentUseCase.ts b/core/payments/application/use-cases/UpdateMemberPaymentUseCase.ts index b803504d8..d64621abb 100644 --- a/core/payments/application/use-cases/UpdateMemberPaymentUseCase.ts +++ b/core/payments/application/use-cases/UpdateMemberPaymentUseCase.ts @@ -4,11 +4,11 @@ * Updates a member payment record. */ -import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository'; import type { MemberPayment } from '../../domain/entities/MemberPayment'; import { MemberPaymentStatus } from '../../domain/entities/MemberPayment'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; const PLATFORM_FEE_RATE = 0.10; diff --git a/core/payments/application/use-cases/UpdatePaymentStatusUseCase.test.ts b/core/payments/application/use-cases/UpdatePaymentStatusUseCase.test.ts index bb9ed4bd0..7e6226ba1 100644 --- a/core/payments/application/use-cases/UpdatePaymentStatusUseCase.test.ts +++ b/core/payments/application/use-cases/UpdatePaymentStatusUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { UpdatePaymentStatusUseCase, type UpdatePaymentStatusInput } from './UpdatePaymentStatusUseCase'; -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import { PaymentStatus, PaymentType, PayerType } from '../../domain/entities/Payment'; describe('UpdatePaymentStatusUseCase', () => { diff --git a/core/payments/application/use-cases/UpdatePaymentStatusUseCase.ts b/core/payments/application/use-cases/UpdatePaymentStatusUseCase.ts index 23b4022aa..29c28e932 100644 --- a/core/payments/application/use-cases/UpdatePaymentStatusUseCase.ts +++ b/core/payments/application/use-cases/UpdatePaymentStatusUseCase.ts @@ -4,11 +4,11 @@ * Updates the status of a payment. */ -import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository'; +import type { PaymentRepository } from '../../domain/repositories/PaymentRepository'; import type { Payment } from '../../domain/entities/Payment'; import { PaymentStatus } from '../../domain/entities/Payment'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type UpdatePaymentStatusErrorCode = 'PAYMENT_NOT_FOUND'; diff --git a/core/payments/application/use-cases/UpsertMembershipFeeUseCase.test.ts b/core/payments/application/use-cases/UpsertMembershipFeeUseCase.test.ts index 4a13faada..e46389944 100644 --- a/core/payments/application/use-cases/UpsertMembershipFeeUseCase.test.ts +++ b/core/payments/application/use-cases/UpsertMembershipFeeUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi, type Mock } from 'vitest'; import { UpsertMembershipFeeUseCase, type UpsertMembershipFeeInput } from './UpsertMembershipFeeUseCase'; -import type { IMembershipFeeRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository'; import { MembershipFeeType } from '../../domain/entities/MembershipFee'; describe('UpsertMembershipFeeUseCase', () => { diff --git a/core/payments/application/use-cases/UpsertMembershipFeeUseCase.ts b/core/payments/application/use-cases/UpsertMembershipFeeUseCase.ts index d083975b0..709cc9585 100644 --- a/core/payments/application/use-cases/UpsertMembershipFeeUseCase.ts +++ b/core/payments/application/use-cases/UpsertMembershipFeeUseCase.ts @@ -4,10 +4,10 @@ * Creates or updates membership fee configuration. */ -import type { IMembershipFeeRepository } from '../../domain/repositories/IMembershipFeeRepository'; +import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository'; import type { MembershipFeeType, MembershipFee } from '../../domain/entities/MembershipFee'; import type { UseCase } from '@core/shared/application/UseCase'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; export interface UpsertMembershipFeeInput { leagueId: string; diff --git a/core/payments/application/use-cases/index.ts b/core/payments/application/use-cases/index.ts deleted file mode 100644 index b4c3130fc..000000000 --- a/core/payments/application/use-cases/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * from './AwardPrizeUseCase'; -export * from './CreatePaymentUseCase'; -export * from './CreatePrizeUseCase'; -export * from './DeletePrizeUseCase'; -export * from './GetMembershipFeesUseCase'; -export * from './GetPaymentsUseCase'; -export * from './GetPrizesUseCase'; -export * from './GetSponsorBillingUseCase'; -export * from './GetWalletUseCase'; -export * from './ProcessWalletTransactionUseCase'; -export * from './UpdateMemberPaymentUseCase'; -export * from './UpdatePaymentStatusUseCase'; -export * from './UpsertMembershipFeeUseCase'; \ No newline at end of file diff --git a/core/payments/domain/entities/index.ts b/core/payments/domain/entities/index.ts deleted file mode 100644 index 479ea69a1..000000000 --- a/core/payments/domain/entities/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './Payment'; -export * from './MembershipFee'; -export * from './MemberPayment'; -export * from './Prize'; -export * from './Wallet'; \ No newline at end of file diff --git a/core/payments/domain/index.ts b/core/payments/domain/index.ts deleted file mode 100644 index 653c2d601..000000000 --- a/core/payments/domain/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './entities'; -export * from './repositories'; \ No newline at end of file diff --git a/core/payments/domain/repositories/IMembershipFeeRepository.ts b/core/payments/domain/repositories/MembershipFeeRepository.ts similarity index 90% rename from core/payments/domain/repositories/IMembershipFeeRepository.ts rename to core/payments/domain/repositories/MembershipFeeRepository.ts index 388763c74..63de68caf 100644 --- a/core/payments/domain/repositories/IMembershipFeeRepository.ts +++ b/core/payments/domain/repositories/MembershipFeeRepository.ts @@ -5,14 +5,14 @@ import type { MembershipFee } from '../entities/MembershipFee'; import type { MemberPayment } from '../entities/MemberPayment'; -export interface IMembershipFeeRepository { +export interface MembershipFeeRepository { findById(id: string): Promise; findByLeagueId(leagueId: string): Promise; create(fee: MembershipFee): Promise; update(fee: MembershipFee): Promise; } -export interface IMemberPaymentRepository { +export interface MemberPaymentRepository { findById(id: string): Promise; findByFeeIdAndDriverId(feeId: string, driverId: string): Promise; findByLeagueIdAndDriverId(leagueId: string, driverId: string, membershipFeeRepo: IMembershipFeeRepository): Promise; diff --git a/core/payments/domain/repositories/IPaymentRepository.ts b/core/payments/domain/repositories/PaymentRepository.ts similarity index 93% rename from core/payments/domain/repositories/IPaymentRepository.ts rename to core/payments/domain/repositories/PaymentRepository.ts index e3f51740e..e76113015 100644 --- a/core/payments/domain/repositories/IPaymentRepository.ts +++ b/core/payments/domain/repositories/PaymentRepository.ts @@ -4,7 +4,7 @@ import type { Payment, PaymentType } from '../entities/Payment'; -export interface IPaymentRepository { +export interface PaymentRepository { findById(id: string): Promise; findByLeagueId(leagueId: string): Promise; findByPayerId(payerId: string): Promise; diff --git a/core/payments/domain/repositories/IPrizeRepository.ts b/core/payments/domain/repositories/PrizeRepository.ts similarity index 93% rename from core/payments/domain/repositories/IPrizeRepository.ts rename to core/payments/domain/repositories/PrizeRepository.ts index 462f3278e..8be82c095 100644 --- a/core/payments/domain/repositories/IPrizeRepository.ts +++ b/core/payments/domain/repositories/PrizeRepository.ts @@ -4,7 +4,7 @@ import type { Prize } from '../entities/Prize'; -export interface IPrizeRepository { +export interface PrizeRepository { findById(id: string): Promise; findByLeagueId(leagueId: string): Promise; findByLeagueIdAndSeasonId(leagueId: string, seasonId: string): Promise; diff --git a/core/payments/domain/repositories/IWalletRepository.ts b/core/payments/domain/repositories/WalletRepository.ts similarity index 85% rename from core/payments/domain/repositories/IWalletRepository.ts rename to core/payments/domain/repositories/WalletRepository.ts index 25739afbc..fadabe0de 100644 --- a/core/payments/domain/repositories/IWalletRepository.ts +++ b/core/payments/domain/repositories/WalletRepository.ts @@ -4,14 +4,14 @@ import type { Wallet, Transaction } from '../entities/Wallet'; -export interface IWalletRepository { +export interface WalletRepository { findById(id: string): Promise; findByLeagueId(leagueId: string): Promise; create(wallet: Wallet): Promise; update(wallet: Wallet): Promise; } -export interface ITransactionRepository { +export interface TransactionRepository { findById(id: string): Promise; findByWalletId(walletId: string): Promise; create(transaction: Transaction): Promise; diff --git a/core/payments/domain/repositories/index.ts b/core/payments/domain/repositories/index.ts deleted file mode 100644 index 5f0501ceb..000000000 --- a/core/payments/domain/repositories/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './IPaymentRepository'; -export * from './IMembershipFeeRepository'; -export * from './IPrizeRepository'; -export * from './IWalletRepository'; \ No newline at end of file diff --git a/core/payments/index.ts b/core/payments/index.ts deleted file mode 100644 index 9a29d54e4..000000000 --- a/core/payments/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './domain'; -export * from './application'; \ No newline at end of file diff --git a/core/racing/application/index.ts b/core/racing/application/index.ts deleted file mode 100644 index 4f560907d..000000000 --- a/core/racing/application/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -export * from './use-cases/JoinLeagueUseCase'; -export * from './use-cases/RegisterForRaceUseCase'; -export * from './use-cases/WithdrawFromRaceUseCase'; -export * from './use-cases/IsDriverRegisteredForRaceUseCase'; -export * from './use-cases/GetRaceRegistrationsUseCase'; -export * from './use-cases/CreateTeamUseCase'; -export * from './use-cases/JoinTeamUseCase'; -export * from './use-cases/LeaveTeamUseCase'; -export * from './use-cases/ApproveTeamJoinRequestUseCase'; -export * from './use-cases/RejectTeamJoinRequestUseCase'; -export * from './use-cases/UpdateTeamUseCase'; -export * from './use-cases/GetAllTeamsUseCase'; -export * from './use-cases/GetTeamDetailsUseCase'; -export * from './use-cases/GetTeamMembersUseCase'; -export * from './use-cases/GetTeamJoinRequestsUseCase'; -export * from './use-cases/GetDriverTeamUseCase'; -export * from './use-cases/GetLeagueStandingsUseCase'; -export * from './use-cases/GetLeagueDriverSeasonStatsUseCase'; -export * from './use-cases/GetAllLeaguesWithCapacityUseCase'; -export * from './use-cases/GetAllLeaguesWithCapacityAndScoringUseCase'; -export * from './use-cases/GetAllRacesUseCase'; -export * from './use-cases/GetAllRacesPageDataUseCase'; -export * from './use-cases/GetTotalRacesUseCase'; -export * from './use-cases/ImportRaceResultsApiUseCase'; -export * from './use-cases/ListLeagueScoringPresetsUseCase'; -export * from './use-cases/GetLeagueScoringConfigUseCase'; -export * from './use-cases/RecalculateChampionshipStandingsUseCase'; -export * from './use-cases/CreateLeagueWithSeasonAndScoringUseCase'; -export * from './use-cases/GetLeagueFullConfigUseCase'; -export * from './use-cases/PreviewLeagueScheduleUseCase'; -export * from './use-cases/GetRaceWithSOFUseCase'; -export * from './use-cases/GetLeagueStatsUseCase'; -export * from './use-cases/FileProtestUseCase'; -export * from './use-cases/ReviewProtestUseCase'; -export * from './use-cases/ApplyPenaltyUseCase'; -export * from './use-cases/QuickPenaltyUseCase'; -export * from './use-cases/GetRaceProtestsUseCase'; -export * from './use-cases/GetRacePenaltiesUseCase'; -export * from './use-cases/RequestProtestDefenseUseCase'; -export * from './use-cases/SubmitProtestDefenseUseCase'; -export * from './use-cases/GetSponsorDashboardUseCase'; -export * from './use-cases/GetSponsorSponsorshipsUseCase'; -export * from './use-cases/ApplyForSponsorshipUseCase'; -export * from './use-cases/AcceptSponsorshipRequestUseCase'; -export * from './use-cases/RejectSponsorshipRequestUseCase'; -export * from './use-cases/GetPendingSponsorshipRequestsUseCase'; -export * from './use-cases/GetEntitySponsorshipPricingUseCase'; -export * from './ports/LeagueScoringPresetProvider'; - -// Team Rating Queries -export * from './queries/index'; - -// Team Rating DTOs -export type { TeamRatingSummaryDto, TeamRatingDimension } from './dtos/TeamRatingSummaryDto'; -export type { TeamLedgerEntryDto, TeamLedgerFilter, PaginatedTeamLedgerResult } from './dtos/TeamLedgerEntryDto'; - - // Re-export domain types for legacy callers (type-only) - export type { - LeagueMembership, - MembershipRole, - MembershipStatus, - JoinRequest, - } from '../domain/entities/LeagueMembership'; - -export type { RaceRegistration } from '../domain/entities/RaceRegistration'; - -export type { Team } from '../domain/entities/Team'; -export type { - TeamMembership, - TeamJoinRequest, - TeamRole, - TeamMembershipStatus, -} from '../domain/types/TeamMembership'; diff --git a/core/racing/application/ports/IImageServicePort.ts b/core/racing/application/ports/ImageServicePort.ts similarity index 82% rename from core/racing/application/ports/IImageServicePort.ts rename to core/racing/application/ports/ImageServicePort.ts index 45730d46c..80d4f5e2d 100644 --- a/core/racing/application/ports/IImageServicePort.ts +++ b/core/racing/application/ports/ImageServicePort.ts @@ -1,4 +1,4 @@ -export interface IImageServicePort { +export interface ImageServicePort { getDriverAvatar(driverId: string): string; getTeamLogo(teamId: string): string; getLeagueCover(leagueId: string): string; diff --git a/core/racing/application/ports/ITeamRaceResultsProvider.ts b/core/racing/application/ports/TeamRaceResultsProvider.ts similarity index 91% rename from core/racing/application/ports/ITeamRaceResultsProvider.ts rename to core/racing/application/ports/TeamRaceResultsProvider.ts index 93eff85ce..49d83fc08 100644 --- a/core/racing/application/ports/ITeamRaceResultsProvider.ts +++ b/core/racing/application/ports/TeamRaceResultsProvider.ts @@ -6,7 +6,7 @@ import { TeamDrivingRaceFactsDto } from '../../domain/services/TeamDrivingRating * Provides race results for teams from the racing context. * This is a port that adapts the racing domain data to the rating system. */ -export interface ITeamRaceResultsProvider { +export interface TeamRaceResultsProvider { /** * Get race results for teams * Returns team race facts needed for rating calculations diff --git a/core/racing/application/queries/GetTeamRatingLedgerQuery.ts b/core/racing/application/queries/GetTeamRatingLedgerQuery.ts index ab23d099a..bb1ceefb4 100644 --- a/core/racing/application/queries/GetTeamRatingLedgerQuery.ts +++ b/core/racing/application/queries/GetTeamRatingLedgerQuery.ts @@ -6,7 +6,7 @@ */ import { TeamLedgerEntryDto, TeamLedgerFilter, PaginatedTeamLedgerResult } from '../dtos/TeamLedgerEntryDto'; -import { ITeamRatingEventRepository, PaginatedQueryOptions, TeamRatingEventFilter } from '../../domain/repositories/ITeamRatingEventRepository'; +import { TeamRatingEventRepository, PaginatedQueryOptions, TeamRatingEventFilter } from '../../domain/repositories/TeamRatingEventRepository'; export interface GetTeamRatingLedgerQuery { teamId: string; diff --git a/core/racing/application/queries/GetTeamRatingsSummaryQuery.ts b/core/racing/application/queries/GetTeamRatingsSummaryQuery.ts index ccfdab638..396c6fba9 100644 --- a/core/racing/application/queries/GetTeamRatingsSummaryQuery.ts +++ b/core/racing/application/queries/GetTeamRatingsSummaryQuery.ts @@ -6,8 +6,8 @@ */ import { TeamRatingSummaryDto } from '../dtos/TeamRatingSummaryDto'; -import { ITeamRatingRepository } from '../../domain/repositories/ITeamRatingRepository'; -import { ITeamRatingEventRepository } from '../../domain/repositories/ITeamRatingEventRepository'; +import { TeamRatingRepository } from '../../domain/repositories/TeamRatingRepository'; +import { TeamRatingEventRepository } from '../../domain/repositories/TeamRatingEventRepository'; export interface GetTeamRatingsSummaryQuery { teamId: string; diff --git a/core/racing/application/queries/index.ts b/core/racing/application/queries/index.ts deleted file mode 100644 index b86a4748b..000000000 --- a/core/racing/application/queries/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Team Rating Queries -export type { GetTeamRatingsSummaryQuery } from './GetTeamRatingsSummaryQuery'; -export { GetTeamRatingsSummaryQueryHandler } from './GetTeamRatingsSummaryQuery'; -export type { GetTeamRatingLedgerQuery } from './GetTeamRatingLedgerQuery'; -export { GetTeamRatingLedgerQueryHandler } from './GetTeamRatingLedgerQuery'; \ No newline at end of file diff --git a/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.test.ts b/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.test.ts index 60a57bd03..3cc6c586d 100644 --- a/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.test.ts +++ b/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.test.ts @@ -1,14 +1,14 @@ import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; -import type { IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository'; +import type { WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; import type { Logger } from '@core/shared/application'; import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; import { LeagueWallet } from '../../domain/entities/league-wallet/LeagueWallet'; import { Season } from '../../domain/entities/season/Season'; import { SponsorshipRequest } from '../../domain/entities/SponsorshipRequest'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; import { Money } from '../../domain/value-objects/Money'; import { AcceptSponsorshipRequestUseCase } from './AcceptSponsorshipRequestUseCase'; diff --git a/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.ts b/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.ts index 2a1ca8faa..b79a99b8b 100644 --- a/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.ts +++ b/core/racing/application/use-cases/AcceptSponsorshipRequestUseCase.ts @@ -6,15 +6,15 @@ */ import type { NotificationService } from '@core/notifications/application/ports/NotificationService'; -import type { IWalletRepository } from '@core/payments/domain/repositories/IWalletRepository'; +import type { WalletRepository } from '@core/payments/domain/repositories/WalletRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { SeasonSponsorship } from '../../domain/entities/season/SeasonSponsorship'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; export interface AcceptSponsorshipRequestInput { requestId: string; diff --git a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts index 788b584b2..ac23faf1e 100644 --- a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts +++ b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.test.ts @@ -1,13 +1,13 @@ import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase'; -import { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; // Mock repositories -class MockTeamRatingEventRepository implements ITeamRatingEventRepository { +class MockTeamRatingEventRepository implements TeamRatingEventRepository { private events: TeamRatingEvent[] = []; async save(event: TeamRatingEvent): Promise { @@ -43,7 +43,7 @@ class MockTeamRatingEventRepository implements ITeamRatingEventRepository { } } -class MockTeamRatingRepository implements ITeamRatingRepository { +class MockTeamRatingRepository implements TeamRatingRepository { private snapshots: Map = new Map(); async findByTeamId(teamId: string): Promise { diff --git a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.ts b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.ts index ed2e87941..407c20b97 100644 --- a/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.ts +++ b/core/racing/application/use-cases/AppendTeamRatingEventsUseCase.ts @@ -1,5 +1,5 @@ -import type { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import type { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingSnapshotCalculator } from '@core/racing/domain/services/TeamRatingSnapshotCalculator'; diff --git a/core/racing/application/use-cases/ApplyForSponsorshipUseCase.test.ts b/core/racing/application/use-cases/ApplyForSponsorshipUseCase.test.ts index 954ed5fb4..81b327084 100644 --- a/core/racing/application/use-cases/ApplyForSponsorshipUseCase.test.ts +++ b/core/racing/application/use-cases/ApplyForSponsorshipUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { ApplyForSponsorshipUseCase } from './ApplyForSponsorshipUseCase'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; -import type { ISponsorshipPricingRepository } from '../../domain/repositories/ISponsorshipPricingRepository'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; +import type { SponsorshipPricingRepository } from '../../domain/repositories/SponsorshipPricingRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import type { Logger } from '@core/shared/application'; import { Money } from '../../domain/value-objects/Money'; diff --git a/core/racing/application/use-cases/ApplyForSponsorshipUseCase.ts b/core/racing/application/use-cases/ApplyForSponsorshipUseCase.ts index 37ac37f27..9a2c56adf 100644 --- a/core/racing/application/use-cases/ApplyForSponsorshipUseCase.ts +++ b/core/racing/application/use-cases/ApplyForSponsorshipUseCase.ts @@ -6,12 +6,12 @@ */ import { SponsorshipRequest } from '../../domain/entities/SponsorshipRequest'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; -import type { ISponsorshipPricingRepository } from '../../domain/repositories/ISponsorshipPricingRepository'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; +import type { SponsorshipPricingRepository } from '../../domain/repositories/SponsorshipPricingRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import { Money, isCurrency } from '../../domain/value-objects/Money'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface ApplyForSponsorshipInput { diff --git a/core/racing/application/use-cases/ApplyPenaltyUseCase.test.ts b/core/racing/application/use-cases/ApplyPenaltyUseCase.test.ts index b44a85cef..84cc01984 100644 --- a/core/racing/application/use-cases/ApplyPenaltyUseCase.test.ts +++ b/core/racing/application/use-cases/ApplyPenaltyUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { ApplyPenaltyUseCase, type ApplyPenaltyResult } from './ApplyPenaltyUseCase'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; describe('ApplyPenaltyUseCase', () => { let mockPenaltyRepo: { create: Mock; diff --git a/core/racing/application/use-cases/ApplyPenaltyUseCase.ts b/core/racing/application/use-cases/ApplyPenaltyUseCase.ts index cfff0a62d..66414ded9 100644 --- a/core/racing/application/use-cases/ApplyPenaltyUseCase.ts +++ b/core/racing/application/use-cases/ApplyPenaltyUseCase.ts @@ -6,13 +6,13 @@ */ import { Penalty } from '../../domain/entities/penalty/Penalty'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { randomUUID } from 'crypto'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface ApplyPenaltyInput { diff --git a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts index 2a5b4707f..55f0e63a7 100644 --- a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.test.ts @@ -4,8 +4,8 @@ import { type ApproveLeagueJoinRequestResult, } from './ApproveLeagueJoinRequestUseCase'; import { League } from '../../domain/entities/League'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; describe('ApproveLeagueJoinRequestUseCase', () => { let mockLeagueMembershipRepo: { getJoinRequests: Mock; diff --git a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.ts b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.ts index 3fa08a244..18c98e3c6 100644 --- a/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.ts +++ b/core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase.ts @@ -1,6 +1,6 @@ -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { Result } from '@core/shared/application/Result'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { randomUUID } from 'crypto'; import { JoinedAt } from '../../domain/value-objects/JoinedAt'; diff --git a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts index 577d2c33f..dda537f74 100644 --- a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { ApproveTeamJoinRequestUseCase, type ApproveTeamJoinRequestResult } from './ApproveTeamJoinRequestUseCase'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; describe('ApproveTeamJoinRequestUseCase', () => { let useCase: ApproveTeamJoinRequestUseCase; diff --git a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.ts b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.ts index fcdec44cf..840da77a5 100644 --- a/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.ts +++ b/core/racing/application/use-cases/ApproveTeamJoinRequestUseCase.ts @@ -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 { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { TeamJoinRequest, TeamMembership, diff --git a/core/racing/application/use-cases/CancelRaceUseCase.test.ts b/core/racing/application/use-cases/CancelRaceUseCase.test.ts index b4098bbd2..07c6dc432 100644 --- a/core/racing/application/use-cases/CancelRaceUseCase.test.ts +++ b/core/racing/application/use-cases/CancelRaceUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { CancelRaceUseCase, type CancelRaceResult } from './CancelRaceUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { Logger } from '@core/shared/application'; import { Race } from '../../domain/entities/Race'; import { SessionType } from '../../domain/value-objects/SessionType'; diff --git a/core/racing/application/use-cases/CancelRaceUseCase.ts b/core/racing/application/use-cases/CancelRaceUseCase.ts index ad1cc6896..f440c656a 100644 --- a/core/racing/application/use-cases/CancelRaceUseCase.ts +++ b/core/racing/application/use-cases/CancelRaceUseCase.ts @@ -1,6 +1,6 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Race } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.test.ts b/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.test.ts index f45652751..6ecfac221 100644 --- a/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.test.ts +++ b/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { CloseRaceEventStewardingUseCase, type CloseRaceEventStewardingResult } from './CloseRaceEventStewardingUseCase'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; import type { DomainEventPublisher } from '@core/shared/domain/DomainEvent'; import type { Logger } from '@core/shared/application'; import { RaceEvent } from '../../domain/entities/RaceEvent'; diff --git a/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.ts b/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.ts index e867d86b4..7bda899b1 100644 --- a/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.ts +++ b/core/racing/application/use-cases/CloseRaceEventStewardingUseCase.ts @@ -1,10 +1,10 @@ import type { Logger } from '@core/shared/application'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; import type { DomainEventPublisher } from '@core/shared/domain/DomainEvent'; import { RaceEventStewardingClosedEvent } from '../../domain/events/RaceEventStewardingClosed'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { RaceEvent } from '../../domain/entities/RaceEvent'; diff --git a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts index 24a2a2cfd..fd47d1661 100644 --- a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts +++ b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.test.ts @@ -4,7 +4,7 @@ import { type CompleteDriverOnboardingInput, type CompleteDriverOnboardingResult, } from './CompleteDriverOnboardingUseCase'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { Driver } from '../../domain/entities/Driver'; import type { Logger } from '@core/shared/application/Logger'; diff --git a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.ts b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.ts index 485dc97f4..5f268c280 100644 --- a/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.ts +++ b/core/racing/application/use-cases/CompleteDriverOnboardingUseCase.ts @@ -1,6 +1,6 @@ -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { Driver } from '../../domain/entities/Driver'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application/Logger'; diff --git a/core/racing/application/use-cases/CompleteRaceUseCase.test.ts b/core/racing/application/use-cases/CompleteRaceUseCase.test.ts index 2b82b7451..5cc9307d6 100644 --- a/core/racing/application/use-cases/CompleteRaceUseCase.test.ts +++ b/core/racing/application/use-cases/CompleteRaceUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { CompleteRaceUseCase, type CompleteRaceInput, type CompleteRaceResult } from './CompleteRaceUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; describe('CompleteRaceUseCase', () => { let useCase: CompleteRaceUseCase; let raceRepository: { diff --git a/core/racing/application/use-cases/CompleteRaceUseCase.ts b/core/racing/application/use-cases/CompleteRaceUseCase.ts index 5668ffb32..ae826f2d1 100644 --- a/core/racing/application/use-cases/CompleteRaceUseCase.ts +++ b/core/racing/application/use-cases/CompleteRaceUseCase.ts @@ -1,10 +1,10 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import { Result as RaceResult } from '../../domain/entities/result/Result'; import { Standing } from '../../domain/entities/Standing'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface CompleteRaceInput { diff --git a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts index 9f1d0b02b..06ded6556 100644 --- a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts +++ b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.test.ts @@ -4,12 +4,12 @@ import { type CompleteRaceWithRatingsInput, type CompleteRaceWithRatingsResult, } from './CompleteRaceUseCaseWithRatings'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import { RatingUpdateService } from '@core/identity/domain/services/RatingUpdateService'; -import type { IRaceResultsProvider } from '@core/identity/application/ports/IRaceResultsProvider'; +import type { RaceResultsProvider } from '@core/identity/application/ports/RaceResultsProvider'; describe('CompleteRaceUseCaseWithRatings', () => { let useCase: CompleteRaceUseCaseWithRatings; diff --git a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.ts b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.ts index 909280880..09ef1d3f5 100644 --- a/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.ts +++ b/core/racing/application/use-cases/CompleteRaceUseCaseWithRatings.ts @@ -1,14 +1,14 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import { Result as RaceResult } from '../../domain/entities/result/Result'; import { Standing } from '../../domain/entities/Standing'; import { RaceResultGenerator } from '../utils/RaceResultGenerator'; import { RatingUpdateService } from '@core/identity/domain/services/RatingUpdateService'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IRaceResultsProvider } from '@core/identity/application/ports/IRaceResultsProvider'; +import type { RaceResultsProvider } from '@core/identity/application/ports/RaceResultsProvider'; export interface CompleteRaceWithRatingsInput { raceId: string; diff --git a/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.test.ts b/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.test.ts index 9b562d714..edfcd4247 100644 --- a/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.test.ts +++ b/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.test.ts @@ -3,8 +3,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC import { Race } from '../../domain/entities/Race'; import { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { CreateLeagueSeasonScheduleRaceUseCase, diff --git a/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.ts b/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.ts index 016d05bde..0ae1dcd89 100644 --- a/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.ts +++ b/core/racing/application/use-cases/CreateLeagueSeasonScheduleRaceUseCase.ts @@ -1,11 +1,11 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Race } from '../../domain/entities/Race'; import type { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; export type CreateLeagueSeasonScheduleRaceInput = { leagueId: string; diff --git a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts index e31f60947..01286043a 100644 --- a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts +++ b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.test.ts @@ -4,9 +4,9 @@ import { type CreateLeagueWithSeasonAndScoringCommand, type CreateLeagueWithSeasonAndScoringResult, } from './CreateLeagueWithSeasonAndScoringUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; describe('CreateLeagueWithSeasonAndScoringUseCase', () => { let useCase: CreateLeagueWithSeasonAndScoringUseCase; diff --git a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.ts b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.ts index 32d2bef98..8127f9fed 100644 --- a/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.ts +++ b/core/racing/application/use-cases/CreateLeagueWithSeasonAndScoringUseCase.ts @@ -2,9 +2,9 @@ import { v4 as uuidv4 } from 'uuid'; import { League } from '../../domain/entities/League'; import { Season } from '../../domain/entities/season/Season'; import { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; import type { Logger } from '@core/shared/application'; import type { ChampionshipConfig } from '../../domain/types/ChampionshipConfig'; import type { SessionType } from '../../domain/types/SessionType'; @@ -14,7 +14,7 @@ import { LeagueVisibility, MIN_RANKED_LEAGUE_DRIVERS, } from '../../domain/value-objects/LeagueVisibility'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type CreateLeagueWithSeasonAndScoringCommand = { diff --git a/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.test.ts b/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.test.ts index 1a30e5962..8adfa1380 100644 --- a/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.test.ts +++ b/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, vi, Mock } from 'vitest'; import { Season } from '@core/racing/domain/entities/season/Season'; -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; import { CreateSeasonForLeagueUseCase, type CreateSeasonForLeagueInput, @@ -10,7 +10,7 @@ import { type LeagueConfigFormModel, } from '@core/racing/application/use-cases/CreateSeasonForLeagueUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; function createLeagueConfigFormModel(overrides?: Partial): LeagueConfigFormModel { return { diff --git a/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.ts b/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.ts index 8c027a3d0..4d5a59435 100644 --- a/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.ts +++ b/core/racing/application/use-cases/CreateSeasonForLeagueUseCase.ts @@ -1,7 +1,7 @@ import { Season } from '../../domain/entities/season/Season'; import { League } from '../../domain/entities/League'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { SeasonSchedule } from '../../domain/value-objects/SeasonSchedule'; import { SeasonScoringConfig } from '../../domain/value-objects/SeasonScoringConfig'; import { SeasonDropPolicy, type SeasonDropStrategy } from '../../domain/value-objects/SeasonDropPolicy'; @@ -14,7 +14,7 @@ import { WeekdaySet } from '../../domain/value-objects/WeekdaySet'; import { MonthlyRecurrencePattern } from '../../domain/value-objects/MonthlyRecurrencePattern'; import type { Weekday } from '../../domain/types/Weekday'; import { v4 as uuidv4 } from 'uuid'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type LeagueConfigFormModel = { diff --git a/core/racing/application/use-cases/CreateSponsorUseCase.test.ts b/core/racing/application/use-cases/CreateSponsorUseCase.test.ts index 251782bbd..ad8dae47c 100644 --- a/core/racing/application/use-cases/CreateSponsorUseCase.test.ts +++ b/core/racing/application/use-cases/CreateSponsorUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { CreateSponsorUseCase, type CreateSponsorInput } from './CreateSponsorUseCase'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import type { Logger } from '@core/shared/application'; describe('CreateSponsorUseCase', () => { diff --git a/core/racing/application/use-cases/CreateSponsorUseCase.ts b/core/racing/application/use-cases/CreateSponsorUseCase.ts index 4a4177941..e37e85c13 100644 --- a/core/racing/application/use-cases/CreateSponsorUseCase.ts +++ b/core/racing/application/use-cases/CreateSponsorUseCase.ts @@ -5,9 +5,9 @@ */ import { v4 as uuidv4 } from 'uuid'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface CreateSponsorInput { diff --git a/core/racing/application/use-cases/CreateTeamUseCase.test.ts b/core/racing/application/use-cases/CreateTeamUseCase.test.ts index d1fbe570c..ecf2e384e 100644 --- a/core/racing/application/use-cases/CreateTeamUseCase.test.ts +++ b/core/racing/application/use-cases/CreateTeamUseCase.test.ts @@ -4,8 +4,8 @@ import { type CreateTeamInput, type CreateTeamResult, } from './CreateTeamUseCase'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { Logger } from '@core/shared/application'; describe('CreateTeamUseCase', () => { let useCase: CreateTeamUseCase; diff --git a/core/racing/application/use-cases/CreateTeamUseCase.ts b/core/racing/application/use-cases/CreateTeamUseCase.ts index 2e8104caf..7a1c08e5f 100644 --- a/core/racing/application/use-cases/CreateTeamUseCase.ts +++ b/core/racing/application/use-cases/CreateTeamUseCase.ts @@ -4,8 +4,8 @@ * Creates a new team. */ import { v4 as uuidv4 } from 'uuid'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import { Team } from '../../domain/entities/Team'; import type { TeamMembership, @@ -13,7 +13,7 @@ import type { TeamRole, } from '../../domain/types/TeamMembership'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface CreateTeamInput { name: string; diff --git a/core/racing/application/use-cases/DashboardOverviewUseCase.test.ts b/core/racing/application/use-cases/DashboardOverviewUseCase.test.ts index fed678089..660470a25 100644 --- a/core/racing/application/use-cases/DashboardOverviewUseCase.test.ts +++ b/core/racing/application/use-cases/DashboardOverviewUseCase.test.ts @@ -13,7 +13,7 @@ import { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership' import { Result as RaceResult } from '@core/racing/domain/entities/result/Result'; import type { FeedItem } from '@core/social/domain/types/FeedItem'; -import { Result as UseCaseResult } from '@core/shared/application/Result'; +import { Result as UseCaseResult } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { JoinRequest } from '@core/racing/domain/entities/JoinRequest'; import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; diff --git a/core/racing/application/use-cases/DashboardOverviewUseCase.ts b/core/racing/application/use-cases/DashboardOverviewUseCase.ts index 4f283bf26..e884bfeaa 100644 --- a/core/racing/application/use-cases/DashboardOverviewUseCase.ts +++ b/core/racing/application/use-cases/DashboardOverviewUseCase.ts @@ -1,19 +1,19 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; +import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import type { FeedItem } from '@core/social/domain/types/FeedItem'; import { Driver } from '../../domain/entities/Driver'; import { League } from '../../domain/entities/League'; import { Race } from '../../domain/entities/Race'; import { Standing } from '../../domain/entities/Standing'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { Result as RaceResult } from '../../domain/entities/result/Result'; export interface DashboardOverviewInput { diff --git a/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.test.ts b/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.test.ts index f69bd2b7d..ecfd0ccfe 100644 --- a/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.test.ts +++ b/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.test.ts @@ -3,8 +3,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC import { Race } from '../../domain/entities/Race'; import { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { DeleteLeagueSeasonScheduleRaceUseCase, diff --git a/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.ts b/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.ts index 29b6c27c1..c3508b52c 100644 --- a/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.ts +++ b/core/racing/application/use-cases/DeleteLeagueSeasonScheduleRaceUseCase.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; export type DeleteLeagueSeasonScheduleRaceInput = { leagueId: string; diff --git a/core/racing/application/use-cases/DriverStatsUseCase.ts b/core/racing/application/use-cases/DriverStatsUseCase.ts index 3d6e5782a..0f2f4959e 100644 --- a/core/racing/application/use-cases/DriverStatsUseCase.ts +++ b/core/racing/application/use-cases/DriverStatsUseCase.ts @@ -1,113 +1,26 @@ /** - * Application Use Case: DriverStatsUseCase + * Application Use Case Interface: IDriverStatsUseCase * - * Computes detailed driver statistics from race results and standings. - * Orchestrates repositories to provide stats data to presentation layer. + * Use case for computing detailed driver statistics from race results and standings. + * This is an application layer concern that orchestrates domain data. */ -import type { Logger } from '@core/shared/application'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; -import type { IDriverStatsUseCase, DriverStats } from './IDriverStatsUseCase'; +export interface DriverStats { + rating: number; + safetyRating: number; + sportsmanshipRating: number; + totalRaces: number; + wins: number; + podiums: number; + dnfs: number; + avgFinish: number; + bestFinish: number; + worstFinish: number; + consistency: number; + experienceLevel: string; + overallRank: number | null; +} -export class DriverStatsUseCase implements IDriverStatsUseCase { - constructor( - private readonly resultRepository: IResultRepository, - private readonly standingRepository: IStandingRepository, - private readonly logger: Logger - ) { - this.logger.info('[DriverStatsUseCase] Initialized with real data repositories'); - } - - async getDriverStats(driverId: string): Promise { - this.logger.debug(`[DriverStatsUseCase] Computing stats for driver: ${driverId}`); - - try { - // Get all results for this driver - const results = await this.resultRepository.findByDriverId(driverId); - - if (results.length === 0) { - this.logger.warn(`[DriverStatsUseCase] No results found for driver: ${driverId}`); - return null; - } - - // Get standings for context - const standings = await this.standingRepository.findAll(); - const driverStanding = standings.find(s => s.driverId.toString() === driverId); - - // Calculate basic stats from results - const wins = results.filter(r => r.position.toNumber() === 1).length; - const podiums = results.filter(r => r.position.toNumber() <= 3).length; - const dnfs = results.filter(r => r.position.toNumber() > 20).length; - const totalRaces = results.length; - - const positions = results.map(r => r.position.toNumber()); - const avgFinish = positions.reduce((sum, pos) => sum + pos, 0) / totalRaces; - const bestFinish = Math.min(...positions); - const worstFinish = Math.max(...positions); - - // Calculate rating based on performance - let rating = 1000; - if (driverStanding) { - // Use standing-based rating - const pointsBonus = driverStanding.points.toNumber() * 2; - const positionBonus = Math.max(0, 50 - (driverStanding.position.toNumber() * 2)); - const winBonus = driverStanding.wins * 100; - rating = Math.round(1000 + pointsBonus + positionBonus + winBonus); - } else { - // Calculate from results if no standing - const performanceBonus = ((totalRaces - wins) * 5) + ((totalRaces - podiums) * 2); - rating = Math.round(1000 + (wins * 100) + (podiums * 50) - performanceBonus); - } - - // Calculate consistency (inverse of position variance) - const avgPosition = avgFinish; - const variance = positions.reduce((sum, pos) => sum + Math.pow(pos - avgPosition, 2), 0) / totalRaces; - const consistency = Math.round(Math.max(0, 100 - (variance * 2))); - - // Safety rating (simplified - based on incidents) - const totalIncidents = results.reduce((sum, r) => sum + r.incidents.toNumber(), 0); - const safetyRating = Math.round(Math.max(0, 100 - (totalIncidents / totalRaces))); - - // Sportsmanship rating (placeholder - could be based on penalties/protests) - const sportsmanshipRating = 4.5; - - // Experience level - const experienceLevel = this.determineExperienceLevel(totalRaces); - - // Overall rank - const overallRank = driverStanding ? driverStanding.position.toNumber() : null; - - const stats: DriverStats = { - rating, - safetyRating, - sportsmanshipRating, - totalRaces, - wins, - podiums, - dnfs, - avgFinish: Math.round(avgFinish * 10) / 10, - bestFinish, - worstFinish, - consistency, - experienceLevel, - overallRank - }; - - this.logger.debug(`[DriverStatsUseCase] Computed stats for driver ${driverId}: rating=${stats.rating}, wins=${stats.wins}`); - - return stats; - } catch (error) { - this.logger.error(`[DriverStatsUseCase] Error computing stats for driver ${driverId}:`, error instanceof Error ? error : new Error(String(error))); - throw error; - } - } - - private determineExperienceLevel(totalRaces: number): string { - if (totalRaces >= 100) return 'Veteran'; - if (totalRaces >= 50) return 'Experienced'; - if (totalRaces >= 20) return 'Intermediate'; - if (totalRaces >= 10) return 'Rookie'; - return 'Beginner'; - } +export interface DriverStatsUseCase { + getDriverStats(driverId: string): Promise; } \ No newline at end of file diff --git a/core/racing/application/use-cases/FileProtestUseCase.test.ts b/core/racing/application/use-cases/FileProtestUseCase.test.ts index d869dab16..efec9234e 100644 --- a/core/racing/application/use-cases/FileProtestUseCase.test.ts +++ b/core/racing/application/use-cases/FileProtestUseCase.test.ts @@ -1,8 +1,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import { FileProtestUseCase, type FileProtestErrorCode, type FileProtestInput, type FileProtestResult } from './FileProtestUseCase'; describe('FileProtestUseCase', () => { diff --git a/core/racing/application/use-cases/FileProtestUseCase.ts b/core/racing/application/use-cases/FileProtestUseCase.ts index 0cb233f37..1ca7d8f94 100644 --- a/core/racing/application/use-cases/FileProtestUseCase.ts +++ b/core/racing/application/use-cases/FileProtestUseCase.ts @@ -5,10 +5,10 @@ */ import { Protest } from '../../domain/entities/Protest'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { Result } from '@core/shared/application/Result'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { randomUUID } from 'crypto'; diff --git a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts index 78e37d0cd..554f62705 100644 --- a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.test.ts @@ -1,9 +1,9 @@ import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { GetAllLeaguesWithCapacityAndScoringUseCase, type GetAllLeaguesWithCapacityAndScoringInput, diff --git a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.ts b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.ts index af5e7b739..2160fd0b0 100644 --- a/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.ts +++ b/core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase.ts @@ -1,14 +1,14 @@ -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; import type { League } from '../../domain/entities/League'; import type { Season } from '../../domain/entities/season/Season'; import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig'; import type { Game } from '../../domain/entities/Game'; import type { LeagueScoringPreset } from '../../domain/types/LeagueScoringPreset'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetAllLeaguesWithCapacityAndScoringInput = {}; diff --git a/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.test.ts b/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.test.ts index 24bb44c95..ed22c65ba 100644 --- a/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, Mock, vi } from 'vitest'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { GetAllLeaguesWithCapacityUseCase, type GetAllLeaguesWithCapacityInput, diff --git a/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.ts b/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.ts index def58f8b9..e4838ff98 100644 --- a/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.ts +++ b/core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase.ts @@ -1,7 +1,7 @@ -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { League } from '../../domain/entities/League'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetAllLeaguesWithCapacityInput = {}; diff --git a/core/racing/application/use-cases/GetAllRacesPageDataUseCase.test.ts b/core/racing/application/use-cases/GetAllRacesPageDataUseCase.test.ts index 9196965eb..7d8bd17bd 100644 --- a/core/racing/application/use-cases/GetAllRacesPageDataUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllRacesPageDataUseCase.test.ts @@ -4,8 +4,8 @@ import { type GetAllRacesPageDataResult, type GetAllRacesPageDataInput, } from './GetAllRacesPageDataUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { Logger } from '@core/shared/application'; import { Race } from '../../domain/entities/Race'; import { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetAllRacesPageDataUseCase.ts b/core/racing/application/use-cases/GetAllRacesPageDataUseCase.ts index d779e6514..bbc3dbf2d 100644 --- a/core/racing/application/use-cases/GetAllRacesPageDataUseCase.ts +++ b/core/racing/application/use-cases/GetAllRacesPageDataUseCase.ts @@ -1,7 +1,7 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { RaceStatusValue } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/GetAllRacesUseCase.test.ts b/core/racing/application/use-cases/GetAllRacesUseCase.test.ts index 726cd4274..2ca318b00 100644 --- a/core/racing/application/use-cases/GetAllRacesUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllRacesUseCase.test.ts @@ -4,8 +4,8 @@ import { type GetAllRacesResult, type GetAllRacesInput, } from './GetAllRacesUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { Logger } from '@core/shared/application'; import { Race } from '../../domain/entities/Race'; import { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetAllRacesUseCase.ts b/core/racing/application/use-cases/GetAllRacesUseCase.ts index 5ca6a470a..ba647d2f0 100644 --- a/core/racing/application/use-cases/GetAllRacesUseCase.ts +++ b/core/racing/application/use-cases/GetAllRacesUseCase.ts @@ -1,6 +1,6 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { Result } from '@core/shared/application/Result'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { Race } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/GetAllTeamsUseCase.test.ts b/core/racing/application/use-cases/GetAllTeamsUseCase.test.ts index cb029cdb4..a0f3d8c9a 100644 --- a/core/racing/application/use-cases/GetAllTeamsUseCase.test.ts +++ b/core/racing/application/use-cases/GetAllTeamsUseCase.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetAllTeamsUseCase, type GetAllTeamsInput, type GetAllTeamsResult } from './GetAllTeamsUseCase'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamStatsRepository } from '../../domain/repositories/ITeamStatsRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamStatsRepository } from '../../domain/repositories/TeamStatsRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; import type { Logger } from '@core/shared/application'; describe('GetAllTeamsUseCase', () => { const mockTeamFindAll = vi.fn(); diff --git a/core/racing/application/use-cases/GetAllTeamsUseCase.ts b/core/racing/application/use-cases/GetAllTeamsUseCase.ts index 17499598a..bd9440107 100644 --- a/core/racing/application/use-cases/GetAllTeamsUseCase.ts +++ b/core/racing/application/use-cases/GetAllTeamsUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamStatsRepository } from '../../domain/repositories/ITeamStatsRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamStatsRepository } from '../../domain/repositories/TeamStatsRepository'; import type { Team } from '../../domain/entities/Team'; export interface GetAllTeamsInput {} diff --git a/core/racing/application/use-cases/GetDriverLiveriesUseCase.test.ts b/core/racing/application/use-cases/GetDriverLiveriesUseCase.test.ts index 6de746914..7b72a17f3 100644 --- a/core/racing/application/use-cases/GetDriverLiveriesUseCase.test.ts +++ b/core/racing/application/use-cases/GetDriverLiveriesUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi } from 'vitest'; import { GetDriverLiveriesUseCase, type GetDriverLiveriesInput } from './GetDriverLiveriesUseCase'; -import type { ILiveryRepository } from '../../domain/repositories/ILiveryRepository'; +import type { LiveryRepository } from '../../domain/repositories/LiveryRepository'; import type { DriverLivery } from '../../domain/entities/DriverLivery'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/GetDriverLiveriesUseCase.ts b/core/racing/application/use-cases/GetDriverLiveriesUseCase.ts index 28503451c..e19ad923b 100644 --- a/core/racing/application/use-cases/GetDriverLiveriesUseCase.ts +++ b/core/racing/application/use-cases/GetDriverLiveriesUseCase.ts @@ -4,11 +4,11 @@ * Retrieves all liveries for a specific driver. */ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { UseCase } from '@core/shared/application/UseCase'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILiveryRepository } from '../../domain/repositories/ILiveryRepository'; +import type { LiveryRepository } from '../../domain/repositories/LiveryRepository'; import type { DriverLivery } from '../../domain/entities/DriverLivery'; export interface GetDriverLiveriesInput { diff --git a/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts b/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts index 318240ada..dd9ea85eb 100644 --- a/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts +++ b/core/racing/application/use-cases/GetDriverTeamUseCase.test.ts @@ -1,7 +1,7 @@ import { describe, it, expect, beforeEach, vi, type Mock } from 'vitest'; import { GetDriverTeamUseCase, type GetDriverTeamInput, type GetDriverTeamResult } from './GetDriverTeamUseCase'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { Logger } from '@core/shared/application'; describe('GetDriverTeamUseCase', () => { const mockFindById = vi.fn(); diff --git a/core/racing/application/use-cases/GetDriverTeamUseCase.ts b/core/racing/application/use-cases/GetDriverTeamUseCase.ts index 335118586..42f22b64e 100644 --- a/core/racing/application/use-cases/GetDriverTeamUseCase.ts +++ b/core/racing/application/use-cases/GetDriverTeamUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { Team } from '../../domain/entities/Team'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { TeamMembership } from '../../domain/types/TeamMembership'; export interface GetDriverTeamInput { diff --git a/core/racing/application/use-cases/GetDriverUseCase.ts b/core/racing/application/use-cases/GetDriverUseCase.ts index 1b02adaad..4a317f3c6 100644 --- a/core/racing/application/use-cases/GetDriverUseCase.ts +++ b/core/racing/application/use-cases/GetDriverUseCase.ts @@ -1,6 +1,6 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Driver } from '../../domain/entities/Driver'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; export type GetDriverInput = { driverId: string; diff --git a/core/racing/application/use-cases/GetDriversLeaderboardUseCase.test.ts b/core/racing/application/use-cases/GetDriversLeaderboardUseCase.test.ts index 7e15af67e..6aeb57b77 100644 --- a/core/racing/application/use-cases/GetDriversLeaderboardUseCase.test.ts +++ b/core/racing/application/use-cases/GetDriversLeaderboardUseCase.test.ts @@ -4,9 +4,9 @@ import { type GetDriversLeaderboardInput, type GetDriversLeaderboardResult } from './GetDriversLeaderboardUseCase'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IRankingUseCase } from './IRankingUseCase'; -import type { IDriverStatsUseCase } from './IDriverStatsUseCase'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { RankingUseCase } from './RankingUseCase'; +import type { DriverStatsUseCase } from './DriverStatsUseCase'; import type { Logger } from '@core/shared/application'; describe('GetDriversLeaderboardUseCase', () => { diff --git a/core/racing/application/use-cases/GetDriversLeaderboardUseCase.ts b/core/racing/application/use-cases/GetDriversLeaderboardUseCase.ts index 9e745e391..5babdcf4c 100644 --- a/core/racing/application/use-cases/GetDriversLeaderboardUseCase.ts +++ b/core/racing/application/use-cases/GetDriversLeaderboardUseCase.ts @@ -1,11 +1,11 @@ import type { Logger, UseCase } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; import type { Team } from '../../domain/entities/Team'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IDriverStatsUseCase } from './IDriverStatsUseCase'; -import type { IRankingUseCase } from './IRankingUseCase'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { DriverStatsUseCase } from './DriverStatsUseCase'; +import type { RankingUseCase } from './RankingUseCase'; import { SkillLevelService, type SkillLevel } from '../../domain/services/SkillLevelService'; import { MediaReference } from '@core/domain/media/MediaReference'; diff --git a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts index 1cada231e..ffe87eb8c 100644 --- a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts +++ b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.test.ts @@ -4,7 +4,7 @@ import { type GetEntitySponsorshipPricingInput, type GetEntitySponsorshipPricingResult, } from './GetEntitySponsorshipPricingUseCase'; -import type { ISponsorshipPricingRepository } from '../../domain/repositories/ISponsorshipPricingRepository'; +import type { SponsorshipPricingRepository } from '../../domain/repositories/SponsorshipPricingRepository'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.ts b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.ts index d93d08a64..70fe8f8e0 100644 --- a/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.ts +++ b/core/racing/application/use-cases/GetEntitySponsorshipPricingUseCase.ts @@ -5,9 +5,9 @@ * Used by sponsors to see available slots and prices. */ -import type { ISponsorshipPricingRepository } from '../../domain/repositories/ISponsorshipPricingRepository'; +import type { SponsorshipPricingRepository } from '../../domain/repositories/SponsorshipPricingRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { SponsorableEntityType } from '../../domain/entities/SponsorshipRequest'; diff --git a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts index 4c2a5014f..13b3651c3 100644 --- a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetLeagueAdminPermissionsResult, type GetLeagueAdminPermissionsErrorCode, } from './GetLeagueAdminPermissionsUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.ts b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.ts index bdea542e8..322df399f 100644 --- a/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { League } from '../../domain/entities/League'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; export type GetLeagueAdminPermissionsInput = { leagueId: string; diff --git a/core/racing/application/use-cases/GetLeagueAdminUseCase.test.ts b/core/racing/application/use-cases/GetLeagueAdminUseCase.test.ts index c2c9e3eba..d16a3e4d9 100644 --- a/core/racing/application/use-cases/GetLeagueAdminUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueAdminUseCase.test.ts @@ -5,7 +5,7 @@ import { type GetLeagueAdminResult, type GetLeagueAdminErrorCode, } from './GetLeagueAdminUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetLeagueAdminUseCase', () => { diff --git a/core/racing/application/use-cases/GetLeagueAdminUseCase.ts b/core/racing/application/use-cases/GetLeagueAdminUseCase.ts index d6810f9a0..54340d647 100644 --- a/core/racing/application/use-cases/GetLeagueAdminUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueAdminUseCase.ts @@ -1,5 +1,5 @@ -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { Result } from '@core/shared/application/Result'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.test.ts index 9c275e8e3..14d03f3f0 100644 --- a/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.test.ts @@ -1,10 +1,10 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { beforeEach, describe, expect, it, vi } from 'vitest'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { DriverRatingPort } from '../ports/DriverRatingPort'; import { GetLeagueDriverSeasonStatsUseCase, diff --git a/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.ts b/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.ts index a69b4a0e6..67f25613e 100644 --- a/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueDriverSeasonStatsUseCase.ts @@ -1,10 +1,10 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { DriverRatingPort } from '../ports/DriverRatingPort'; export type DriverSeasonStats = { diff --git a/core/racing/application/use-cases/GetLeagueFullConfigUseCase.test.ts b/core/racing/application/use-cases/GetLeagueFullConfigUseCase.test.ts index 0763f6e1b..33c34190c 100644 --- a/core/racing/application/use-cases/GetLeagueFullConfigUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueFullConfigUseCase.test.ts @@ -5,10 +5,10 @@ import { type GetLeagueFullConfigResult, type GetLeagueFullConfigErrorCode, } from './GetLeagueFullConfigUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetLeagueFullConfigUseCase', () => { diff --git a/core/racing/application/use-cases/GetLeagueFullConfigUseCase.ts b/core/racing/application/use-cases/GetLeagueFullConfigUseCase.ts index 82221d338..d092bb153 100644 --- a/core/racing/application/use-cases/GetLeagueFullConfigUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueFullConfigUseCase.ts @@ -1,8 +1,8 @@ -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; -import { Result } from '@core/shared/application/Result'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetLeagueFullConfigInput = { diff --git a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts index 47a559d50..566a15093 100644 --- a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetLeagueJoinRequestsResult, type GetLeagueJoinRequestsErrorCode, } from './GetLeagueJoinRequestsUseCase'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Driver } from '../../domain/entities/Driver'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.ts b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.ts index 3bdb10efd..20accd76f 100644 --- a/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueJoinRequestsUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; export interface GetLeagueJoinRequestsInput { leagueId: string; diff --git a/core/racing/application/use-cases/GetLeagueMembershipsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueMembershipsUseCase.test.ts index f491f0214..4025a6c8f 100644 --- a/core/racing/application/use-cases/GetLeagueMembershipsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueMembershipsUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetLeagueMembershipsResult, type GetLeagueMembershipsErrorCode, } from './GetLeagueMembershipsUseCase'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; import { Driver } from '../../domain/entities/Driver'; import { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetLeagueMembershipsUseCase.ts b/core/racing/application/use-cases/GetLeagueMembershipsUseCase.ts index 11aa9bdf1..dbb7a6c54 100644 --- a/core/racing/application/use-cases/GetLeagueMembershipsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueMembershipsUseCase.ts @@ -1,8 +1,8 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { LeagueMembership } from '../../domain/entities/LeagueMembership'; import type { Driver } from '../../domain/entities/Driver'; import type { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.test.ts b/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.test.ts index 26c640708..5befbe10c 100644 --- a/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetLeagueOwnerSummaryResult, type GetLeagueOwnerSummaryErrorCode, } from './GetLeagueOwnerSummaryUseCase'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Driver } from '../../domain/entities/Driver'; import { League } from '../../domain/entities/League'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.ts b/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.ts index 91ce411e9..1405168e5 100644 --- a/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { League } from '../../domain/entities/League'; import type { Driver } from '../../domain/entities/Driver'; diff --git a/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts index 00aa50b6b..da9d06ca8 100644 --- a/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueProtestsUseCase.test.ts @@ -5,10 +5,10 @@ import { GetLeagueProtestsInput, GetLeagueProtestsErrorCode, } from './GetLeagueProtestsUseCase'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Race } from '../../domain/entities/Race'; import { Protest } from '../../domain/entities/Protest'; import { Driver } from '../../domain/entities/Driver'; diff --git a/core/racing/application/use-cases/GetLeagueProtestsUseCase.ts b/core/racing/application/use-cases/GetLeagueProtestsUseCase.ts index 4678433b0..36d786d99 100644 --- a/core/racing/application/use-cases/GetLeagueProtestsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueProtestsUseCase.ts @@ -1,9 +1,9 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Race } from '../../domain/entities/Race'; import type { Protest } from '../../domain/entities/Protest'; import type { Driver } from '../../domain/entities/Driver'; diff --git a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts index 8c36f7ecb..b31bc8830 100644 --- a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.test.ts @@ -7,9 +7,9 @@ import { } from './GetLeagueRosterJoinRequestsUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Driver } from '../../domain/entities/Driver'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; describe('GetLeagueRosterJoinRequestsUseCase', () => { let useCase: GetLeagueRosterJoinRequestsUseCase; diff --git a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.ts b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.ts index ee6ab1e8c..9bd0b7fbd 100644 --- a/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; export interface GetLeagueRosterJoinRequestsInput { leagueId: string; diff --git a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts index ed6632064..6437754b2 100644 --- a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.test.ts @@ -8,9 +8,9 @@ import { import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; import { Driver } from '../../domain/entities/Driver'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; describe('GetLeagueRosterMembersUseCase', () => { let useCase: GetLeagueRosterMembersUseCase; diff --git a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.ts b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.ts index c3eef0052..e23dce7c4 100644 --- a/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueRosterMembersUseCase.ts @@ -1,10 +1,10 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; import type { LeagueMembership } from '../../domain/entities/LeagueMembership'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; export interface GetLeagueRosterMembersInput { leagueId: string; diff --git a/core/racing/application/use-cases/GetLeagueScheduleUseCase.test.ts b/core/racing/application/use-cases/GetLeagueScheduleUseCase.test.ts index 9b6965ed0..f31bf5805 100644 --- a/core/racing/application/use-cases/GetLeagueScheduleUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueScheduleUseCase.test.ts @@ -8,8 +8,8 @@ import { import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { League } from '../../domain/entities/League'; import { Race } from '../../domain/entities/Race'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; describe('GetLeagueScheduleUseCase', () => { let useCase: GetLeagueScheduleUseCase; diff --git a/core/racing/application/use-cases/GetLeagueScheduleUseCase.ts b/core/racing/application/use-cases/GetLeagueScheduleUseCase.ts index 0a6093519..cd5b2cf59 100644 --- a/core/racing/application/use-cases/GetLeagueScheduleUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueScheduleUseCase.ts @@ -1,12 +1,12 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { League } from '../../domain/entities/League'; import type { Race } from '../../domain/entities/Race'; import type { Season } from '../../domain/entities/season/Season'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { SeasonScheduleGenerator } from '../../domain/services/SeasonScheduleGenerator'; export type GetLeagueScheduleErrorCode = diff --git a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts index a4c4fb6c9..e53ded08e 100644 --- a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.test.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { GetLeagueScoringConfigUseCase } from './GetLeagueScoringConfigUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; import type { League } from '../../domain/entities/League'; import type { Season } from '../../domain/entities/season/Season'; import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig'; diff --git a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.ts b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.ts index 0d3ed590f..611311a54 100644 --- a/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueScoringConfigUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { IGameRepository } from '../../domain/repositories/IGameRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { GameRepository } from '../../domain/repositories/GameRepository'; import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig'; import type { League } from '../../domain/entities/League'; import type { Season } from '../../domain/entities/season/Season'; diff --git a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts index a9d22b51d..68f206fef 100644 --- a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.test.ts @@ -6,8 +6,8 @@ import { type GetLeagueSeasonsErrorCode, } from './GetLeagueSeasonsUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Season } from '../../domain/entities/season'; import { League } from '../../domain/entities/League'; diff --git a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.ts b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.ts index e8713a9f8..69c753ad2 100644 --- a/core/racing/application/use-cases/GetLeagueSeasonsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueSeasonsUseCase.ts @@ -1,7 +1,7 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import type { Season } from '../../domain/entities/season/Season'; export interface GetLeagueSeasonsInput { diff --git a/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts index dc2b60fff..41b118b6c 100644 --- a/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueStandingsUseCase.test.ts @@ -6,8 +6,8 @@ import { type GetLeagueStandingsResult, type GetLeagueStandingsErrorCode, } from './GetLeagueStandingsUseCase'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { Standing } from '../../domain/entities/Standing'; import { Driver } from '../../domain/entities/Driver'; diff --git a/core/racing/application/use-cases/GetLeagueStandingsUseCase.ts b/core/racing/application/use-cases/GetLeagueStandingsUseCase.ts index 41ece28f1..b5c0c831b 100644 --- a/core/racing/application/use-cases/GetLeagueStandingsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueStandingsUseCase.ts @@ -1,8 +1,8 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; export type GetLeagueStandingsErrorCode = 'REPOSITORY_ERROR'; diff --git a/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts b/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts index 223fcc58e..d27a037de 100644 --- a/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueStatsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetLeagueStatsResult, type GetLeagueStatsErrorCode, } from './GetLeagueStatsUseCase'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetLeagueStatsUseCase', () => { diff --git a/core/racing/application/use-cases/GetLeagueStatsUseCase.ts b/core/racing/application/use-cases/GetLeagueStatsUseCase.ts index b73a24468..9934b159b 100644 --- a/core/racing/application/use-cases/GetLeagueStatsUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueStatsUseCase.ts @@ -1,6 +1,6 @@ -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { Result } from '@core/shared/application/Result'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetLeagueStatsInput { diff --git a/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts b/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts index c2a4cfd1e..ac1c578b7 100644 --- a/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts +++ b/core/racing/application/use-cases/GetLeagueWalletUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetLeagueWalletInput, type GetLeagueWalletErrorCode, } from './GetLeagueWalletUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ITransactionRepository } from '../../domain/repositories/ITransactionRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { TransactionRepository } from '../../domain/repositories/TransactionRepository'; import { LeagueWallet } from '../../domain/entities/league-wallet/LeagueWallet'; import { Money } from '../../domain/value-objects/Money'; import { Transaction } from '../../domain/entities/league-wallet/Transaction'; diff --git a/core/racing/application/use-cases/GetLeagueWalletUseCase.ts b/core/racing/application/use-cases/GetLeagueWalletUseCase.ts index 52a73de9a..bdfc993f2 100644 --- a/core/racing/application/use-cases/GetLeagueWalletUseCase.ts +++ b/core/racing/application/use-cases/GetLeagueWalletUseCase.ts @@ -1,9 +1,9 @@ -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ITransactionRepository } from '../../domain/repositories/ITransactionRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { TransactionRepository } from '../../domain/repositories/TransactionRepository'; import type { Transaction } from '../../domain/entities/league-wallet/Transaction'; import type { LeagueWallet } from '../../domain/entities/league-wallet/LeagueWallet'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Money } from '../../domain/value-objects/Money'; diff --git a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts index 30bf3287d..8086b65cb 100644 --- a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetPendingSponsorshipRequestsInput, type GetPendingSponsorshipRequestsErrorCode, } from './GetPendingSponsorshipRequestsUseCase'; -import { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; -import { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; +import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import { SponsorshipRequest } from '../../domain/entities/SponsorshipRequest'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; import { Money } from '../../domain/value-objects/Money'; diff --git a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.ts b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.ts index 18f178054..0d5ad6889 100644 --- a/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.ts +++ b/core/racing/application/use-cases/GetPendingSponsorshipRequestsUseCase.ts @@ -4,11 +4,11 @@ * Retrieves pending sponsorship requests for an entity owner to review. */ -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import type { SponsorableEntityType, SponsorshipRequest } from '../../domain/entities/SponsorshipRequest'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Sponsor } from '../../domain/entities/sponsor/Sponsor'; import { Money } from '../../domain/value-objects/Money'; diff --git a/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts b/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts index 728669ec1..d0eb508f3 100644 --- a/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts +++ b/core/racing/application/use-cases/GetProfileOverviewUseCase.test.ts @@ -3,10 +3,10 @@ import { GetProfileOverviewUseCase, type GetProfileOverviewResult, } from './GetProfileOverviewUseCase'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { TeamRepository } from '../../domain/repositories/TeamRepository'; +import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import { Driver } from '../../domain/entities/Driver'; describe('GetProfileOverviewUseCase', () => { let useCase: GetProfileOverviewUseCase; diff --git a/core/racing/application/use-cases/GetProfileOverviewUseCase.ts b/core/racing/application/use-cases/GetProfileOverviewUseCase.ts index 504cbdf79..bf669e123 100644 --- a/core/racing/application/use-cases/GetProfileOverviewUseCase.ts +++ b/core/racing/application/use-cases/GetProfileOverviewUseCase.ts @@ -1,14 +1,14 @@ -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository'; import type { DriverExtendedProfileProvider } from '../ports/DriverExtendedProfileProvider'; -import type { IDriverStatsUseCase, DriverStats } from './IDriverStatsUseCase'; -import type { IRankingUseCase, DriverRanking } from './IRankingUseCase'; +import type { DriverStatsUseCase, DriverStats } from './DriverStatsUseCase'; +import type { RankingUseCase, DriverRanking } from './RankingUseCase'; import type { Driver } from '../../domain/entities/Driver'; import type { Team } from '../../domain/entities/Team'; import type { TeamMembership } from '../../domain/types/TeamMembership'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetProfileOverviewInput = { driverId: string; diff --git a/core/racing/application/use-cases/GetRaceDetailUseCase.test.ts b/core/racing/application/use-cases/GetRaceDetailUseCase.test.ts index 519370179..1094f3ded 100644 --- a/core/racing/application/use-cases/GetRaceDetailUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceDetailUseCase.test.ts @@ -5,12 +5,12 @@ import { type GetRaceDetailResult, type GetRaceDetailErrorCode, } from './GetRaceDetailUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Race } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/GetRaceDetailUseCase.ts b/core/racing/application/use-cases/GetRaceDetailUseCase.ts index 4ffb54e37..0bd32bd5e 100644 --- a/core/racing/application/use-cases/GetRaceDetailUseCase.ts +++ b/core/racing/application/use-cases/GetRaceDetailUseCase.ts @@ -1,15 +1,15 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { League } from '../../domain/entities/League'; import type { Race } from '../../domain/entities/Race'; import type { RaceRegistration } from '../../domain/entities/RaceRegistration'; import type { Result as RaceResult } from '../../domain/entities/result/Result'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; export type GetRaceDetailInput = { raceId: string; diff --git a/core/racing/application/use-cases/GetRacePenaltiesUseCase.test.ts b/core/racing/application/use-cases/GetRacePenaltiesUseCase.test.ts index 0ed4191cc..b7d2d2593 100644 --- a/core/racing/application/use-cases/GetRacePenaltiesUseCase.test.ts +++ b/core/racing/application/use-cases/GetRacePenaltiesUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetRacePenaltiesResult, type GetRacePenaltiesErrorCode, } from './GetRacePenaltiesUseCase'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetRacePenaltiesUseCase', () => { diff --git a/core/racing/application/use-cases/GetRacePenaltiesUseCase.ts b/core/racing/application/use-cases/GetRacePenaltiesUseCase.ts index 50ef6f89b..da31f6cc2 100644 --- a/core/racing/application/use-cases/GetRacePenaltiesUseCase.ts +++ b/core/racing/application/use-cases/GetRacePenaltiesUseCase.ts @@ -5,9 +5,9 @@ * Orchestrates domain logic and delegates presentation to the presenter. */ -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { Result } from '@core/shared/application/Result'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Driver } from '../../domain/entities/Driver'; import type { Penalty } from '../../domain/entities/penalty/Penalty'; diff --git a/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts b/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts index 9e5fb22a5..e3ecfc8b4 100644 --- a/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceProtestsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetRaceProtestsResult, type GetRaceProtestsErrorCode, } from './GetRaceProtestsUseCase'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { Protest } from '../../domain/entities/Protest'; import { Driver } from '../../domain/entities/Driver'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetRaceProtestsUseCase.ts b/core/racing/application/use-cases/GetRaceProtestsUseCase.ts index bfd0b7efc..e119a7939 100644 --- a/core/racing/application/use-cases/GetRaceProtestsUseCase.ts +++ b/core/racing/application/use-cases/GetRaceProtestsUseCase.ts @@ -5,11 +5,11 @@ * Orchestrates domain logic and delegates presentation to the presenter. */ -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { Protest } from '../../domain/entities/Protest'; import type { Driver } from '../../domain/entities/Driver'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export interface GetRaceProtestsInput { diff --git a/core/racing/application/use-cases/GetRaceRegistrationsUseCase.test.ts b/core/racing/application/use-cases/GetRaceRegistrationsUseCase.test.ts index edef94a83..f70acb596 100644 --- a/core/racing/application/use-cases/GetRaceRegistrationsUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceRegistrationsUseCase.test.ts @@ -5,12 +5,12 @@ import { type GetRaceRegistrationsResult, type GetRaceRegistrationsErrorCode, } from './GetRaceRegistrationsUseCase'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; import { Race } from '@core/racing/domain/entities/Race'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('GetRaceRegistrationsUseCase', () => { let useCase: GetRaceRegistrationsUseCase; diff --git a/core/racing/application/use-cases/GetRaceRegistrationsUseCase.ts b/core/racing/application/use-cases/GetRaceRegistrationsUseCase.ts index 9b1ca4b7c..2397ea722 100644 --- a/core/racing/application/use-cases/GetRaceRegistrationsUseCase.ts +++ b/core/racing/application/use-cases/GetRaceRegistrationsUseCase.ts @@ -1,8 +1,8 @@ -import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; import type { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; import type { Race } from '@core/racing/domain/entities/Race'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetRaceRegistrationsInput = { diff --git a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts index 600502e95..1f125ff20 100644 --- a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.test.ts @@ -5,11 +5,11 @@ import { type GetRaceResultsDetailResult, type GetRaceResultsDetailErrorCode, } from './GetRaceResultsDetailUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetRaceResultsDetailUseCase', () => { diff --git a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.ts b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.ts index f3f3a8d55..09cae45a3 100644 --- a/core/racing/application/use-cases/GetRaceResultsDetailUseCase.ts +++ b/core/racing/application/use-cases/GetRaceResultsDetailUseCase.ts @@ -1,10 +1,10 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; import type { Driver } from '../../domain/entities/Driver'; import type { League } from '../../domain/entities/League'; import type { Race } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts b/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts index f22a041b0..94d573d05 100644 --- a/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts +++ b/core/racing/application/use-cases/GetRaceWithSOFUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetRaceWithSOFResult, type GetRaceWithSOFErrorCode, } from './GetRaceWithSOFUseCase'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import { IResultRepository } from '../../domain/repositories/IResultRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import { ResultRepository } from '../../domain/repositories/ResultRepository'; import { Race } from '../../domain/entities/Race'; import { SessionType } from '../../domain/value-objects/SessionType'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetRaceWithSOFUseCase.ts b/core/racing/application/use-cases/GetRaceWithSOFUseCase.ts index 437887dde..4b3efa9cd 100644 --- a/core/racing/application/use-cases/GetRaceWithSOFUseCase.ts +++ b/core/racing/application/use-cases/GetRaceWithSOFUseCase.ts @@ -5,11 +5,11 @@ * SOF is calculated from participant ratings if not already stored on the race. */ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; import { AverageStrengthOfFieldCalculator, type StrengthOfFieldCalculator, diff --git a/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts b/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts index 16004ae6a..ebb6897a1 100644 --- a/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts +++ b/core/racing/application/use-cases/GetRacesPageDataUseCase.test.ts @@ -5,10 +5,10 @@ import { type GetRacesPageDataInput, type GetRacesPageDataErrorCode, } from './GetRacesPageDataUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { Result } from '@core/shared/application/Result'; +import type { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application'; describe('GetRacesPageDataUseCase', () => { diff --git a/core/racing/application/use-cases/GetRacesPageDataUseCase.ts b/core/racing/application/use-cases/GetRacesPageDataUseCase.ts index a98e82d84..c37ce0a60 100644 --- a/core/racing/application/use-cases/GetRacesPageDataUseCase.ts +++ b/core/racing/application/use-cases/GetRacesPageDataUseCase.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Race } from '../../domain/entities/Race'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; export type GetRacesPageDataInput = { leagueId: string; diff --git a/core/racing/application/use-cases/GetSeasonDetailsUseCase.test.ts b/core/racing/application/use-cases/GetSeasonDetailsUseCase.test.ts index 6064b4df0..dcece8fd4 100644 --- a/core/racing/application/use-cases/GetSeasonDetailsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSeasonDetailsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetSeasonDetailsResult, type GetSeasonDetailsErrorCode, } from './GetSeasonDetailsUseCase'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Season } from '../../domain/entities/season/Season'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetSeasonDetailsUseCase.ts b/core/racing/application/use-cases/GetSeasonDetailsUseCase.ts index ec00bc88e..71ec05430 100644 --- a/core/racing/application/use-cases/GetSeasonDetailsUseCase.ts +++ b/core/racing/application/use-cases/GetSeasonDetailsUseCase.ts @@ -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 { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import type { Season } from '../../domain/entities/season/Season'; export interface GetSeasonDetailsInput { diff --git a/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.test.ts b/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.test.ts index 19de4d109..4cd7330cc 100644 --- a/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.test.ts @@ -5,11 +5,11 @@ import { type GetSeasonSponsorshipsResult, type GetSeasonSponsorshipsErrorCode, } from './GetSeasonSponsorshipsUseCase'; -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import { Season } from '../../domain/entities/season/Season'; import { League } from '../../domain/entities/League'; import { SeasonSponsorship } from '../../domain/entities/season/SeasonSponsorship'; diff --git a/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.ts b/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.ts index 3b3838cc2..a31b4a506 100644 --- a/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.ts +++ b/core/racing/application/use-cases/GetSeasonSponsorshipsUseCase.ts @@ -1,9 +1,9 @@ -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { Result } from '@core/shared/application/Result'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetSeasonSponsorshipsInput = { seasonId: string; diff --git a/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts b/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts index a7ed4496a..f032e286e 100644 --- a/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorDashboardUseCase.test.ts @@ -5,12 +5,12 @@ import { type GetSponsorDashboardResult, type GetSponsorDashboardErrorCode, } from './GetSponsorDashboardUseCase'; -import { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; -import { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; +import { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; import { SeasonSponsorship } from '../../domain/entities/season/SeasonSponsorship'; import { Season } from '../../domain/entities/season/Season'; diff --git a/core/racing/application/use-cases/GetSponsorDashboardUseCase.ts b/core/racing/application/use-cases/GetSponsorDashboardUseCase.ts index 1155307e3..126e928c2 100644 --- a/core/racing/application/use-cases/GetSponsorDashboardUseCase.ts +++ b/core/racing/application/use-cases/GetSponsorDashboardUseCase.ts @@ -4,13 +4,13 @@ * Returns sponsor dashboard metrics including sponsorships, impressions, and investment data. */ -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { Result } from '@core/shared/application/Result'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Money } from '../../domain/value-objects/Money'; diff --git a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts index 11570e76a..e650e10c8 100644 --- a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.test.ts @@ -5,12 +5,12 @@ import { type GetSponsorSponsorshipsResult, type GetSponsorSponsorshipsErrorCode, } from './GetSponsorSponsorshipsUseCase'; -import { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; -import { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; +import { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; import { SeasonSponsorship } from '../../domain/entities/season/SeasonSponsorship'; import { Season } from '../../domain/entities/season/Season'; diff --git a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.ts b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.ts index c4b5278d1..5904ed03b 100644 --- a/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.ts +++ b/core/racing/application/use-cases/GetSponsorSponsorshipsUseCase.ts @@ -4,14 +4,14 @@ * Returns detailed sponsorship information for a sponsor's campaigns/sponsorships page. */ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { SeasonSponsorshipRepository } from '../../domain/repositories/SeasonSponsorshipRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import type { SeasonSponsorship } from '../../domain/entities/season/SeasonSponsorship'; import type { League } from '../../domain/entities/League'; import type { Season } from '../../domain/entities/season/Season'; diff --git a/core/racing/application/use-cases/GetSponsorUseCase.test.ts b/core/racing/application/use-cases/GetSponsorUseCase.test.ts index 6fc35c24a..63bbc3b3d 100644 --- a/core/racing/application/use-cases/GetSponsorUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorUseCase.test.ts @@ -5,7 +5,7 @@ import { type GetSponsorResult, type GetSponsorErrorCode, } from './GetSponsorUseCase'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetSponsorUseCase.ts b/core/racing/application/use-cases/GetSponsorUseCase.ts index ef526d483..574146b33 100644 --- a/core/racing/application/use-cases/GetSponsorUseCase.ts +++ b/core/racing/application/use-cases/GetSponsorUseCase.ts @@ -4,8 +4,8 @@ * Retrieves a single sponsor by ID. */ -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; -import { Result } from '@core/shared/application/Result'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Sponsor } from '../../domain/entities/sponsor/Sponsor'; diff --git a/core/racing/application/use-cases/GetSponsorsUseCase.test.ts b/core/racing/application/use-cases/GetSponsorsUseCase.test.ts index 4ee314bc4..35e8aee19 100644 --- a/core/racing/application/use-cases/GetSponsorsUseCase.test.ts +++ b/core/racing/application/use-cases/GetSponsorsUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { GetSponsorsUseCase } from './GetSponsorsUseCase'; -import { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; +import { SponsorRepository } from '../../domain/repositories/SponsorRepository'; import { Sponsor } from '../../domain/entities/sponsor/Sponsor'; describe('GetSponsorsUseCase', () => { let useCase: GetSponsorsUseCase; diff --git a/core/racing/application/use-cases/GetSponsorsUseCase.ts b/core/racing/application/use-cases/GetSponsorsUseCase.ts index 6901fa928..814e076f0 100644 --- a/core/racing/application/use-cases/GetSponsorsUseCase.ts +++ b/core/racing/application/use-cases/GetSponsorsUseCase.ts @@ -1,6 +1,6 @@ import type { Sponsor } from '../../domain/entities/sponsor/Sponsor'; -import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository'; -import { Result } from '@core/shared/application/Result'; +import type { SponsorRepository } from '../../domain/repositories/SponsorRepository'; +import { Result } from '@core/shared/domain/Result'; export interface GetSponsorsInput {} diff --git a/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts b/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts index 554448f3c..cb0530bef 100644 --- a/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamDetailsUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetTeamDetailsResult, type GetTeamDetailsErrorCode, } from './GetTeamDetailsUseCase'; -import { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import { TeamRepository } from '../../domain/repositories/TeamRepository'; +import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import { Team } from '../../domain/entities/Team'; import type { TeamMembership } from '../../domain/types/TeamMembership'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetTeamDetailsUseCase.ts b/core/racing/application/use-cases/GetTeamDetailsUseCase.ts index d11bdd914..118c0992f 100644 --- a/core/racing/application/use-cases/GetTeamDetailsUseCase.ts +++ b/core/racing/application/use-cases/GetTeamDetailsUseCase.ts @@ -1,8 +1,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Team } from '../../domain/entities/Team'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { TeamMembership } from '../../domain/types/TeamMembership'; export interface GetTeamDetailsInput { diff --git a/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.test.ts b/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.test.ts index c45f72d3d..7f99fce52 100644 --- a/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetTeamJoinRequestsResult, type GetTeamJoinRequestsErrorCode, } from './GetTeamJoinRequestsUseCase'; -import { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { TeamRepository } from '../../domain/repositories/TeamRepository'; import { Driver } from '../../domain/entities/Driver'; import { Team } from '../../domain/entities/Team'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.ts b/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.ts index 63f949ab4..850903b5a 100644 --- a/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.ts +++ b/core/racing/application/use-cases/GetTeamJoinRequestsUseCase.ts @@ -1,10 +1,10 @@ -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { TeamJoinRequest } from '../../domain/types/TeamMembership'; import type { Driver } from '../../domain/entities/Driver'; import type { Team } from '../../domain/entities/Team'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type GetTeamJoinRequestsInput = { diff --git a/core/racing/application/use-cases/GetTeamMembersUseCase.test.ts b/core/racing/application/use-cases/GetTeamMembersUseCase.test.ts index 79ffb3496..f4b199063 100644 --- a/core/racing/application/use-cases/GetTeamMembersUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamMembersUseCase.test.ts @@ -5,9 +5,9 @@ import { type GetTeamMembersResult, type GetTeamMembersErrorCode, } from './GetTeamMembersUseCase'; -import { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { TeamRepository } from '../../domain/repositories/TeamRepository'; import { Driver } from '../../domain/entities/Driver'; import { Team } from '../../domain/entities/Team'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/GetTeamMembersUseCase.ts b/core/racing/application/use-cases/GetTeamMembersUseCase.ts index 90076f223..882d50909 100644 --- a/core/racing/application/use-cases/GetTeamMembersUseCase.ts +++ b/core/racing/application/use-cases/GetTeamMembersUseCase.ts @@ -1,7 +1,7 @@ -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import { Result } from '@core/shared/application/Result'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { TeamMembership } from '../../domain/types/TeamMembership'; diff --git a/core/racing/application/use-cases/GetTeamMembershipUseCase.test.ts b/core/racing/application/use-cases/GetTeamMembershipUseCase.test.ts index 83d1c92fd..f7ee6ca09 100644 --- a/core/racing/application/use-cases/GetTeamMembershipUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamMembershipUseCase.test.ts @@ -5,7 +5,7 @@ import { type GetTeamMembershipResult, type GetTeamMembershipErrorCode, } from './GetTeamMembershipUseCase'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetTeamMembershipUseCase.ts b/core/racing/application/use-cases/GetTeamMembershipUseCase.ts index 08acc876f..3be9d77d7 100644 --- a/core/racing/application/use-cases/GetTeamMembershipUseCase.ts +++ b/core/racing/application/use-cases/GetTeamMembershipUseCase.ts @@ -1,5 +1,5 @@ -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import { Result } from '@core/shared/application/Result'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; export type GetTeamMembershipInput = { diff --git a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts index c9b82ed47..ce6cc38c5 100644 --- a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts +++ b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.test.ts @@ -5,8 +5,8 @@ import { type GetTeamsLeaderboardInput, type GetTeamsLeaderboardErrorCode, } from './GetTeamsLeaderboardUseCase'; -import { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import { TeamRepository } from '../../domain/repositories/TeamRepository'; +import { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import { Team } from '../../domain/entities/Team'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.ts b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.ts index cd73c75bf..6b2abb47a 100644 --- a/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.ts +++ b/core/racing/application/use-cases/GetTeamsLeaderboardUseCase.ts @@ -1,7 +1,7 @@ -import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository'; import { SkillLevelService, type SkillLevel } from '@core/racing/domain/services/SkillLevelService'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { Team } from '@core/racing/domain/entities/Team'; diff --git a/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts b/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts index 41397b5c1..46e10ea12 100644 --- a/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalDriversUseCase.test.ts @@ -5,7 +5,7 @@ import { GetTotalDriversErrorCode, GetTotalDriversResult, } from './GetTotalDriversUseCase'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetTotalDriversUseCase', () => { let useCase: GetTotalDriversUseCase; diff --git a/core/racing/application/use-cases/GetTotalDriversUseCase.ts b/core/racing/application/use-cases/GetTotalDriversUseCase.ts index f626ec5d4..5cea324f8 100644 --- a/core/racing/application/use-cases/GetTotalDriversUseCase.ts +++ b/core/racing/application/use-cases/GetTotalDriversUseCase.ts @@ -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 { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; export interface GetTotalDriversInput {} diff --git a/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts b/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts index a4eae88ad..1bf4aa8c4 100644 --- a/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalLeaguesUseCase.test.ts @@ -5,7 +5,7 @@ import { type GetTotalLeaguesResult, type GetTotalLeaguesErrorCode, } from './GetTotalLeaguesUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetTotalLeaguesUseCase', () => { diff --git a/core/racing/application/use-cases/GetTotalLeaguesUseCase.ts b/core/racing/application/use-cases/GetTotalLeaguesUseCase.ts index 4713056d1..565aff316 100644 --- a/core/racing/application/use-cases/GetTotalLeaguesUseCase.ts +++ b/core/racing/application/use-cases/GetTotalLeaguesUseCase.ts @@ -1,6 +1,6 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import { Result } from '@core/shared/domain/Result'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; export interface GetTotalLeaguesInput {} diff --git a/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts b/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts index 1a20e9421..21cd72202 100644 --- a/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts +++ b/core/racing/application/use-cases/GetTotalRacesUseCase.test.ts @@ -5,7 +5,7 @@ import { type GetTotalRacesResult, type GetTotalRacesErrorCode, } from './GetTotalRacesUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('GetTotalRacesUseCase', () => { diff --git a/core/racing/application/use-cases/GetTotalRacesUseCase.ts b/core/racing/application/use-cases/GetTotalRacesUseCase.ts index 6719c798b..b5e03601c 100644 --- a/core/racing/application/use-cases/GetTotalRacesUseCase.ts +++ b/core/racing/application/use-cases/GetTotalRacesUseCase.ts @@ -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 { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; export interface GetTotalRacesInput {} diff --git a/core/racing/application/use-cases/IDriverStatsUseCase.ts b/core/racing/application/use-cases/IDriverStatsUseCase.ts deleted file mode 100644 index a9ec0675d..000000000 --- a/core/racing/application/use-cases/IDriverStatsUseCase.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Application Use Case Interface: IDriverStatsUseCase - * - * Use case for computing detailed driver statistics from race results and standings. - * This is an application layer concern that orchestrates domain data. - */ - -export interface DriverStats { - rating: number; - safetyRating: number; - sportsmanshipRating: number; - totalRaces: number; - wins: number; - podiums: number; - dnfs: number; - avgFinish: number; - bestFinish: number; - worstFinish: number; - consistency: number; - experienceLevel: string; - overallRank: number | null; -} - -export interface IDriverStatsUseCase { - getDriverStats(driverId: string): Promise; -} \ No newline at end of file diff --git a/core/racing/application/use-cases/IRankingUseCase.ts b/core/racing/application/use-cases/IRankingUseCase.ts deleted file mode 100644 index 61b6f74d9..000000000 --- a/core/racing/application/use-cases/IRankingUseCase.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Application Use Case Interface: IRankingUseCase - * - * Use case for computing driver rankings from standings and results. - * This is an application layer concern that orchestrates domain data. - */ - -export interface DriverRanking { - driverId: string; - rating: number; - wins: number; - totalRaces: number; - overallRank: number | null; -} - -export interface IRankingUseCase { - getAllDriverRankings(): Promise; -} \ No newline at end of file diff --git a/core/racing/application/use-cases/ITeamRankingUseCase.ts b/core/racing/application/use-cases/ITeamRankingUseCase.ts deleted file mode 100644 index 97d5b43ea..000000000 --- a/core/racing/application/use-cases/ITeamRankingUseCase.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Application Use Case Interface: ITeamRankingUseCase - * - * Use case for computing team rankings from rating snapshots. - * This is an application layer concern that orchestrates domain data. - */ - -export interface TeamRanking { - teamId: string; - teamName: string; - drivingRating: number; - adminTrustRating: number; - overallRating: number; - eventCount: number; - lastUpdated: Date; - overallRank: number | null; -} - -export interface ITeamRankingUseCase { - getAllTeamRankings(): Promise; - getTeamRanking(teamId: string): Promise; -} \ No newline at end of file diff --git a/core/racing/application/use-cases/ImportRaceResultsApiUseCase.test.ts b/core/racing/application/use-cases/ImportRaceResultsApiUseCase.test.ts index 13002b111..e142e8424 100644 --- a/core/racing/application/use-cases/ImportRaceResultsApiUseCase.test.ts +++ b/core/racing/application/use-cases/ImportRaceResultsApiUseCase.test.ts @@ -5,14 +5,14 @@ import { type ImportRaceResultsApiResult, type ImportRaceResultsApiErrorCode, } from './ImportRaceResultsApiUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('ImportRaceResultsApiUseCase', () => { let useCase: ImportRaceResultsApiUseCase; diff --git a/core/racing/application/use-cases/ImportRaceResultsApiUseCase.ts b/core/racing/application/use-cases/ImportRaceResultsApiUseCase.ts index 94b57c58a..886068091 100644 --- a/core/racing/application/use-cases/ImportRaceResultsApiUseCase.ts +++ b/core/racing/application/use-cases/ImportRaceResultsApiUseCase.ts @@ -1,11 +1,11 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import { Result as RaceResult } from '../../domain/entities/result/Result'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type ImportRaceResultDTO = { diff --git a/core/racing/application/use-cases/ImportRaceResultsUseCase.test.ts b/core/racing/application/use-cases/ImportRaceResultsUseCase.test.ts index 09c3676be..832584fe8 100644 --- a/core/racing/application/use-cases/ImportRaceResultsUseCase.test.ts +++ b/core/racing/application/use-cases/ImportRaceResultsUseCase.test.ts @@ -5,11 +5,11 @@ import { type ImportRaceResultsResult, type ImportRaceResultsErrorCode, } from './ImportRaceResultsUseCase'; -import { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import { IResultRepository } from '../../domain/repositories/IResultRepository'; -import { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import { RaceRepository } from '../../domain/repositories/RaceRepository'; +import { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import { ResultRepository } from '../../domain/repositories/ResultRepository'; +import { DriverRepository } from '../../domain/repositories/DriverRepository'; +import { StandingRepository } from '../../domain/repositories/StandingRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/ImportRaceResultsUseCase.ts b/core/racing/application/use-cases/ImportRaceResultsUseCase.ts index ad45aecca..2adcc0cc8 100644 --- a/core/racing/application/use-cases/ImportRaceResultsUseCase.ts +++ b/core/racing/application/use-cases/ImportRaceResultsUseCase.ts @@ -1,11 +1,11 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; +import type { StandingRepository } from '../../domain/repositories/StandingRepository'; import { Result as RaceResult } from '../../domain/entities/result/Result'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type ImportRaceResultRow = { diff --git a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts index 2f7915a65..715a87d8a 100644 --- a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts +++ b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.test.ts @@ -5,7 +5,7 @@ import { type IsDriverRegisteredForRaceErrorCode, type IsDriverRegisteredForRaceResult, } from './IsDriverRegisteredForRaceUseCase'; -import { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; +import { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('IsDriverRegisteredForRaceUseCase', () => { diff --git a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.ts b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.ts index 8c4c7235d..84393bffd 100644 --- a/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.ts +++ b/core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase.ts @@ -1,6 +1,6 @@ -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; import type { Logger, UseCase } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type IsDriverRegisteredForRaceErrorCode = 'REPOSITORY_ERROR'; diff --git a/core/racing/application/use-cases/JoinLeagueUseCase.test.ts b/core/racing/application/use-cases/JoinLeagueUseCase.test.ts index 7389d31bf..959634000 100644 --- a/core/racing/application/use-cases/JoinLeagueUseCase.test.ts +++ b/core/racing/application/use-cases/JoinLeagueUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { JoinLeagueUseCase, type JoinLeagueResult, type JoinLeagueInput, type JoinLeagueErrorCode } from './JoinLeagueUseCase'; -import { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/JoinLeagueUseCase.ts b/core/racing/application/use-cases/JoinLeagueUseCase.ts index 286814b77..cec534aa0 100644 --- a/core/racing/application/use-cases/JoinLeagueUseCase.ts +++ b/core/racing/application/use-cases/JoinLeagueUseCase.ts @@ -1,7 +1,7 @@ import type { Logger } from '@core/shared/application'; -import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type JoinLeagueErrorCode = 'ALREADY_MEMBER' | 'REPOSITORY_ERROR'; diff --git a/core/racing/application/use-cases/JoinTeamUseCase.test.ts b/core/racing/application/use-cases/JoinTeamUseCase.test.ts index 2a3634d5d..5058deeb7 100644 --- a/core/racing/application/use-cases/JoinTeamUseCase.test.ts +++ b/core/racing/application/use-cases/JoinTeamUseCase.test.ts @@ -5,8 +5,8 @@ import { type JoinTeamResult, type JoinTeamErrorCode, } from './JoinTeamUseCase'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; import type { Logger } from '@core/shared/application'; import { Team } from '../../domain/entities/Team'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/JoinTeamUseCase.ts b/core/racing/application/use-cases/JoinTeamUseCase.ts index 09cb0be1b..d9408c9a2 100644 --- a/core/racing/application/use-cases/JoinTeamUseCase.ts +++ b/core/racing/application/use-cases/JoinTeamUseCase.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Team } from '../../domain/entities/Team'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { TeamMembership } from '../../domain/types/TeamMembership'; export type JoinTeamErrorCode = diff --git a/core/racing/application/use-cases/LeagueSeasonScheduleMutationsUseCases.test.ts b/core/racing/application/use-cases/LeagueSeasonScheduleMutationsUseCases.test.ts index a4fe92487..7612dce2f 100644 --- a/core/racing/application/use-cases/LeagueSeasonScheduleMutationsUseCases.test.ts +++ b/core/racing/application/use-cases/LeagueSeasonScheduleMutationsUseCases.test.ts @@ -4,8 +4,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC import { Race } from '../../domain/entities/Race'; import { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { CreateLeagueSeasonScheduleRaceUseCase, diff --git a/core/racing/application/use-cases/LeaveTeamUseCase.test.ts b/core/racing/application/use-cases/LeaveTeamUseCase.test.ts index f68747663..f65c47704 100644 --- a/core/racing/application/use-cases/LeaveTeamUseCase.test.ts +++ b/core/racing/application/use-cases/LeaveTeamUseCase.test.ts @@ -5,8 +5,8 @@ import { type LeaveTeamResult, type LeaveTeamErrorCode, } from './LeaveTeamUseCase'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('LeaveTeamUseCase', () => { diff --git a/core/racing/application/use-cases/LeaveTeamUseCase.ts b/core/racing/application/use-cases/LeaveTeamUseCase.ts index 99de61d54..2927c9ecf 100644 --- a/core/racing/application/use-cases/LeaveTeamUseCase.ts +++ b/core/racing/application/use-cases/LeaveTeamUseCase.ts @@ -1,9 +1,9 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Team } from '../../domain/entities/Team'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { TeamMembership } from '../../domain/types/TeamMembership'; export type LeaveTeamErrorCode = diff --git a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts index bf67b5ae0..8803a28fa 100644 --- a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts +++ b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.test.ts @@ -6,7 +6,7 @@ import { type ListLeagueScoringPresetsErrorCode, } from './ListLeagueScoringPresetsUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { Result } from '@core/shared/application/Result'; +import type { Result } from '@core/shared/domain/Result'; describe('ListLeagueScoringPresetsUseCase', () => { let useCase: ListLeagueScoringPresetsUseCase; diff --git a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.ts b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.ts index 3b70230eb..93249620f 100644 --- a/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.ts +++ b/core/racing/application/use-cases/ListLeagueScoringPresetsUseCase.ts @@ -1,5 +1,5 @@ import type { LeagueScoringPreset } from '../../domain/types/LeagueScoringPreset'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type ListLeagueScoringPresetsInput = {}; diff --git a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts index 6dfaadc42..12931b142 100644 --- a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts +++ b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.test.ts @@ -5,8 +5,8 @@ import { type ListSeasonsForLeagueResult, type ListSeasonsForLeagueErrorCode, } from './ListSeasonsForLeagueUseCase'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Season } from '../../domain/entities/season/Season'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.ts b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.ts index 39af73491..b2b5b7f75 100644 --- a/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.ts +++ b/core/racing/application/use-cases/ListSeasonsForLeagueUseCase.ts @@ -1,7 +1,7 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { Season } from '../../domain/entities/season/Season'; export interface ListSeasonsForLeagueInput { diff --git a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts index 419b6fecd..f385fbba9 100644 --- a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts +++ b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.test.ts @@ -5,8 +5,8 @@ import { type ManageSeasonLifecycleResult, type ManageSeasonLifecycleErrorCode, } from './ManageSeasonLifecycleUseCase'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { Season } from '../../domain/entities/season/Season'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.ts b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.ts index 9131dd608..78334fe47 100644 --- a/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.ts +++ b/core/racing/application/use-cases/ManageSeasonLifecycleUseCase.ts @@ -1,7 +1,7 @@ -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { SeasonStatus } from '../../domain/value-objects/SeasonStatus'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type SeasonLifecycleTransition = | 'activate' diff --git a/core/racing/application/use-cases/PreviewLeagueScheduleUseCase.ts b/core/racing/application/use-cases/PreviewLeagueScheduleUseCase.ts index 0bcf79da9..7ea3d5f9e 100644 --- a/core/racing/application/use-cases/PreviewLeagueScheduleUseCase.ts +++ b/core/racing/application/use-cases/PreviewLeagueScheduleUseCase.ts @@ -1,5 +1,5 @@ import { SeasonScheduleGenerator } from '../../domain/services/SeasonScheduleGenerator'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import { SeasonSchedule } from '../../domain/value-objects/SeasonSchedule'; diff --git a/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.test.ts b/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.test.ts index cf0f3534b..4dcfc9759 100644 --- a/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.test.ts +++ b/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Season } from '../../domain/entities/season/Season'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { PublishLeagueSeasonScheduleUseCase, diff --git a/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.ts b/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.ts index 8057ffa90..606f879fc 100644 --- a/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.ts +++ b/core/racing/application/use-cases/PublishLeagueSeasonScheduleUseCase.ts @@ -1,8 +1,8 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; export type PublishLeagueSeasonScheduleInput = { leagueId: string; diff --git a/core/racing/application/use-cases/QuickPenaltyUseCase.test.ts b/core/racing/application/use-cases/QuickPenaltyUseCase.test.ts index b41eb85d7..523c6924b 100644 --- a/core/racing/application/use-cases/QuickPenaltyUseCase.test.ts +++ b/core/racing/application/use-cases/QuickPenaltyUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { QuickPenaltyUseCase, type QuickPenaltyInput, type QuickPenaltyResult, type QuickPenaltyErrorCode } from './QuickPenaltyUseCase'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/QuickPenaltyUseCase.ts b/core/racing/application/use-cases/QuickPenaltyUseCase.ts index 20e7d9f63..b6ffa5e0b 100644 --- a/core/racing/application/use-cases/QuickPenaltyUseCase.ts +++ b/core/racing/application/use-cases/QuickPenaltyUseCase.ts @@ -6,12 +6,12 @@ */ import { Penalty } from '../../domain/entities/penalty/Penalty'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { randomUUID } from 'crypto'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type QuickPenaltyErrorCode = 'RACE_NOT_FOUND' | 'UNAUTHORIZED' | 'UNKNOWN_INFRACTION' | 'REPOSITORY_ERROR'; diff --git a/core/racing/application/use-cases/RankingUseCase.ts b/core/racing/application/use-cases/RankingUseCase.ts index d84d48038..c336c397a 100644 --- a/core/racing/application/use-cases/RankingUseCase.ts +++ b/core/racing/application/use-cases/RankingUseCase.ts @@ -1,91 +1,18 @@ /** - * Application Use Case: RankingUseCase + * Application Use Case Interface: IRankingUseCase * - * Computes driver rankings from real standings and results data. - * Orchestrates repositories to provide ranking data to presentation layer. + * Use case for computing driver rankings from standings and results. + * This is an application layer concern that orchestrates domain data. */ -import type { Logger } from '@core/shared/application'; -import type { IStandingRepository } from '../../domain/repositories/IStandingRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; -import type { IRankingUseCase, DriverRanking } from './IRankingUseCase'; +export interface DriverRanking { + driverId: string; + rating: number; + wins: number; + totalRaces: number; + overallRank: number | null; +} -export class RankingUseCase implements IRankingUseCase { - constructor( - private readonly standingRepository: IStandingRepository, - private readonly driverRepository: IDriverRepository, - private readonly logger: Logger - ) { - this.logger.info('[RankingUseCase] Initialized with real data repositories'); - } - - async getAllDriverRankings(): Promise { - this.logger.debug('[RankingUseCase] Computing rankings from standings'); - - try { - // Get all standings from all leagues - const standings = await this.standingRepository.findAll(); - - if (standings.length === 0) { - this.logger.warn('[RankingUseCase] No standings found'); - return []; - } - - // Get all drivers for name resolution - const drivers = await this.driverRepository.findAll(); - const driverMap = new Map(drivers.map(d => [d.id, d])); - - // Group standings by driver and aggregate stats - const driverStats = new Map(); - - for (const standing of standings) { - const driverId = standing.driverId.toString(); - const existing = driverStats.get(driverId) || { rating: 0, wins: 0, races: 0 }; - - existing.races += standing.racesCompleted; - existing.wins += standing.wins; - - // Calculate rating from points and position - const baseRating = 1000; - const pointsBonus = standing.points.toNumber() * 2; - const positionBonus = Math.max(0, 50 - (standing.position.toNumber() * 2)); - const winBonus = standing.wins * 100; - - existing.rating = Math.round(baseRating + pointsBonus + positionBonus + winBonus); - - // Add driver name if available - const driver = driverMap.get(driverId); - if (driver) { - existing.driverName = driver.name.toString(); - } - - driverStats.set(driverId, existing); - } - - // Convert to rankings - const rankings: DriverRanking[] = Array.from(driverStats.entries()).map(([driverId, stats]) => ({ - driverId, - rating: stats.rating, - wins: stats.wins, - totalRaces: stats.races, - overallRank: null - })); - - // Sort by rating descending and assign ranks - rankings.sort((a, b) => b.rating - a.rating); - rankings.forEach((r, idx) => r.overallRank = idx + 1); - - this.logger.info(`[RankingUseCase] Computed rankings for ${rankings.length} drivers`); - - return rankings; - } catch (error) { - this.logger.error('[RankingUseCase] Error computing rankings:', error instanceof Error ? error : new Error(String(error))); - throw error; - } - } +export interface RankingUseCase { + getAllDriverRankings(): Promise; } \ No newline at end of file diff --git a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts index c0f5aeb4b..ae01eaf7c 100644 --- a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts +++ b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.test.ts @@ -5,15 +5,15 @@ import { type RecalculateChampionshipStandingsResult, type RecalculateChampionshipStandingsErrorCode, } from './RecalculateChampionshipStandingsUseCase'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepository'; -import type { IChampionshipStandingRepository } from '../../domain/repositories/IChampionshipStandingRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '../../domain/repositories/LeagueScoringConfigRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { PenaltyRepository } from '../../domain/repositories/PenaltyRepository'; +import type { ChampionshipStandingRepository } from '../../domain/repositories/ChampionshipStandingRepository'; import type { Penalty } from '../../domain/entities/Penalty'; import { EventScoringService } from '../../domain/services/EventScoringService'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { ChampionshipAggregator } from '../../domain/services/ChampionshipAggregator'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.ts b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.ts index 4475229c9..79bcbc141 100644 --- a/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.ts +++ b/core/racing/application/use-cases/RecalculateChampionshipStandingsUseCase.ts @@ -1,10 +1,10 @@ -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; -import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; -import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository'; -import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository'; -import type { IChampionshipStandingRepository } from '@core/racing/domain/repositories/IChampionshipStandingRepository'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; +import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository'; +import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository'; +import type { ChampionshipStandingRepository } from '@core/racing/domain/repositories/ChampionshipStandingRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig'; import type { SessionType } from '@core/racing/domain/types/SessionType'; @@ -12,7 +12,7 @@ import type { ChampionshipStanding } from '@core/racing/domain/entities/champion import { EventScoringService } from '@core/racing/domain/services/EventScoringService'; import { ChampionshipAggregator } from '@core/racing/domain/services/ChampionshipAggregator'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; diff --git a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts index 0ac864da9..a25831ee4 100644 --- a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts +++ b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.test.ts @@ -1,13 +1,13 @@ import { RecomputeTeamRatingSnapshotUseCase } from './RecomputeTeamRatingSnapshotUseCase'; -import { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; // Mock repositories -class MockTeamRatingEventRepository implements ITeamRatingEventRepository { +class MockTeamRatingEventRepository implements TeamRatingEventRepository { private events: TeamRatingEvent[] = []; async save(event: TeamRatingEvent): Promise { @@ -47,7 +47,7 @@ class MockTeamRatingEventRepository implements ITeamRatingEventRepository { } } -class MockTeamRatingRepository implements ITeamRatingRepository { +class MockTeamRatingRepository implements TeamRatingRepository { private snapshots: Map = new Map(); async findByTeamId(teamId: string): Promise { diff --git a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.ts b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.ts index d58aa5642..9af64535b 100644 --- a/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.ts +++ b/core/racing/application/use-cases/RecomputeTeamRatingSnapshotUseCase.ts @@ -1,5 +1,5 @@ -import type { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import type { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamRatingSnapshotCalculator } from '@core/racing/domain/services/TeamRatingSnapshotCalculator'; /** diff --git a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts index d19e3d92d..ece593a9a 100644 --- a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts +++ b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.test.ts @@ -1,7 +1,7 @@ import { RecordTeamRaceRatingEventsUseCase } from './RecordTeamRaceRatingEventsUseCase'; -import { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; -import { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; +import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase'; import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; @@ -10,7 +10,7 @@ import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRa import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; // Mock repositories -class MockTeamRaceResultsProvider implements ITeamRaceResultsProvider { +class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; async getTeamRaceResults(raceId: string): Promise { @@ -22,7 +22,7 @@ class MockTeamRaceResultsProvider implements ITeamRaceResultsProvider { } } -class MockTeamRatingEventRepository implements ITeamRatingEventRepository { +class MockTeamRatingEventRepository implements TeamRatingEventRepository { private events: TeamRatingEvent[] = []; async save(event: TeamRatingEvent): Promise { @@ -58,7 +58,7 @@ class MockTeamRatingEventRepository implements ITeamRatingEventRepository { } } -class MockTeamRatingRepository implements ITeamRatingRepository { +class MockTeamRatingRepository implements TeamRatingRepository { private snapshots: Map = new Map(); async findByTeamId(teamId: string): Promise { diff --git a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.ts b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.ts index 26562b642..c6bb9aead 100644 --- a/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.ts +++ b/core/racing/application/use-cases/RecordTeamRaceRatingEventsUseCase.ts @@ -1,9 +1,9 @@ -import type { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; +import type { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; import { TeamDrivingRatingEventFactory } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase'; import { RecordTeamRaceRatingEventsInput, RecordTeamRaceRatingEventsOutput } from '../dtos/RecordTeamRaceRatingEventsDto'; -import type { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import type { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; /** * Use Case: RecordTeamRaceRatingEventsUseCase diff --git a/core/racing/application/use-cases/RegisterForRaceUseCase.test.ts b/core/racing/application/use-cases/RegisterForRaceUseCase.test.ts index 6e1642ff8..cdbaa1cea 100644 --- a/core/racing/application/use-cases/RegisterForRaceUseCase.test.ts +++ b/core/racing/application/use-cases/RegisterForRaceUseCase.test.ts @@ -5,10 +5,10 @@ import { RegisterForRaceResult, RegisterForRaceUseCase, } from './RegisterForRaceUseCase'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; describe('RegisterForRaceUseCase', () => { let useCase: RegisterForRaceUseCase; diff --git a/core/racing/application/use-cases/RegisterForRaceUseCase.ts b/core/racing/application/use-cases/RegisterForRaceUseCase.ts index fe80672ee..5db0c6189 100644 --- a/core/racing/application/use-cases/RegisterForRaceUseCase.ts +++ b/core/racing/application/use-cases/RegisterForRaceUseCase.ts @@ -1,8 +1,8 @@ -import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; -import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; +import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository'; import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration'; import { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type RegisterForRaceInput = { diff --git a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts index 4809bd343..c7381c58e 100644 --- a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.test.ts @@ -3,7 +3,7 @@ import { RejectLeagueJoinRequestUseCase, type RejectLeagueJoinRequestResult, } from './RejectLeagueJoinRequestUseCase'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('RejectLeagueJoinRequestUseCase', () => { diff --git a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.ts b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.ts index 01258dde3..573942a63 100644 --- a/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.ts +++ b/core/racing/application/use-cases/RejectLeagueJoinRequestUseCase.ts @@ -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 { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; export type RejectLeagueJoinRequestInput = { leagueId: string; diff --git a/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.test.ts b/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.test.ts index a71829f90..6d350ad0e 100644 --- a/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.test.ts +++ b/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { RejectSponsorshipRequestUseCase, @@ -8,7 +8,7 @@ import { type RejectSponsorshipRequestResult, type RejectSponsorshipRequestErrorCode, } from './RejectSponsorshipRequestUseCase'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; describe('RejectSponsorshipRequestUseCase', () => { let useCase: RejectSponsorshipRequestUseCase; diff --git a/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.ts b/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.ts index b277c02a2..733d61eee 100644 --- a/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.ts +++ b/core/racing/application/use-cases/RejectSponsorshipRequestUseCase.ts @@ -5,9 +5,9 @@ */ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISponsorshipRequestRepository } from '../../domain/repositories/ISponsorshipRequestRepository'; +import type { SponsorshipRequestRepository } from '../../domain/repositories/SponsorshipRequestRepository'; export type RejectSponsorshipRequestInput = { requestId: string; diff --git a/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.test.ts b/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.test.ts index 1440893f9..ec0d23fd9 100644 --- a/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.test.ts +++ b/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.test.ts @@ -5,8 +5,8 @@ import { type RejectTeamJoinRequestResult, type RejectTeamJoinRequestErrorCode, } from './RejectTeamJoinRequestUseCase'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; interface TeamRepositoryMock { diff --git a/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.ts b/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.ts index 39a91fada..baa51b913 100644 --- a/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.ts +++ b/core/racing/application/use-cases/RejectTeamJoinRequestUseCase.ts @@ -1,8 +1,8 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; export type RejectTeamJoinRequestInput = { teamId: string; diff --git a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts index 31b266cba..b21698f45 100644 --- a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts +++ b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.test.ts @@ -5,7 +5,7 @@ import { type RemoveLeagueMemberResult, type RemoveLeagueMemberErrorCode, } from './RemoveLeagueMemberUseCase'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('RemoveLeagueMemberUseCase', () => { diff --git a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.ts b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.ts index fb6ab9d93..60e2d9f30 100644 --- a/core/racing/application/use-cases/RemoveLeagueMemberUseCase.ts +++ b/core/racing/application/use-cases/RemoveLeagueMemberUseCase.ts @@ -1,5 +1,5 @@ -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import { Result } from '@core/shared/application/Result'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; diff --git a/core/racing/application/use-cases/ReopenRaceUseCase.test.ts b/core/racing/application/use-cases/ReopenRaceUseCase.test.ts index 9c55fc750..eaec821c9 100644 --- a/core/racing/application/use-cases/ReopenRaceUseCase.test.ts +++ b/core/racing/application/use-cases/ReopenRaceUseCase.test.ts @@ -5,7 +5,7 @@ import { type ReopenRaceResult, type ReopenRaceErrorCode, } from './ReopenRaceUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { Logger } from '@core/shared/application'; import { Race } from '../../domain/entities/Race'; import { SessionType } from '../../domain/value-objects/SessionType'; diff --git a/core/racing/application/use-cases/ReopenRaceUseCase.ts b/core/racing/application/use-cases/ReopenRaceUseCase.ts index 1bced778d..99612faac 100644 --- a/core/racing/application/use-cases/ReopenRaceUseCase.ts +++ b/core/racing/application/use-cases/ReopenRaceUseCase.ts @@ -1,6 +1,6 @@ -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Race } from '../../domain/entities/Race'; diff --git a/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts b/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts index 2d1f84d83..29b0e6dab 100644 --- a/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts +++ b/core/racing/application/use-cases/RequestProtestDefenseUseCase.test.ts @@ -5,11 +5,11 @@ import { type RequestProtestDefenseResult, type RequestProtestDefenseErrorCode, } from './RequestProtestDefenseUseCase'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application/Logger'; describe('RequestProtestDefenseUseCase', () => { diff --git a/core/racing/application/use-cases/RequestProtestDefenseUseCase.ts b/core/racing/application/use-cases/RequestProtestDefenseUseCase.ts index d99e6d2c0..30697bee1 100644 --- a/core/racing/application/use-cases/RequestProtestDefenseUseCase.ts +++ b/core/racing/application/use-cases/RequestProtestDefenseUseCase.ts @@ -5,11 +5,11 @@ * This will trigger a notification to the accused driver. */ -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { isLeagueStewardOrHigherRole } from '../../domain/types/LeagueRoles'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/ReviewProtestUseCase.test.ts b/core/racing/application/use-cases/ReviewProtestUseCase.test.ts index f74117691..0cb8fdf55 100644 --- a/core/racing/application/use-cases/ReviewProtestUseCase.test.ts +++ b/core/racing/application/use-cases/ReviewProtestUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, beforeEach, vi, Mock } from 'vitest'; import { ReviewProtestUseCase, type ReviewProtestInput, type ReviewProtestResult, type ReviewProtestErrorCode } from './ReviewProtestUseCase'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('ReviewProtestUseCase', () => { diff --git a/core/racing/application/use-cases/ReviewProtestUseCase.ts b/core/racing/application/use-cases/ReviewProtestUseCase.ts index d2161b935..f7a9db493 100644 --- a/core/racing/application/use-cases/ReviewProtestUseCase.ts +++ b/core/racing/application/use-cases/ReviewProtestUseCase.ts @@ -4,11 +4,11 @@ * Allows a steward to review a protest and make a decision (uphold or dismiss). */ -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; export type ReviewProtestErrorCode = 'PROTEST_NOT_FOUND' | 'RACE_NOT_FOUND' | 'NOT_LEAGUE_ADMIN' | 'REPOSITORY_ERROR'; diff --git a/core/racing/application/use-cases/SeasonUseCases.test.ts b/core/racing/application/use-cases/SeasonUseCases.test.ts index 3b0089bc2..bb41801c2 100644 --- a/core/racing/application/use-cases/SeasonUseCases.test.ts +++ b/core/racing/application/use-cases/SeasonUseCases.test.ts @@ -2,8 +2,8 @@ import { describe, it, expect, vi } from 'vitest'; import { Season } from '@core/racing/domain/entities/season/Season'; import { League } from '@core/racing/domain/entities/League'; -import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; import { CreateSeasonForLeagueUseCase, ListSeasonsForLeagueUseCase, diff --git a/core/racing/application/use-cases/SeasonUseCases.ts b/core/racing/application/use-cases/SeasonUseCases.ts index d2b9c9b6b..e9d88f2c5 100644 --- a/core/racing/application/use-cases/SeasonUseCases.ts +++ b/core/racing/application/use-cases/SeasonUseCases.ts @@ -1,6 +1,6 @@ import { Season } from '../../domain/entities/season/Season'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import { SeasonSchedule } from '../../domain/value-objects/SeasonSchedule'; import { SeasonScoringConfig } from '../../domain/value-objects/SeasonScoringConfig'; import { SeasonDropPolicy } from '../../domain/value-objects/SeasonDropPolicy'; @@ -12,7 +12,7 @@ import { WeekdaySet } from '../../domain/value-objects/WeekdaySet'; import { MonthlyRecurrencePattern } from '../../domain/value-objects/MonthlyRecurrencePattern'; import type { Weekday } from '../../domain/types/Weekday'; import { v4 as uuidv4 } from 'uuid'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; /** * Input, result and error models shared across Season-focused use cases. diff --git a/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts b/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts index 6177017a8..23988ad10 100644 --- a/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts +++ b/core/racing/application/use-cases/SendFinalResultsUseCase.test.ts @@ -6,12 +6,12 @@ import { type SendFinalResultsErrorCode, } from './SendFinalResultsUseCase'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application/Logger'; const unwrapError = ( diff --git a/core/racing/application/use-cases/SendFinalResultsUseCase.ts b/core/racing/application/use-cases/SendFinalResultsUseCase.ts index ebbfab5fa..618957821 100644 --- a/core/racing/application/use-cases/SendFinalResultsUseCase.ts +++ b/core/racing/application/use-cases/SendFinalResultsUseCase.ts @@ -1,14 +1,14 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; import type { NotificationType } from '../../../notifications/domain/types/NotificationTypes'; import type { RaceEvent } from '../../domain/entities/RaceEvent'; import type { Result as RaceResult } from '../../domain/entities/result/Result'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { isLeagueStewardOrHigherRole } from '../../domain/types/LeagueRoles'; import { Position } from '../../domain/entities/result/Position'; import { IncidentCount } from '../../domain/entities/result/IncidentCount'; diff --git a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts index 240491bcd..6aebe337e 100644 --- a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts +++ b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.test.ts @@ -6,13 +6,13 @@ import { type SendPerformanceSummaryErrorCode, } from './SendPerformanceSummaryUseCase'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application/Logger'; const unwrapError = ( diff --git a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.ts b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.ts index 8dea119ee..ee68aa0ab 100644 --- a/core/racing/application/use-cases/SendPerformanceSummaryUseCase.ts +++ b/core/racing/application/use-cases/SendPerformanceSummaryUseCase.ts @@ -1,5 +1,5 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { NotificationService } from '../../../notifications/application/ports/NotificationService'; import type { NotificationType } from '../../../notifications/domain/types/NotificationTypes'; @@ -7,11 +7,11 @@ import type { RaceEvent } from '../../domain/entities/RaceEvent'; import type { Result as RaceResult } from '../../domain/entities/result/Result'; import { Position } from '../../domain/entities/result/Position'; import { IncidentCount } from '../../domain/entities/result/IncidentCount'; -import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository'; -import type { IResultRepository } from '../../domain/repositories/IResultRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { RaceEventRepository } from '../../domain/repositories/RaceEventRepository'; +import type { ResultRepository } from '../../domain/repositories/ResultRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import { isLeagueStewardOrHigherRole } from '../../domain/types/LeagueRoles'; export type SendPerformanceSummaryInput = { diff --git a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts index 3f892f40d..061fa8467 100644 --- a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts +++ b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.test.ts @@ -5,10 +5,10 @@ import { type SubmitProtestDefenseResult, type SubmitProtestDefenseErrorCode, } from './SubmitProtestDefenseUseCase'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application'; interface MockProtest { diff --git a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.ts b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.ts index b77f2ccdd..ab7b9d9a7 100644 --- a/core/racing/application/use-cases/SubmitProtestDefenseUseCase.ts +++ b/core/racing/application/use-cases/SubmitProtestDefenseUseCase.ts @@ -4,11 +4,11 @@ * Allows the accused driver to submit their defense statement for a protest. */ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { IProtestRepository } from '../../domain/repositories/IProtestRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { ProtestRepository } from '../../domain/repositories/ProtestRepository'; export type SubmitProtestDefenseInput = { leagueId: string; diff --git a/core/racing/application/use-cases/TeamRankingUseCase.test.ts b/core/racing/application/use-cases/TeamRankingUseCase.test.ts index 62d4ff578..a1be98011 100644 --- a/core/racing/application/use-cases/TeamRankingUseCase.test.ts +++ b/core/racing/application/use-cases/TeamRankingUseCase.test.ts @@ -1,13 +1,13 @@ import { TeamRankingUseCase } from './TeamRankingUseCase'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; -import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; +import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository'; import type { Logger } from '@core/shared/application'; import { TeamRatingSnapshot } from '@core/racing/domain/services/TeamRatingSnapshotCalculator'; import { TeamRatingValue } from '@core/racing/domain/value-objects/TeamRatingValue'; import { Team } from '@core/racing/domain/entities/Team'; // Mock repositories -class MockTeamRatingRepository implements ITeamRatingRepository { +class MockTeamRatingRepository implements TeamRatingRepository { private snapshots: Map = new Map(); async findByTeamId(teamId: string): Promise { @@ -28,7 +28,7 @@ class MockTeamRatingRepository implements ITeamRatingRepository { } } -class MockTeamRepository implements ITeamRepository { +class MockTeamRepository implements TeamRepository { private teams: Map = new Map(); async findById(id: string): Promise { diff --git a/core/racing/application/use-cases/TeamRankingUseCase.ts b/core/racing/application/use-cases/TeamRankingUseCase.ts index 57c2f390c..606ef207d 100644 --- a/core/racing/application/use-cases/TeamRankingUseCase.ts +++ b/core/racing/application/use-cases/TeamRankingUseCase.ts @@ -1,139 +1,22 @@ /** - * Application Use Case: TeamRankingUseCase + * Application Use Case Interface: ITeamRankingUseCase * - * Computes team rankings from rating snapshots (ledger-based). - * Orchestrates repositories to provide team ranking data to presentation layer. - * Evolved from direct standings to use team rating events and snapshots. + * Use case for computing team rankings from rating snapshots. + * This is an application layer concern that orchestrates domain data. */ -import type { Logger } from '@core/shared/application'; -import type { ITeamRatingRepository } from '../../domain/repositories/ITeamRatingRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamRankingUseCase, TeamRanking } from './ITeamRankingUseCase'; +export interface TeamRanking { + teamId: string; + teamName: string; + drivingRating: number; + adminTrustRating: number; + overallRating: number; + eventCount: number; + lastUpdated: Date; + overallRank: number | null; +} -export class TeamRankingUseCase implements ITeamRankingUseCase { - constructor( - private readonly teamRatingRepository: ITeamRatingRepository, - private readonly teamRepository: ITeamRepository, - private readonly logger: Logger - ) { - this.logger.info('[TeamRankingUseCase] Initialized with ledger-based team rating repositories'); - } - - async getAllTeamRankings(): Promise { - this.logger.debug('[TeamRankingUseCase] Computing rankings from team rating snapshots'); - - try { - // Get all teams for name resolution - const teams = await this.teamRepository.findAll(); - const teamMap = new Map(teams.map(t => [t.id, t])); - - // Get all team IDs - const teamIds = Array.from(teamMap.keys()); - - if (teamIds.length === 0) { - this.logger.warn('[TeamRankingUseCase] No teams found'); - return []; - } - - // Get rating snapshots for all teams - const rankingPromises = teamIds.map(async (teamId) => { - const snapshot = await this.teamRatingRepository.findByTeamId(teamId); - const team = teamMap.get(teamId); - - if (!snapshot || !team) { - return null; - } - - return { - teamId, - teamName: team.name.toString(), - drivingRating: snapshot.driving.value, - adminTrustRating: snapshot.adminTrust.value, - overallRating: snapshot.overall, - eventCount: snapshot.eventCount, - lastUpdated: snapshot.lastUpdated, - overallRank: null, // Will be assigned after sorting - } as TeamRanking; - }); - - const rankings = (await Promise.all(rankingPromises)).filter( - (r): r is TeamRanking => r !== null - ); - - if (rankings.length === 0) { - this.logger.warn('[TeamRankingUseCase] No team rating snapshots found'); - return []; - } - - // Sort by overall rating descending and assign ranks - rankings.sort((a, b) => b.overallRating - a.overallRating); - rankings.forEach((r, idx) => r.overallRank = idx + 1); - - this.logger.info(`[TeamRankingUseCase] Computed rankings for ${rankings.length} teams`); - - return rankings; - } catch (error) { - this.logger.error('[TeamRankingUseCase] Error computing rankings:', error instanceof Error ? error : new Error(String(error))); - throw error; - } - } - - async getTeamRanking(teamId: string): Promise { - this.logger.debug(`[TeamRankingUseCase] Getting ranking for team ${teamId}`); - - try { - const snapshot = await this.teamRatingRepository.findByTeamId(teamId); - - if (!snapshot) { - this.logger.warn(`[TeamRankingUseCase] No rating snapshot found for team ${teamId}`); - return null; - } - - const team = await this.teamRepository.findById(teamId); - - if (!team) { - this.logger.warn(`[TeamRankingUseCase] Team ${teamId} not found`); - return null; - } - - // Get all teams to calculate rank - const allTeams = await this.teamRepository.findAll(); - const allRankings: TeamRanking[] = []; - - for (const t of allTeams) { - const s = await this.teamRatingRepository.findByTeamId(t.id); - if (s) { - allRankings.push({ - teamId: t.id, - teamName: t.name.toString(), - drivingRating: s.driving.value, - adminTrustRating: s.adminTrust.value, - overallRating: s.overall, - eventCount: s.eventCount, - lastUpdated: s.lastUpdated, - overallRank: null, - }); - } - } - - // Sort and assign rank - allRankings.sort((a, b) => b.overallRating - a.overallRating); - const rank = allRankings.findIndex(r => r.teamId === teamId) + 1; - - return { - teamId, - teamName: team.name.toString(), - drivingRating: snapshot.driving.value, - adminTrustRating: snapshot.adminTrust.value, - overallRating: snapshot.overall, - eventCount: snapshot.eventCount, - lastUpdated: snapshot.lastUpdated, - overallRank: rank, - }; - } catch (error) { - this.logger.error(`[TeamRankingUseCase] Error getting team ranking:`, error instanceof Error ? error : new Error(String(error))); - throw error; - } - } +export interface TeamRankingUseCase { + getAllTeamRankings(): Promise; + getTeamRanking(teamId: string): Promise; } \ No newline at end of file diff --git a/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts b/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts index 8d968c9e4..abaf314c6 100644 --- a/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts +++ b/core/racing/application/use-cases/TeamRatingFactoryUseCase.test.ts @@ -1,10 +1,10 @@ import { TeamRatingFactoryUseCase } from './TeamRatingFactoryUseCase'; -import type { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; +import type { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; import type { Logger } from '@core/shared/application'; import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; // Mock provider -class MockTeamRaceResultsProvider implements ITeamRaceResultsProvider { +class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; async getTeamRaceResults(raceId: string): Promise { diff --git a/core/racing/application/use-cases/TeamRatingFactoryUseCase.ts b/core/racing/application/use-cases/TeamRatingFactoryUseCase.ts index 466ef512c..46a8b8f0d 100644 --- a/core/racing/application/use-cases/TeamRatingFactoryUseCase.ts +++ b/core/racing/application/use-cases/TeamRatingFactoryUseCase.ts @@ -7,7 +7,7 @@ */ import type { Logger } from '@core/shared/application'; -import type { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; +import type { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; import { TeamDrivingRatingEventFactory } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; diff --git a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts index 5e769c097..bdaa1b3cb 100644 --- a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts +++ b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.test.ts @@ -1,7 +1,7 @@ import { TeamRatingIntegrationAdapter } from './TeamRatingIntegrationAdapter'; -import { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; -import { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; +import { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamDrivingRaceFactsDto } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent'; import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId'; @@ -9,7 +9,7 @@ import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRa import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta'; // Mock repositories -class MockTeamRaceResultsProvider implements ITeamRaceResultsProvider { +class MockTeamRaceResultsProvider implements TeamRaceResultsProvider { private results: TeamDrivingRaceFactsDto | null = null; async getTeamRaceResults(raceId: string): Promise { @@ -21,7 +21,7 @@ class MockTeamRaceResultsProvider implements ITeamRaceResultsProvider { } } -class MockTeamRatingEventRepository implements ITeamRatingEventRepository { +class MockTeamRatingEventRepository implements TeamRatingEventRepository { private events: TeamRatingEvent[] = []; async save(event: TeamRatingEvent): Promise { @@ -57,7 +57,7 @@ class MockTeamRatingEventRepository implements ITeamRatingEventRepository { } } -class MockTeamRatingRepository implements ITeamRatingRepository { +class MockTeamRatingRepository implements TeamRatingRepository { private snapshots: Map = new Map(); async findByTeamId(teamId: string): Promise { diff --git a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.ts b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.ts index 49ce02777..0c78cf734 100644 --- a/core/racing/application/use-cases/TeamRatingIntegrationAdapter.ts +++ b/core/racing/application/use-cases/TeamRatingIntegrationAdapter.ts @@ -1,6 +1,6 @@ -import type { ITeamRaceResultsProvider } from '../ports/ITeamRaceResultsProvider'; -import type { ITeamRatingEventRepository } from '@core/racing/domain/repositories/ITeamRatingEventRepository'; -import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository'; +import type { TeamRaceResultsProvider } from '../ports/TeamRaceResultsProvider'; +import type { TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository'; +import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository'; import { TeamDrivingRatingEventFactory } from '@core/racing/domain/services/TeamDrivingRatingEventFactory'; import { AppendTeamRatingEventsUseCase } from './AppendTeamRatingEventsUseCase'; diff --git a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts index 803c0d75f..583217ae1 100644 --- a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts +++ b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.test.ts @@ -5,11 +5,11 @@ import { type TransferLeagueOwnershipResult, type TransferLeagueOwnershipErrorCode, } from './TransferLeagueOwnershipUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { Logger } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { Result } from '@core/shared/application/Result'; +import type { Result } from '@core/shared/domain/Result'; describe('TransferLeagueOwnershipUseCase', () => { let leagueRepository: ILeagueRepository; diff --git a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.ts b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.ts index 00486a959..01ec3f6cd 100644 --- a/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.ts +++ b/core/racing/application/use-cases/TransferLeagueOwnershipUseCase.ts @@ -1,10 +1,10 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; import type { ILeagueMembershipRepository, -} from '@core/racing/domain/repositories/ILeagueMembershipRepository'; -import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository'; +} from '@core/racing/domain/repositories/LeagueMembershipRepository'; +import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository'; export type TransferLeagueOwnershipInput = { leagueId: string; diff --git a/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.test.ts b/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.test.ts index 0a8a574d4..532e9d1ae 100644 --- a/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.test.ts +++ b/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Season } from '../../domain/entities/season/Season'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { UnpublishLeagueSeasonScheduleUseCase, diff --git a/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.ts b/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.ts index b67185350..abf5080c9 100644 --- a/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.ts +++ b/core/racing/application/use-cases/UnpublishLeagueSeasonScheduleUseCase.ts @@ -1,8 +1,8 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; export type UnpublishLeagueSeasonScheduleInput = { leagueId: string; diff --git a/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts b/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts index 6ef33ed59..af0bed894 100644 --- a/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateDriverProfileUseCase.test.ts @@ -5,10 +5,10 @@ import { type UpdateDriverProfileResult, type UpdateDriverProfileErrorCode, } from './UpdateDriverProfileUseCase'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { Driver } from '../../domain/entities/Driver'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { Logger } from '@core/shared/application/Logger'; describe('UpdateDriverProfileUseCase', () => { diff --git a/core/racing/application/use-cases/UpdateDriverProfileUseCase.ts b/core/racing/application/use-cases/UpdateDriverProfileUseCase.ts index 3ca092e0b..41e9b997f 100644 --- a/core/racing/application/use-cases/UpdateDriverProfileUseCase.ts +++ b/core/racing/application/use-cases/UpdateDriverProfileUseCase.ts @@ -1,8 +1,8 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { UseCase } from '@core/shared/application'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application/Logger'; -import type { IDriverRepository } from '../../domain/repositories/IDriverRepository'; +import type { DriverRepository } from '../../domain/repositories/DriverRepository'; import type { Driver } from '../../domain/entities/Driver'; export type UpdateDriverProfileInput = { diff --git a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts index c8cfbafa3..6fa8001c4 100644 --- a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.test.ts @@ -5,7 +5,7 @@ import { type UpdateLeagueMemberRoleResult, type UpdateLeagueMemberRoleErrorCode, } from './UpdateLeagueMemberRoleUseCase'; -import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; describe('UpdateLeagueMemberRoleUseCase', () => { diff --git a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.ts b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.ts index c043c3d62..67eb791c2 100644 --- a/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.ts +++ b/core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase.ts @@ -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 { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository'; +import type { LeagueMembershipRepository } from '../../domain/repositories/LeagueMembershipRepository'; import { LeagueMembership } from '../../domain/entities/LeagueMembership'; import type { MembershipRoleValue } from '../../domain/entities/MembershipRole'; diff --git a/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.test.ts b/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.test.ts index bc905d996..fb75596cd 100644 --- a/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.test.ts @@ -3,8 +3,8 @@ import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorC import { Race } from '../../domain/entities/Race'; import { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { UpdateLeagueSeasonScheduleRaceUseCase, diff --git a/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.ts b/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.ts index 1ce94dd2c..2c61fbabc 100644 --- a/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.ts +++ b/core/racing/application/use-cases/UpdateLeagueSeasonScheduleRaceUseCase.ts @@ -1,11 +1,11 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { Race } from '../../domain/entities/Race'; import type { Season } from '../../domain/entities/season/Season'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { SeasonRepository } from '../../domain/repositories/SeasonRepository'; import { SeasonScheduleGenerator } from '../../domain/services/SeasonScheduleGenerator'; export type UpdateLeagueSeasonScheduleRaceInput = { diff --git a/core/racing/application/use-cases/UpdateTeamUseCase.test.ts b/core/racing/application/use-cases/UpdateTeamUseCase.test.ts index 6197f449a..dd03252e3 100644 --- a/core/racing/application/use-cases/UpdateTeamUseCase.test.ts +++ b/core/racing/application/use-cases/UpdateTeamUseCase.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect, vi } from 'vitest'; import { UpdateTeamUseCase, type UpdateTeamInput, type UpdateTeamResult, type UpdateTeamErrorCode } from './UpdateTeamUseCase'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; describe('UpdateTeamUseCase', () => { it('updates team successfully', async () => { diff --git a/core/racing/application/use-cases/UpdateTeamUseCase.ts b/core/racing/application/use-cases/UpdateTeamUseCase.ts index b261fe1e8..f65b64210 100644 --- a/core/racing/application/use-cases/UpdateTeamUseCase.ts +++ b/core/racing/application/use-cases/UpdateTeamUseCase.ts @@ -1,8 +1,8 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Team } from '../../domain/entities/Team'; -import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository'; -import type { ITeamRepository } from '../../domain/repositories/ITeamRepository'; +import type { TeamMembershipRepository } from '../../domain/repositories/TeamMembershipRepository'; +import type { TeamRepository } from '../../domain/repositories/TeamRepository'; export type UpdateTeamInput = { teamId: string; diff --git a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts index 293689deb..8a3ed155e 100644 --- a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts +++ b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.test.ts @@ -5,9 +5,9 @@ import { type WithdrawFromLeagueWalletInput, type WithdrawFromLeagueWalletResult, } from './WithdrawFromLeagueWalletUseCase'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ITransactionRepository } from '../../domain/repositories/ITransactionRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { TransactionRepository } from '../../domain/repositories/TransactionRepository'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import { League } from '../../domain/entities/League'; import { LeagueWallet } from '../../domain/entities/league-wallet/LeagueWallet'; diff --git a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.ts b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.ts index 2c9f12ae0..c5a14c7a5 100644 --- a/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.ts +++ b/core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase.ts @@ -1,9 +1,9 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; import type { Logger } from '@core/shared/application'; -import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository'; -import type { ILeagueWalletRepository } from '../../domain/repositories/ILeagueWalletRepository'; -import type { ITransactionRepository } from '../../domain/repositories/ITransactionRepository'; +import type { LeagueRepository } from '../../domain/repositories/LeagueRepository'; +import type { LeagueWalletRepository } from '../../domain/repositories/LeagueWalletRepository'; +import type { TransactionRepository } from '../../domain/repositories/TransactionRepository'; import { Money } from '../../domain/value-objects/Money'; import { Transaction } from '../../domain/entities/league-wallet/Transaction'; import { TransactionId } from '../../domain/entities/league-wallet/TransactionId'; diff --git a/core/racing/application/use-cases/WithdrawFromRaceUseCase.test.ts b/core/racing/application/use-cases/WithdrawFromRaceUseCase.test.ts index dd4696e4c..c0acfb9d8 100644 --- a/core/racing/application/use-cases/WithdrawFromRaceUseCase.test.ts +++ b/core/racing/application/use-cases/WithdrawFromRaceUseCase.test.ts @@ -5,8 +5,8 @@ import { type WithdrawFromRaceResult, type WithdrawFromRaceErrorCode, } from './WithdrawFromRaceUseCase'; -import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'; -import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository'; +import type { RaceRepository } from '../../domain/repositories/RaceRepository'; +import type { RaceRegistrationRepository } from '../../domain/repositories/RaceRegistrationRepository'; import type { Logger } from '@core/shared/application/Logger'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; diff --git a/core/racing/application/use-cases/WithdrawFromRaceUseCase.ts b/core/racing/application/use-cases/WithdrawFromRaceUseCase.ts index c23fa67d8..d992a44b3 100644 --- a/core/racing/application/use-cases/WithdrawFromRaceUseCase.ts +++ b/core/racing/application/use-cases/WithdrawFromRaceUseCase.ts @@ -1,7 +1,7 @@ -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository'; -import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository'; +import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository'; +import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository'; import type { Logger } from '@core/shared/application/Logger'; export type WithdrawFromRaceInput = { diff --git a/core/racing/domain/entities/Car.ts b/core/racing/domain/entities/Car.ts index 33c9418aa..22a99eae3 100644 --- a/core/racing/domain/entities/Car.ts +++ b/core/racing/domain/entities/Car.ts @@ -5,7 +5,7 @@ * Immutable entity with factory methods and domain validation. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { CarName } from './CarName'; import { Manufacturer } from './Manufacturer'; @@ -18,7 +18,7 @@ import { GameId } from './GameId'; import { CarId } from './CarId'; import { ImageUrl } from './ImageUrl'; -export class Car implements IEntity { +export class Car implements Entity { readonly id: CarId; readonly name: CarName; readonly shortName: string; diff --git a/core/racing/domain/entities/Driver.ts b/core/racing/domain/entities/Driver.ts index 0eed4b8c6..94755607f 100644 --- a/core/racing/domain/entities/Driver.ts +++ b/core/racing/domain/entities/Driver.ts @@ -6,15 +6,15 @@ */ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; -import { IRacingId } from '../value-objects/IRacingId'; +import type { Entity } from '@core/shared/domain'; +import { RacingId } from '../value-objects/RacingId'; import { DriverName } from '../value-objects/driver/DriverName'; import { CountryCode } from '../value-objects/CountryCode'; import { DriverBio } from '../value-objects/driver/DriverBio'; import { JoinedAt } from '../value-objects/JoinedAt'; import { MediaReference } from '@core/domain/media/MediaReference'; -export class Driver implements IEntity { +export class Driver implements Entity { readonly id: string; readonly iracingId: IRacingId; readonly name: DriverName; diff --git a/core/racing/domain/entities/DriverLivery.ts b/core/racing/domain/entities/DriverLivery.ts index 07e72edf2..3506c34ef 100644 --- a/core/racing/domain/entities/DriverLivery.ts +++ b/core/racing/domain/entities/DriverLivery.ts @@ -5,7 +5,7 @@ * Includes user-placed decals and league-specific overrides. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; import { LiveryDecal } from '../value-objects/LiveryDecal'; @@ -28,7 +28,7 @@ export interface DriverLiveryProps { validatedAt: Date | undefined; } -export class DriverLivery implements IEntity { +export class DriverLivery implements Entity { readonly id: string; readonly driverId: DriverId; readonly gameId: GameId; diff --git a/core/racing/domain/entities/Game.ts b/core/racing/domain/entities/Game.ts index c6635bb14..7a2daaadc 100644 --- a/core/racing/domain/entities/Game.ts +++ b/core/racing/domain/entities/Game.ts @@ -1,8 +1,8 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { GameId } from './GameId'; import { GameName } from './GameName'; -export class Game implements IEntity { +export class Game implements Entity { readonly id: GameId; readonly name: GameName; diff --git a/core/racing/domain/entities/JoinRequest.ts b/core/racing/domain/entities/JoinRequest.ts index 3564c96d9..c9e44551c 100644 --- a/core/racing/domain/entities/JoinRequest.ts +++ b/core/racing/domain/entities/JoinRequest.ts @@ -4,7 +4,7 @@ * Represents a request to join a league. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { LeagueId } from './LeagueId'; import { LeagueOwnerId } from './LeagueOwnerId'; @@ -18,7 +18,7 @@ export interface JoinRequestProps { message?: string; } -export class JoinRequest implements IEntity { +export class JoinRequest implements Entity { readonly id: string; readonly leagueId: LeagueId; readonly driverId: LeagueOwnerId; diff --git a/core/racing/domain/entities/League.ts b/core/racing/domain/entities/League.ts index c0766b609..962bda2fb 100644 --- a/core/racing/domain/entities/League.ts +++ b/core/racing/domain/entities/League.ts @@ -5,7 +5,7 @@ * Immutable entity with factory methods and domain validation. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { LeagueId } from './LeagueId'; import { LeagueName } from './LeagueName'; import { LeagueDescription } from './LeagueDescription'; @@ -91,7 +91,7 @@ export interface LeagueSettings { visibility?: LeagueVisibilityType; } -export class League implements IEntity { +export class League implements Entity { readonly id: LeagueId; readonly name: LeagueName; readonly description: LeagueDescription; diff --git a/core/racing/domain/entities/LeagueMembership.ts b/core/racing/domain/entities/LeagueMembership.ts index decb97f91..745b0daa6 100644 --- a/core/racing/domain/entities/LeagueMembership.ts +++ b/core/racing/domain/entities/LeagueMembership.ts @@ -4,7 +4,7 @@ * Represents a driver's membership in a league. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { LeagueId } from './LeagueId'; import { MembershipRole, MembershipRoleValue } from './MembershipRole'; @@ -22,7 +22,7 @@ export interface LeagueMembershipProps { joinedAt?: Date; } -export class LeagueMembership implements IEntity { +export class LeagueMembership implements Entity { readonly id: string; readonly leagueId: LeagueId; readonly driverId: DriverId; diff --git a/core/racing/domain/entities/LeagueScoringConfig.ts b/core/racing/domain/entities/LeagueScoringConfig.ts index b2cca0727..f369436f7 100644 --- a/core/racing/domain/entities/LeagueScoringConfig.ts +++ b/core/racing/domain/entities/LeagueScoringConfig.ts @@ -4,7 +4,7 @@ * Represents the scoring configuration for a league season. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import type { ChampionshipConfig } from '../types/ChampionshipConfig'; import { SeasonId } from './season/SeasonId'; @@ -25,7 +25,7 @@ export interface LeagueScoringConfigRehydrateProps { championships: ChampionshipConfig[]; } -export class LeagueScoringConfig implements IEntity { +export class LeagueScoringConfig implements Entity { readonly id: LeagueScoringConfigId; readonly seasonId: SeasonId; readonly scoringPresetId: ScoringPresetId | undefined; diff --git a/core/racing/domain/entities/LiveryTemplate.ts b/core/racing/domain/entities/LiveryTemplate.ts index b8bf515fa..0b5003679 100644 --- a/core/racing/domain/entities/LiveryTemplate.ts +++ b/core/racing/domain/entities/LiveryTemplate.ts @@ -5,7 +5,7 @@ * Contains base image and sponsor decal placements. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; import type { LiveryDecal } from '../value-objects/LiveryDecal'; import { LiveryTemplateId } from './LiveryTemplateId'; @@ -16,7 +16,7 @@ import { ImageUrl } from './ImageUrl'; import { LiveryTemplateCreatedAt } from './LiveryTemplateCreatedAt'; import { LiveryTemplateUpdatedAt } from './LiveryTemplateUpdatedAt'; -export class LiveryTemplate implements IEntity { +export class LiveryTemplate implements Entity { readonly id: LiveryTemplateId; readonly leagueId: LeagueId; readonly seasonId: SeasonId; diff --git a/core/racing/domain/entities/Protest.ts b/core/racing/domain/entities/Protest.ts index 16b3189de..bef70df4c 100644 --- a/core/racing/domain/entities/Protest.ts +++ b/core/racing/domain/entities/Protest.ts @@ -12,7 +12,7 @@ * - withdrawn: Protesting driver withdrew the protest */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { ProtestId } from './ProtestId'; import { RaceId } from './RaceId'; import { DriverId } from './DriverId'; @@ -58,7 +58,7 @@ export interface ProtestProps { defenseRequestedBy?: StewardId; } -export class Protest implements IEntity { +export class Protest implements Entity { private constructor(private readonly props: ProtestProps) {} static create(props: { diff --git a/core/racing/domain/entities/Race.ts b/core/racing/domain/entities/Race.ts index 4c7a1cdca..44c34922b 100644 --- a/core/racing/domain/entities/Race.ts +++ b/core/racing/domain/entities/Race.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { SessionType } from '../value-objects/SessionType'; import { RaceStatus, RaceStatusValue } from '../value-objects/RaceStatus'; import { ParticipantCount } from '../value-objects/ParticipantCount'; @@ -15,7 +15,7 @@ import { StrengthOfField } from '../value-objects/StrengthOfField'; export type { RaceStatus, RaceStatusValue } from '../value-objects/RaceStatus'; -export class Race implements IEntity { +export class Race implements Entity { readonly id: string; readonly leagueId: string; readonly scheduledAt: Date; diff --git a/core/racing/domain/entities/RaceEvent.ts b/core/racing/domain/entities/RaceEvent.ts index 472fbc202..67a5bff85 100644 --- a/core/racing/domain/entities/RaceEvent.ts +++ b/core/racing/domain/entities/RaceEvent.ts @@ -6,13 +6,13 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { Session } from './Session'; import { SessionType } from '../value-objects/SessionType'; export type RaceEventStatus = 'scheduled' | 'in_progress' | 'awaiting_stewarding' | 'closed' | 'cancelled'; -export class RaceEvent implements IEntity { +export class RaceEvent implements Entity { readonly id: string; readonly seasonId: string; readonly leagueId: string; diff --git a/core/racing/domain/entities/RaceRegistration.ts b/core/racing/domain/entities/RaceRegistration.ts index 2d9923e54..f56b95e9b 100644 --- a/core/racing/domain/entities/RaceRegistration.ts +++ b/core/racing/domain/entities/RaceRegistration.ts @@ -4,7 +4,7 @@ * Represents a registration of a driver for a specific race. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { RaceId } from './RaceId'; import { DriverId } from './DriverId'; @@ -17,7 +17,7 @@ export interface RaceRegistrationProps { registeredAt?: Date; } -export class RaceRegistration implements IEntity { +export class RaceRegistration implements Entity { readonly id: string; readonly raceId: RaceId; readonly driverId: DriverId; diff --git a/core/racing/domain/entities/ResultWithIncidents.ts b/core/racing/domain/entities/ResultWithIncidents.ts index 7fe5b814d..442bc05d9 100644 --- a/core/racing/domain/entities/ResultWithIncidents.ts +++ b/core/racing/domain/entities/ResultWithIncidents.ts @@ -2,7 +2,7 @@ * Enhanced Result entity with detailed incident tracking */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { RaceIncidents, type IncidentRecord } from '../value-objects/RaceIncidents'; import { DriverId } from './DriverId'; @@ -10,7 +10,7 @@ import { RaceId } from './RaceId'; import { LapTime } from './result/LapTime'; import { Position } from './result/Position'; -export class ResultWithIncidents implements IEntity { +export class ResultWithIncidents implements Entity { readonly id: string; readonly raceId: RaceId; readonly driverId: DriverId; diff --git a/core/racing/domain/entities/Session.ts b/core/racing/domain/entities/Session.ts index 0408f33af..3a7d73921 100644 --- a/core/racing/domain/entities/Session.ts +++ b/core/racing/domain/entities/Session.ts @@ -6,12 +6,12 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { SessionType } from '../value-objects/SessionType'; export type SessionStatus = 'scheduled' | 'running' | 'completed' | 'cancelled'; -export class Session implements IEntity { +export class Session implements Entity { readonly id: string; readonly raceEventId: string; readonly scheduledAt: Date; diff --git a/core/racing/domain/entities/SponsorshipRequest.ts b/core/racing/domain/entities/SponsorshipRequest.ts index 91a7b5024..ce04e74b4 100644 --- a/core/racing/domain/entities/SponsorshipRequest.ts +++ b/core/racing/domain/entities/SponsorshipRequest.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { Money } from '../value-objects/Money'; import type { SponsorshipTier } from './season/SeasonSponsorship'; @@ -29,7 +29,7 @@ export interface SponsorshipRequestProps { rejectionReason?: string; } -export class SponsorshipRequest implements IEntity { +export class SponsorshipRequest implements Entity { readonly id: string; readonly sponsorId: string; readonly entityType: SponsorableEntityType; diff --git a/core/racing/domain/entities/Standing.ts b/core/racing/domain/entities/Standing.ts index e392d2b2a..b828edd53 100644 --- a/core/racing/domain/entities/Standing.ts +++ b/core/racing/domain/entities/Standing.ts @@ -6,14 +6,14 @@ */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { LeagueId } from './LeagueId'; import { DriverId } from './DriverId'; import { Points } from '../value-objects/Points'; import { Position } from './championship/Position'; -export class Standing implements IEntity { +export class Standing implements Entity { readonly id: string; readonly leagueId: LeagueId; readonly driverId: DriverId; diff --git a/core/racing/domain/entities/Team.ts b/core/racing/domain/entities/Team.ts index a8afe010d..370c048d3 100644 --- a/core/racing/domain/entities/Team.ts +++ b/core/racing/domain/entities/Team.ts @@ -6,7 +6,7 @@ * basic invariants around identity and core properties. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { TeamName } from '../value-objects/TeamName'; import { TeamTag } from '../value-objects/TeamTag'; @@ -16,7 +16,7 @@ import { LeagueId } from './LeagueId'; import { TeamCreatedAt } from '../value-objects/TeamCreatedAt'; import { MediaReference } from '@core/domain/media/MediaReference'; -export class Team implements IEntity { +export class Team implements Entity { readonly id: string; readonly name: TeamName; readonly tag: TeamTag; diff --git a/core/racing/domain/entities/TeamRatingEvent.ts b/core/racing/domain/entities/TeamRatingEvent.ts index bb31666b5..f319795fd 100644 --- a/core/racing/domain/entities/TeamRatingEvent.ts +++ b/core/racing/domain/entities/TeamRatingEvent.ts @@ -1,4 +1,4 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { TeamRatingEventId } from '../value-objects/TeamRatingEventId'; import { TeamRatingDimensionKey } from '../value-objects/TeamRatingDimensionKey'; import { TeamRatingDelta } from '../value-objects/TeamRatingDelta'; @@ -32,7 +32,7 @@ export interface TeamRatingEventProps { version: number; } -export class TeamRatingEvent implements IEntity { +export class TeamRatingEvent implements Entity { readonly id: TeamRatingEventId; readonly teamId: string; readonly dimension: TeamRatingDimensionKey; diff --git a/core/racing/domain/entities/Track.ts b/core/racing/domain/entities/Track.ts index 6018800e2..6c6b77b8f 100644 --- a/core/racing/domain/entities/Track.ts +++ b/core/racing/domain/entities/Track.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { TrackName } from '../value-objects/TrackName'; import { TrackShortName } from '../value-objects/TrackShortName'; import { TrackCountry } from '../value-objects/TrackCountry'; @@ -18,7 +18,7 @@ import { TrackImageUrl } from '../value-objects/TrackImageUrl'; export type TrackCategory = 'oval' | 'road' | 'street' | 'dirt'; export type TrackDifficulty = 'beginner' | 'intermediate' | 'advanced' | 'expert'; -export class Track implements IEntity { +export class Track implements Entity { readonly id: string; readonly name: TrackName; readonly shortName: TrackShortName; diff --git a/core/racing/domain/entities/championship/ChampionshipStanding.ts b/core/racing/domain/entities/championship/ChampionshipStanding.ts index c2c358715..b637a1cfb 100644 --- a/core/racing/domain/entities/championship/ChampionshipStanding.ts +++ b/core/racing/domain/entities/championship/ChampionshipStanding.ts @@ -1,11 +1,11 @@ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RacingDomainValidationError } from '../../errors/RacingDomainError'; import type { ParticipantRef } from '../../types/ParticipantRef'; import { Points } from '../../value-objects/Points'; import { Position } from './Position'; import { ResultsCount } from './ResultsCount'; -export class ChampionshipStanding implements IEntity { +export class ChampionshipStanding implements Entity { readonly id: string; readonly seasonId: string; readonly championshipId: string; diff --git a/core/racing/domain/entities/league-wallet/LeagueWallet.ts b/core/racing/domain/entities/league-wallet/LeagueWallet.ts index 56fc54d91..50d3e69d7 100644 --- a/core/racing/domain/entities/league-wallet/LeagueWallet.ts +++ b/core/racing/domain/entities/league-wallet/LeagueWallet.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { Money } from '../../value-objects/Money'; import { LeagueWalletId } from './LeagueWalletId'; @@ -21,7 +21,7 @@ export interface LeagueWalletProps { createdAt: Date; } -export class LeagueWallet implements IEntity { +export class LeagueWallet implements Entity { readonly id: LeagueWalletId; readonly leagueId: LeagueId; readonly balance: Money; diff --git a/core/racing/domain/entities/league-wallet/Transaction.ts b/core/racing/domain/entities/league-wallet/Transaction.ts index 13a7ff680..6f470b2df 100644 --- a/core/racing/domain/entities/league-wallet/Transaction.ts +++ b/core/racing/domain/entities/league-wallet/Transaction.ts @@ -7,7 +7,7 @@ import { RacingDomainValidationError, RacingDomainInvariantError } from '../../errors/RacingDomainError'; import type { Money } from '../../value-objects/Money'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { TransactionId } from './TransactionId'; import { LeagueWalletId } from './LeagueWalletId'; @@ -34,7 +34,7 @@ export interface TransactionProps { metadata: Record | undefined; } -export class Transaction implements IEntity { +export class Transaction implements Entity { readonly id: TransactionId; readonly walletId: LeagueWalletId; readonly type: TransactionType; diff --git a/core/racing/domain/entities/penalty/Penalty.ts b/core/racing/domain/entities/penalty/Penalty.ts index 2242b11c2..5f237e5e3 100644 --- a/core/racing/domain/entities/penalty/Penalty.ts +++ b/core/racing/domain/entities/penalty/Penalty.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { PenaltyId } from './PenaltyId'; import { LeagueId } from '../LeagueId'; import { RaceId } from '../RaceId'; @@ -60,7 +60,7 @@ export function penaltyTypeRequiresValue(type: PenaltyTypeValue): boolean { return PENALTY_TYPES_REQUIRING_VALUE.includes(type); } -export class Penalty implements IEntity { +export class Penalty implements Entity { private constructor(private readonly props: PenaltyProps) {} static create(props: { diff --git a/core/racing/domain/entities/prize/Prize.ts b/core/racing/domain/entities/prize/Prize.ts index 6cc54a049..f15066996 100644 --- a/core/racing/domain/entities/prize/Prize.ts +++ b/core/racing/domain/entities/prize/Prize.ts @@ -5,7 +5,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { Money } from '../../value-objects/Money'; import { Position } from '../championship/Position'; @@ -27,7 +27,7 @@ export interface PrizeProps { description: string | undefined; } -export class Prize implements IEntity { +export class Prize implements Entity { readonly id: PrizeId; readonly seasonId: SeasonId; readonly position: Position; diff --git a/core/racing/domain/entities/result/Result.ts b/core/racing/domain/entities/result/Result.ts index 67122568d..46f6df944 100644 --- a/core/racing/domain/entities/result/Result.ts +++ b/core/racing/domain/entities/result/Result.ts @@ -6,14 +6,14 @@ */ import { RacingDomainValidationError } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { RaceId } from '../RaceId'; import { DriverId } from '../DriverId'; import { Position } from './Position'; import { LapTime } from './LapTime'; import { IncidentCount } from './IncidentCount'; -export class Result implements IEntity { +export class Result implements Entity { readonly id: string; readonly raceId: RaceId; readonly driverId: DriverId; diff --git a/core/racing/domain/entities/season/Season.ts b/core/racing/domain/entities/season/Season.ts index 0d6cab80a..e9b212bbe 100644 --- a/core/racing/domain/entities/season/Season.ts +++ b/core/racing/domain/entities/season/Season.ts @@ -2,7 +2,7 @@ import { RacingDomainInvariantError, RacingDomainValidationError, } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { SeasonSchedule } from '../../value-objects/SeasonSchedule'; import type { SeasonScoringConfig } from '../../value-objects/SeasonScoringConfig'; import type { SeasonDropPolicy } from '../../value-objects/SeasonDropPolicy'; @@ -11,7 +11,7 @@ import { SeasonStatus, SeasonStatusValue } from '../../value-objects/SeasonStatu import { ParticipantCount } from '../../value-objects/ParticipantCount'; import { MaxParticipants } from '../../value-objects/MaxParticipants'; -export class Season implements IEntity { +export class Season implements Entity { readonly id: string; readonly leagueId: string; readonly gameId: string; diff --git a/core/racing/domain/entities/season/SeasonSponsorship.ts b/core/racing/domain/entities/season/SeasonSponsorship.ts index 7446fd0c4..bac45f636 100644 --- a/core/racing/domain/entities/season/SeasonSponsorship.ts +++ b/core/racing/domain/entities/season/SeasonSponsorship.ts @@ -6,7 +6,7 @@ */ import { RacingDomainValidationError, RacingDomainInvariantError } from '../../errors/RacingDomainError'; -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import type { Money } from '../../value-objects/Money'; @@ -32,7 +32,7 @@ export interface SeasonSponsorshipProps { description?: string; } -export class SeasonSponsorship implements IEntity { +export class SeasonSponsorship implements Entity { readonly id: string; readonly seasonId: string; readonly leagueId: string | undefined; diff --git a/core/racing/domain/entities/season/index.test.ts b/core/racing/domain/entities/season/index.test.ts deleted file mode 100644 index bbae50264..000000000 --- a/core/racing/domain/entities/season/index.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as mod from '@core/racing/domain/entities/season/index'; - -describe('racing/domain/entities/season/index.ts', () => { - it('imports', () => { - expect(mod).toBeTruthy(); - }); -}); diff --git a/core/racing/domain/entities/season/index.ts b/core/racing/domain/entities/season/index.ts deleted file mode 100644 index 32e95efb4..000000000 --- a/core/racing/domain/entities/season/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Season'; -export * from './SeasonId'; -export * from './SeasonSponsorship'; \ No newline at end of file diff --git a/core/racing/domain/entities/sponsor/Sponsor.ts b/core/racing/domain/entities/sponsor/Sponsor.ts index 32db10b91..1df92c0c4 100644 --- a/core/racing/domain/entities/sponsor/Sponsor.ts +++ b/core/racing/domain/entities/sponsor/Sponsor.ts @@ -4,7 +4,7 @@ * Represents a sponsor that can sponsor leagues/seasons. * Aggregate root for sponsor information. */ -import type { IEntity } from '@core/shared/domain'; +import type { Entity } from '@core/shared/domain'; import { SponsorCreatedAt } from './SponsorCreatedAt'; import { SponsorEmail } from './SponsorEmail'; import { SponsorId } from './SponsorId'; @@ -13,7 +13,7 @@ import { Url } from './Url'; // TODO sponsor is not actually the racing domain in my opinion -export class Sponsor implements IEntity { +export class Sponsor implements Entity { readonly id: SponsorId; readonly name: SponsorName; readonly contactEmail: SponsorEmail; diff --git a/core/racing/domain/errors/RacingDomainError.ts b/core/racing/domain/errors/RacingDomainError.ts index 27fa19566..2be100854 100644 --- a/core/racing/domain/errors/RacingDomainError.ts +++ b/core/racing/domain/errors/RacingDomainError.ts @@ -1,6 +1,6 @@ -import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors'; +import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors'; -export abstract class RacingDomainError extends Error implements IDomainError { +export abstract class RacingDomainError extends Error implements DomainError { readonly type = 'domain' as const; readonly context = 'racing-domain'; abstract readonly kind: CommonDomainErrorKind; @@ -13,7 +13,7 @@ export abstract class RacingDomainError extends Error implements IDomainError + implements DomainError<'validation'> { readonly kind = 'validation' as const; @@ -24,7 +24,7 @@ export class RacingDomainValidationError export class RacingDomainInvariantError extends RacingDomainError - implements IDomainError<'invariant'> + implements DomainError<'invariant'> { readonly kind = 'invariant' as const; diff --git a/core/racing/domain/events/MainRaceCompleted.ts b/core/racing/domain/events/MainRaceCompleted.ts index 4a53186a9..a720f9da5 100644 --- a/core/racing/domain/events/MainRaceCompleted.ts +++ b/core/racing/domain/events/MainRaceCompleted.ts @@ -1,4 +1,4 @@ -import type { IDomainEvent } from '@core/shared/domain'; +import type { DomainEvent } from '@core/shared/domain'; /** * Domain Event: MainRaceCompleted @@ -15,7 +15,7 @@ export interface MainRaceCompletedEventData { driverIds: string[]; // Drivers who participated in the main race } -export class MainRaceCompletedEvent implements IDomainEvent { +export class MainRaceCompletedEvent implements DomainEvent { readonly eventType = 'MainRaceCompleted'; readonly aggregateId: string; readonly eventData: MainRaceCompletedEventData; diff --git a/core/racing/domain/events/RaceEventStewardingClosed.ts b/core/racing/domain/events/RaceEventStewardingClosed.ts index 5ddbb3883..6a2f7ee6d 100644 --- a/core/racing/domain/events/RaceEventStewardingClosed.ts +++ b/core/racing/domain/events/RaceEventStewardingClosed.ts @@ -1,4 +1,4 @@ -import type { IDomainEvent } from '@core/shared/domain'; +import type { DomainEvent } from '@core/shared/domain'; /** * Domain Event: RaceEventStewardingClosed @@ -15,7 +15,7 @@ export interface RaceEventStewardingClosedEventData { hadPenaltiesApplied: boolean; // Whether any penalties were applied during stewarding } -export class RaceEventStewardingClosedEvent implements IDomainEvent { +export class RaceEventStewardingClosedEvent implements DomainEvent { readonly eventType = 'RaceEventStewardingClosed'; readonly aggregateId: string; readonly eventData: RaceEventStewardingClosedEventData; diff --git a/core/racing/domain/repositories/ICarRepository.ts b/core/racing/domain/repositories/CarRepository.ts similarity index 97% rename from core/racing/domain/repositories/ICarRepository.ts rename to core/racing/domain/repositories/CarRepository.ts index a653e454f..e243ef120 100644 --- a/core/racing/domain/repositories/ICarRepository.ts +++ b/core/racing/domain/repositories/CarRepository.ts @@ -9,7 +9,7 @@ import type { Car } from '../entities/Car'; import type { CarClass } from '../entities/CarClass'; import type { CarLicense } from '../entities/CarLicense'; -export interface ICarRepository { +export interface CarRepository { /** * Find a car by ID */ diff --git a/core/racing/domain/repositories/IChampionshipStandingRepository.ts b/core/racing/domain/repositories/ChampionshipStandingRepository.ts similarity index 84% rename from core/racing/domain/repositories/IChampionshipStandingRepository.ts rename to core/racing/domain/repositories/ChampionshipStandingRepository.ts index 8e8867b9b..d4b370442 100644 --- a/core/racing/domain/repositories/IChampionshipStandingRepository.ts +++ b/core/racing/domain/repositories/ChampionshipStandingRepository.ts @@ -1,6 +1,6 @@ import type { ChampionshipStanding } from '../entities/championship/ChampionshipStanding'; -export interface IChampionshipStandingRepository { +export interface ChampionshipStandingRepository { findBySeasonAndChampionship( seasonId: string, championshipId: string, diff --git a/core/racing/domain/repositories/IDriverRepository.ts b/core/racing/domain/repositories/DriverRepository.ts similarity index 96% rename from core/racing/domain/repositories/IDriverRepository.ts rename to core/racing/domain/repositories/DriverRepository.ts index e21c630c1..8d307d314 100644 --- a/core/racing/domain/repositories/IDriverRepository.ts +++ b/core/racing/domain/repositories/DriverRepository.ts @@ -7,7 +7,7 @@ import type { Driver } from '../entities/Driver'; -export interface IDriverRepository { +export interface DriverRepository { /** * Find a driver by ID */ diff --git a/core/racing/domain/repositories/IDriverStatsRepository.ts b/core/racing/domain/repositories/DriverStatsRepository.ts similarity index 66% rename from core/racing/domain/repositories/IDriverStatsRepository.ts rename to core/racing/domain/repositories/DriverStatsRepository.ts index 5f17e81cb..3f9b14906 100644 --- a/core/racing/domain/repositories/IDriverStatsRepository.ts +++ b/core/racing/domain/repositories/DriverStatsRepository.ts @@ -5,9 +5,23 @@ * This is used for caching computed stats and serving frontend data. */ -import type { DriverStats } from '../../application/use-cases/IDriverStatsUseCase'; +export interface DriverStats { + rating: number; + safetyRating: number; + sportsmanshipRating: number; + totalRaces: number; + wins: number; + podiums: number; + dnfs: number; + avgFinish: number; + bestFinish: number; + worstFinish: number; + consistency: number; + experienceLevel: string; + overallRank: number | null; +} -export interface IDriverStatsRepository { +export interface DriverStatsRepository { /** * Get stats for a specific driver */ diff --git a/core/racing/domain/repositories/IGameRepository.ts b/core/racing/domain/repositories/GameRepository.ts similarity index 77% rename from core/racing/domain/repositories/IGameRepository.ts rename to core/racing/domain/repositories/GameRepository.ts index 0ea6995e7..827675d9e 100644 --- a/core/racing/domain/repositories/IGameRepository.ts +++ b/core/racing/domain/repositories/GameRepository.ts @@ -1,6 +1,6 @@ import type { Game } from '../entities/Game'; -export interface IGameRepository { +export interface GameRepository { findById(id: string): Promise; findAll(): Promise; } \ No newline at end of file diff --git a/core/racing/domain/repositories/ILeagueMembershipRepository.ts b/core/racing/domain/repositories/LeagueMembershipRepository.ts similarity index 96% rename from core/racing/domain/repositories/ILeagueMembershipRepository.ts rename to core/racing/domain/repositories/LeagueMembershipRepository.ts index 534938902..14fdb6424 100644 --- a/core/racing/domain/repositories/ILeagueMembershipRepository.ts +++ b/core/racing/domain/repositories/LeagueMembershipRepository.ts @@ -10,7 +10,7 @@ import type { JoinRequest, } from '../entities/LeagueMembership'; -export interface ILeagueMembershipRepository { +export interface LeagueMembershipRepository { /** * Get membership for a driver in a league, or null if none exists. */ diff --git a/core/racing/domain/repositories/ILeagueRepository.ts b/core/racing/domain/repositories/LeagueRepository.ts similarity index 96% rename from core/racing/domain/repositories/ILeagueRepository.ts rename to core/racing/domain/repositories/LeagueRepository.ts index f3453c468..0b89b68b0 100644 --- a/core/racing/domain/repositories/ILeagueRepository.ts +++ b/core/racing/domain/repositories/LeagueRepository.ts @@ -7,7 +7,7 @@ import type { League } from '../entities/League'; -export interface ILeagueRepository { +export interface LeagueRepository { /** * Find a league by ID */ diff --git a/core/racing/domain/repositories/ILeagueScoringConfigRepository.ts b/core/racing/domain/repositories/LeagueScoringConfigRepository.ts similarity index 81% rename from core/racing/domain/repositories/ILeagueScoringConfigRepository.ts rename to core/racing/domain/repositories/LeagueScoringConfigRepository.ts index 4fa355b97..280c87776 100644 --- a/core/racing/domain/repositories/ILeagueScoringConfigRepository.ts +++ b/core/racing/domain/repositories/LeagueScoringConfigRepository.ts @@ -1,6 +1,6 @@ import type { LeagueScoringConfig } from '../entities/LeagueScoringConfig'; -export interface ILeagueScoringConfigRepository { +export interface LeagueScoringConfigRepository { findBySeasonId(seasonId: string): Promise; save(config: LeagueScoringConfig): Promise; } \ No newline at end of file diff --git a/core/racing/domain/repositories/ILeagueWalletRepository.ts b/core/racing/domain/repositories/LeagueWalletRepository.ts similarity index 92% rename from core/racing/domain/repositories/ILeagueWalletRepository.ts rename to core/racing/domain/repositories/LeagueWalletRepository.ts index fbd9703bd..442b4fb2f 100644 --- a/core/racing/domain/repositories/ILeagueWalletRepository.ts +++ b/core/racing/domain/repositories/LeagueWalletRepository.ts @@ -6,7 +6,7 @@ import type { LeagueWallet } from '../entities/league-wallet/LeagueWallet'; -export interface ILeagueWalletRepository { +export interface LeagueWalletRepository { findById(id: string): Promise; findByLeagueId(leagueId: string): Promise; create(wallet: LeagueWallet): Promise; diff --git a/core/racing/domain/repositories/ILiveryRepository.ts b/core/racing/domain/repositories/LiveryRepository.ts similarity index 97% rename from core/racing/domain/repositories/ILiveryRepository.ts rename to core/racing/domain/repositories/LiveryRepository.ts index 2f2b730a1..d161f2a4b 100644 --- a/core/racing/domain/repositories/ILiveryRepository.ts +++ b/core/racing/domain/repositories/LiveryRepository.ts @@ -7,7 +7,7 @@ import type { DriverLivery } from '../entities/DriverLivery'; import type { LiveryTemplate } from '../entities/LiveryTemplate'; -export interface ILiveryRepository { +export interface LiveryRepository { // DriverLivery operations findDriverLiveryById(id: string): Promise; findDriverLiveriesByDriverId(driverId: string): Promise; diff --git a/core/racing/domain/repositories/IMediaRepository.ts b/core/racing/domain/repositories/MediaRepository.ts similarity index 94% rename from core/racing/domain/repositories/IMediaRepository.ts rename to core/racing/domain/repositories/MediaRepository.ts index 5cf125693..72a00bd67 100644 --- a/core/racing/domain/repositories/IMediaRepository.ts +++ b/core/racing/domain/repositories/MediaRepository.ts @@ -5,7 +5,7 @@ * Handles frontend assets like team logos and driver avatars. */ -export interface IMediaRepository { +export interface MediaRepository { /** * Get driver avatar URL */ diff --git a/core/racing/domain/repositories/IPenaltyRepository.ts b/core/racing/domain/repositories/PenaltyRepository.ts similarity index 96% rename from core/racing/domain/repositories/IPenaltyRepository.ts rename to core/racing/domain/repositories/PenaltyRepository.ts index d9aa640e5..98cb588c3 100644 --- a/core/racing/domain/repositories/IPenaltyRepository.ts +++ b/core/racing/domain/repositories/PenaltyRepository.ts @@ -6,7 +6,7 @@ import type { Penalty } from '../entities/penalty/Penalty'; -export interface IPenaltyRepository { +export interface PenaltyRepository { /** * Find a penalty by ID */ diff --git a/core/racing/domain/repositories/IPrizeRepository.ts b/core/racing/domain/repositories/PrizeRepository.ts similarity index 95% rename from core/racing/domain/repositories/IPrizeRepository.ts rename to core/racing/domain/repositories/PrizeRepository.ts index 3b1b9c2bf..6597055db 100644 --- a/core/racing/domain/repositories/IPrizeRepository.ts +++ b/core/racing/domain/repositories/PrizeRepository.ts @@ -7,7 +7,7 @@ import type { Prize } from '../entities/prize/Prize'; import type { PrizeStatusValue } from '../entities/prize/PrizeStatus'; -export interface IPrizeRepository { +export interface PrizeRepository { findById(id: string): Promise; findBySeasonId(seasonId: string): Promise; findByDriverId(driverId: string): Promise; diff --git a/core/racing/domain/repositories/IProtestRepository.ts b/core/racing/domain/repositories/ProtestRepository.ts similarity index 96% rename from core/racing/domain/repositories/IProtestRepository.ts rename to core/racing/domain/repositories/ProtestRepository.ts index 1d7d886ad..a18c941dd 100644 --- a/core/racing/domain/repositories/IProtestRepository.ts +++ b/core/racing/domain/repositories/ProtestRepository.ts @@ -6,7 +6,7 @@ import type { Protest } from '../entities/Protest'; -export interface IProtestRepository { +export interface ProtestRepository { /** * Find a protest by ID */ diff --git a/core/racing/domain/repositories/IRaceEventRepository.ts b/core/racing/domain/repositories/RaceEventRepository.ts similarity index 93% rename from core/racing/domain/repositories/IRaceEventRepository.ts rename to core/racing/domain/repositories/RaceEventRepository.ts index 6494ac4b6..958d1aca7 100644 --- a/core/racing/domain/repositories/IRaceEventRepository.ts +++ b/core/racing/domain/repositories/RaceEventRepository.ts @@ -1,6 +1,6 @@ import type { RaceEvent } from '../entities/RaceEvent'; -export interface IRaceEventRepository { +export interface RaceEventRepository { findById(id: string): Promise; findAll(): Promise; findBySeasonId(seasonId: string): Promise; diff --git a/core/racing/domain/repositories/IRaceRegistrationRepository.ts b/core/racing/domain/repositories/RaceRegistrationRepository.ts similarity index 96% rename from core/racing/domain/repositories/IRaceRegistrationRepository.ts rename to core/racing/domain/repositories/RaceRegistrationRepository.ts index b767ec4d2..5b3180854 100644 --- a/core/racing/domain/repositories/IRaceRegistrationRepository.ts +++ b/core/racing/domain/repositories/RaceRegistrationRepository.ts @@ -7,7 +7,7 @@ import type { RaceRegistration } from '../entities/RaceRegistration'; -export interface IRaceRegistrationRepository { +export interface RaceRegistrationRepository { /** * Check if a driver is registered for a race. */ diff --git a/core/racing/domain/repositories/IRaceRepository.ts b/core/racing/domain/repositories/RaceRepository.ts similarity index 97% rename from core/racing/domain/repositories/IRaceRepository.ts rename to core/racing/domain/repositories/RaceRepository.ts index 9eb5430f1..d779ec7e9 100644 --- a/core/racing/domain/repositories/IRaceRepository.ts +++ b/core/racing/domain/repositories/RaceRepository.ts @@ -7,7 +7,7 @@ import type { Race, RaceStatusValue } from '../entities/Race'; -export interface IRaceRepository { +export interface RaceRepository { /** * Find a race by ID */ diff --git a/core/racing/domain/repositories/IResultRepository.ts b/core/racing/domain/repositories/ResultRepository.ts similarity index 97% rename from core/racing/domain/repositories/IResultRepository.ts rename to core/racing/domain/repositories/ResultRepository.ts index 809427bf2..0f43549ee 100644 --- a/core/racing/domain/repositories/IResultRepository.ts +++ b/core/racing/domain/repositories/ResultRepository.ts @@ -7,7 +7,7 @@ import type { Result } from '../entities/result/Result'; -export interface IResultRepository { +export interface ResultRepository { /** * Find a result by ID */ diff --git a/core/racing/domain/repositories/ISeasonRepository.ts b/core/racing/domain/repositories/SeasonRepository.ts similarity index 95% rename from core/racing/domain/repositories/ISeasonRepository.ts rename to core/racing/domain/repositories/SeasonRepository.ts index a1ee6147a..dafed00e7 100644 --- a/core/racing/domain/repositories/ISeasonRepository.ts +++ b/core/racing/domain/repositories/SeasonRepository.ts @@ -1,6 +1,6 @@ import type { Season } from '../entities/season/Season'; -export interface ISeasonRepository { +export interface SeasonRepository { findById(id: string): Promise; /** * Backward-compatible alias retained for existing callers. diff --git a/core/racing/domain/repositories/ISeasonSponsorshipRepository.ts b/core/racing/domain/repositories/SeasonSponsorshipRepository.ts similarity index 95% rename from core/racing/domain/repositories/ISeasonSponsorshipRepository.ts rename to core/racing/domain/repositories/SeasonSponsorshipRepository.ts index 20e9a3794..abb5a44e4 100644 --- a/core/racing/domain/repositories/ISeasonSponsorshipRepository.ts +++ b/core/racing/domain/repositories/SeasonSponsorshipRepository.ts @@ -6,7 +6,7 @@ import type { SeasonSponsorship, SponsorshipTier } from '../entities/season/SeasonSponsorship'; -export interface ISeasonSponsorshipRepository { +export interface SeasonSponsorshipRepository { findById(id: string): Promise; findBySeasonId(seasonId: string): Promise; /** diff --git a/core/racing/domain/repositories/ISessionRepository.ts b/core/racing/domain/repositories/SessionRepository.ts similarity index 92% rename from core/racing/domain/repositories/ISessionRepository.ts rename to core/racing/domain/repositories/SessionRepository.ts index 99cbc0340..460a5009e 100644 --- a/core/racing/domain/repositories/ISessionRepository.ts +++ b/core/racing/domain/repositories/SessionRepository.ts @@ -1,6 +1,6 @@ import type { Session } from '../entities/Session'; -export interface ISessionRepository { +export interface SessionRepository { findById(id: string): Promise; findAll(): Promise; findByRaceEventId(raceEventId: string): Promise; diff --git a/core/racing/domain/repositories/ISponsorRepository.ts b/core/racing/domain/repositories/SponsorRepository.ts similarity index 92% rename from core/racing/domain/repositories/ISponsorRepository.ts rename to core/racing/domain/repositories/SponsorRepository.ts index 5c0138975..e1ec5f486 100644 --- a/core/racing/domain/repositories/ISponsorRepository.ts +++ b/core/racing/domain/repositories/SponsorRepository.ts @@ -6,7 +6,7 @@ import type { Sponsor } from '../entities/sponsor/Sponsor'; -export interface ISponsorRepository { +export interface SponsorRepository { findById(id: string): Promise; findAll(): Promise; findByEmail(email: string): Promise; diff --git a/core/racing/domain/repositories/ISponsorshipPricingRepository.ts b/core/racing/domain/repositories/SponsorshipPricingRepository.ts similarity index 96% rename from core/racing/domain/repositories/ISponsorshipPricingRepository.ts rename to core/racing/domain/repositories/SponsorshipPricingRepository.ts index c74eec908..cea8a2825 100644 --- a/core/racing/domain/repositories/ISponsorshipPricingRepository.ts +++ b/core/racing/domain/repositories/SponsorshipPricingRepository.ts @@ -8,7 +8,7 @@ import type { SponsorshipPricing } from '../value-objects/SponsorshipPricing'; import type { SponsorableEntityType } from '../entities/SponsorshipRequest'; -export interface ISponsorshipPricingRepository { +export interface SponsorshipPricingRepository { /** * Get pricing configuration for an entity */ diff --git a/core/racing/domain/repositories/ISponsorshipRequestRepository.ts b/core/racing/domain/repositories/SponsorshipRequestRepository.ts similarity index 97% rename from core/racing/domain/repositories/ISponsorshipRequestRepository.ts rename to core/racing/domain/repositories/SponsorshipRequestRepository.ts index e4ad904e4..80deb8b88 100644 --- a/core/racing/domain/repositories/ISponsorshipRequestRepository.ts +++ b/core/racing/domain/repositories/SponsorshipRequestRepository.ts @@ -6,7 +6,7 @@ import type { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '../entities/SponsorshipRequest'; -export interface ISponsorshipRequestRepository { +export interface SponsorshipRequestRepository { findById(id: string): Promise; /** diff --git a/core/racing/domain/repositories/IStandingRepository.ts b/core/racing/domain/repositories/StandingRepository.ts similarity index 96% rename from core/racing/domain/repositories/IStandingRepository.ts rename to core/racing/domain/repositories/StandingRepository.ts index ebd252db9..4fc8dbd4c 100644 --- a/core/racing/domain/repositories/IStandingRepository.ts +++ b/core/racing/domain/repositories/StandingRepository.ts @@ -7,7 +7,7 @@ import type { Standing } from '../entities/Standing'; -export interface IStandingRepository { +export interface StandingRepository { /** * Find standings by league ID (sorted by position) */ diff --git a/core/racing/domain/repositories/ITeamMembershipRepository.ts b/core/racing/domain/repositories/TeamMembershipRepository.ts similarity index 96% rename from core/racing/domain/repositories/ITeamMembershipRepository.ts rename to core/racing/domain/repositories/TeamMembershipRepository.ts index d07007073..3193b1529 100644 --- a/core/racing/domain/repositories/ITeamMembershipRepository.ts +++ b/core/racing/domain/repositories/TeamMembershipRepository.ts @@ -10,7 +10,7 @@ import type { TeamJoinRequest, } from '../types/TeamMembership'; -export interface ITeamMembershipRepository { +export interface TeamMembershipRepository { /** * Get membership for a driver in a team, or null if none exists. */ diff --git a/core/racing/domain/repositories/ITeamRatingEventRepository.ts b/core/racing/domain/repositories/TeamRatingEventRepository.ts similarity index 97% rename from core/racing/domain/repositories/ITeamRatingEventRepository.ts rename to core/racing/domain/repositories/TeamRatingEventRepository.ts index 1f64779c8..7d1708374 100644 --- a/core/racing/domain/repositories/ITeamRatingEventRepository.ts +++ b/core/racing/domain/repositories/TeamRatingEventRepository.ts @@ -44,7 +44,7 @@ export interface PaginatedResult { nextOffset?: number; } -export interface ITeamRatingEventRepository { +export interface TeamRatingEventRepository { /** * Save a rating event to the ledger */ diff --git a/core/racing/domain/repositories/ITeamRatingRepository.ts b/core/racing/domain/repositories/TeamRatingRepository.ts similarity index 92% rename from core/racing/domain/repositories/ITeamRatingRepository.ts rename to core/racing/domain/repositories/TeamRatingRepository.ts index 032f766ab..f0668efed 100644 --- a/core/racing/domain/repositories/ITeamRatingRepository.ts +++ b/core/racing/domain/repositories/TeamRatingRepository.ts @@ -7,7 +7,7 @@ import type { TeamRatingSnapshot } from '../services/TeamRatingSnapshotCalculator'; -export interface ITeamRatingRepository { +export interface TeamRatingRepository { /** * Find rating snapshot by team ID */ diff --git a/core/racing/domain/repositories/ITeamRepository.ts b/core/racing/domain/repositories/TeamRepository.ts similarity index 95% rename from core/racing/domain/repositories/ITeamRepository.ts rename to core/racing/domain/repositories/TeamRepository.ts index e19fe70ca..0517ccefc 100644 --- a/core/racing/domain/repositories/ITeamRepository.ts +++ b/core/racing/domain/repositories/TeamRepository.ts @@ -7,7 +7,7 @@ import type { Team } from '../entities/Team'; -export interface ITeamRepository { +export interface TeamRepository { /** * Find a team by ID. */ diff --git a/core/racing/domain/repositories/ITeamStatsRepository.ts b/core/racing/domain/repositories/TeamStatsRepository.ts similarity index 95% rename from core/racing/domain/repositories/ITeamStatsRepository.ts rename to core/racing/domain/repositories/TeamStatsRepository.ts index cc5375401..eac8ad646 100644 --- a/core/racing/domain/repositories/ITeamStatsRepository.ts +++ b/core/racing/domain/repositories/TeamStatsRepository.ts @@ -16,7 +16,7 @@ export interface TeamStats { category?: string; } -export interface ITeamStatsRepository { +export interface TeamStatsRepository { /** * Get stats for a specific team */ diff --git a/core/racing/domain/repositories/ITrackRepository.ts b/core/racing/domain/repositories/TrackRepository.ts similarity index 96% rename from core/racing/domain/repositories/ITrackRepository.ts rename to core/racing/domain/repositories/TrackRepository.ts index 2691e5e20..45d1560eb 100644 --- a/core/racing/domain/repositories/ITrackRepository.ts +++ b/core/racing/domain/repositories/TrackRepository.ts @@ -7,7 +7,7 @@ import type { Track, TrackCategory } from '../entities/Track'; -export interface ITrackRepository { +export interface TrackRepository { /** * Find a track by ID */ diff --git a/core/racing/domain/repositories/ITransactionRepository.ts b/core/racing/domain/repositories/TransactionRepository.ts similarity index 93% rename from core/racing/domain/repositories/ITransactionRepository.ts rename to core/racing/domain/repositories/TransactionRepository.ts index 4a8020bca..3ae6e523a 100644 --- a/core/racing/domain/repositories/ITransactionRepository.ts +++ b/core/racing/domain/repositories/TransactionRepository.ts @@ -6,7 +6,7 @@ import type { Transaction, TransactionType } from '../entities/league-wallet/Transaction'; -export interface ITransactionRepository { +export interface TransactionRepository { findById(id: string): Promise; findByWalletId(walletId: string): Promise; findByType(type: TransactionType): Promise; diff --git a/core/racing/domain/services/DropScoreApplier.ts b/core/racing/domain/services/DropScoreApplier.ts index b40d33940..f3b9fdecf 100644 --- a/core/racing/domain/services/DropScoreApplier.ts +++ b/core/racing/domain/services/DropScoreApplier.ts @@ -1,5 +1,5 @@ import type { DropScorePolicy } from '../types/DropScorePolicy'; -import type { IDomainCalculationService } from '@core/shared/domain'; +import type { DomainCalculationService } from '@core/shared/domain'; export interface EventPointsEntry { eventId: string; @@ -17,7 +17,7 @@ export interface DropScoreInput { events: EventPointsEntry[]; } -export class DropScoreApplier implements IDomainCalculationService { +export class DropScoreApplier implements DomainCalculationService { calculate(input: DropScoreInput): DropScoreResult { return this.apply(input.policy, input.events); } diff --git a/core/racing/domain/services/EventScoringService.ts b/core/racing/domain/services/EventScoringService.ts index 6e95f9c7a..59db53bd8 100644 --- a/core/racing/domain/services/EventScoringService.ts +++ b/core/racing/domain/services/EventScoringService.ts @@ -7,7 +7,7 @@ import type { BonusRule } from '../types/BonusRule'; import type { ChampionshipType } from '../types/ChampionshipType'; import type { PointsTable } from '../value-objects/PointsTable'; -import type { IDomainCalculationService } from '@core/shared/domain'; +import type { DomainCalculationService } from '@core/shared/domain'; export interface ParticipantEventPoints { participant: ParticipantRef; @@ -33,7 +33,7 @@ function createDriverParticipant(driverId: string): ParticipantRef { } export class EventScoringService - implements IDomainCalculationService + implements DomainCalculationService { calculate(input: EventScoringInput): ParticipantEventPoints[] { return this.scoreSession(input); diff --git a/core/racing/domain/services/SeasonScheduleGenerator.ts b/core/racing/domain/services/SeasonScheduleGenerator.ts index 7280f832a..5a2836093 100644 --- a/core/racing/domain/services/SeasonScheduleGenerator.ts +++ b/core/racing/domain/services/SeasonScheduleGenerator.ts @@ -5,7 +5,7 @@ import type { RecurrenceStrategy } from '../value-objects/RecurrenceStrategy'; import { RaceTimeOfDay } from '../value-objects/RaceTimeOfDay'; import type { Weekday } from '../types/Weekday'; import { weekdayToIndex } from '../types/Weekday'; -import type { IDomainCalculationService } from '@core/shared/domain'; +import type { DomainCalculationService } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; function cloneDate(date: Date): Date { @@ -178,7 +178,7 @@ export class SeasonScheduleGenerator { } export class SeasonScheduleGeneratorService - implements IDomainCalculationService + implements DomainCalculationService { calculate(schedule: SeasonSchedule): ScheduledRaceSlot[] { return SeasonScheduleGenerator.generateSlots(schedule); diff --git a/core/racing/domain/services/SkillLevelService.ts b/core/racing/domain/services/SkillLevelService.ts index 3bca10af8..7643572e9 100644 --- a/core/racing/domain/services/SkillLevelService.ts +++ b/core/racing/domain/services/SkillLevelService.ts @@ -1,4 +1,4 @@ -import type { IDomainService } from '@core/shared/domain'; +import type { DomainService } from '@core/shared/domain'; export type SkillLevel = 'beginner' | 'intermediate' | 'advanced' | 'pro'; @@ -6,7 +6,7 @@ export type SkillLevel = 'beginner' | 'intermediate' | 'advanced' | 'pro'; * Domain service for determining skill level based on rating. * This encapsulates the business rule for skill tier classification. */ -export class SkillLevelService implements IDomainService { +export class SkillLevelService implements DomainService { readonly serviceName = 'SkillLevelService'; /** * Map driver rating to skill level band. diff --git a/core/racing/domain/services/StrengthOfFieldCalculator.ts b/core/racing/domain/services/StrengthOfFieldCalculator.ts index 09d141543..bcc2e2730 100644 --- a/core/racing/domain/services/StrengthOfFieldCalculator.ts +++ b/core/racing/domain/services/StrengthOfFieldCalculator.ts @@ -1,4 +1,4 @@ -import type { IDomainCalculationService } from '@core/shared/domain'; +import type { DomainCalculationService } from '@core/shared/domain'; /** * Domain Service: StrengthOfFieldCalculator diff --git a/core/racing/domain/value-objects/CarId.ts b/core/racing/domain/value-objects/CarId.ts index c64ca81ee..fc74e1662 100644 --- a/core/racing/domain/value-objects/CarId.ts +++ b/core/racing/domain/value-objects/CarId.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class CarId implements IValueObject { +export class CarId implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): CarId { diff --git a/core/racing/domain/value-objects/CountryCode.ts b/core/racing/domain/value-objects/CountryCode.ts index cc3f82b3d..7387d5b9a 100644 --- a/core/racing/domain/value-objects/CountryCode.ts +++ b/core/racing/domain/value-objects/CountryCode.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class CountryCode implements IValueObject { +export class CountryCode implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): CountryCode { diff --git a/core/racing/domain/value-objects/DecalOverride.ts b/core/racing/domain/value-objects/DecalOverride.ts index d03e47278..578ee92da 100644 --- a/core/racing/domain/value-objects/DecalOverride.ts +++ b/core/racing/domain/value-objects/DecalOverride.ts @@ -1,5 +1,5 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface DecalOverrideProps { leagueId: string; @@ -9,7 +9,7 @@ export interface DecalOverrideProps { newY: number; } -export class DecalOverride implements IValueObject { +export class DecalOverride implements ValueObject { readonly leagueId: string; readonly seasonId: string; readonly decalId: string; diff --git a/core/racing/domain/value-objects/DriverName.ts b/core/racing/domain/value-objects/DriverName.ts index 27597ceb7..a465df414 100644 --- a/core/racing/domain/value-objects/DriverName.ts +++ b/core/racing/domain/value-objects/DriverName.ts @@ -1,10 +1,10 @@ -import { IValueObject } from "../../../shared/domain/ValueObject"; +import { ValueObject } from "../../../shared/domain/ValueObject"; export interface DriverNameProps { value: string; } -export class DriverName implements IValueObject { +export class DriverName implements ValueObject { private static readonly MIN_LENGTH = 1; private static readonly MAX_LENGTH = 50; private static readonly VALID_CHARACTERS = /^[a-zA-Z0-9\s\-_]+$/; diff --git a/core/racing/domain/value-objects/GameConstraints.ts b/core/racing/domain/value-objects/GameConstraints.ts index a12022bed..d5d2f80a3 100644 --- a/core/racing/domain/value-objects/GameConstraints.ts +++ b/core/racing/domain/value-objects/GameConstraints.ts @@ -5,7 +5,7 @@ * Different sim racing games have different maximum grid sizes. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface GameConstraintsData { readonly maxDrivers: number; @@ -21,7 +21,7 @@ export interface GameConstraintsProps { constraints: GameConstraintsData; } -export class GameConstraints implements IValueObject { +export class GameConstraints implements ValueObject { readonly gameId: string; readonly constraints: GameConstraintsData; diff --git a/core/racing/domain/value-objects/ImageUrl.ts b/core/racing/domain/value-objects/ImageUrl.ts index b0f42ee34..a4ca11dc2 100644 --- a/core/racing/domain/value-objects/ImageUrl.ts +++ b/core/racing/domain/value-objects/ImageUrl.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class ImageUrl implements IValueObject { +export class ImageUrl implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): ImageUrl { diff --git a/core/racing/domain/value-objects/JoinedAt.ts b/core/racing/domain/value-objects/JoinedAt.ts index 503766108..cd9b93c7d 100644 --- a/core/racing/domain/value-objects/JoinedAt.ts +++ b/core/racing/domain/value-objects/JoinedAt.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class JoinedAt implements IValueObject { +export class JoinedAt implements ValueObject { private constructor(private readonly value: Date) {} static create(value: Date): JoinedAt { diff --git a/core/racing/domain/value-objects/LeagueDescription.ts b/core/racing/domain/value-objects/LeagueDescription.ts index 327e2a907..702d1987e 100644 --- a/core/racing/domain/value-objects/LeagueDescription.ts +++ b/core/racing/domain/value-objects/LeagueDescription.ts @@ -5,7 +5,7 @@ */ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface LeagueDescriptionValidationResult { valid: boolean; @@ -22,7 +22,7 @@ export interface LeagueDescriptionProps { value: string; } -export class LeagueDescription implements IValueObject { +export class LeagueDescription implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/racing/domain/value-objects/LeagueName.ts b/core/racing/domain/value-objects/LeagueName.ts index 10c5906a4..1b04bae15 100644 --- a/core/racing/domain/value-objects/LeagueName.ts +++ b/core/racing/domain/value-objects/LeagueName.ts @@ -5,7 +5,7 @@ */ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface LeagueNameValidationResult { valid: boolean; @@ -27,7 +27,7 @@ export interface LeagueNameProps { value: string; } -export class LeagueName implements IValueObject { +export class LeagueName implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/racing/domain/value-objects/LeagueTimezone.ts b/core/racing/domain/value-objects/LeagueTimezone.ts index 3d9637174..802ebf0ad 100644 --- a/core/racing/domain/value-objects/LeagueTimezone.ts +++ b/core/racing/domain/value-objects/LeagueTimezone.ts @@ -1,11 +1,11 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface LeagueTimezoneProps { id: string; } -export class LeagueTimezone implements IValueObject { +export class LeagueTimezone implements ValueObject { readonly id: string; private constructor(id: string) { diff --git a/core/racing/domain/value-objects/LeagueVisibility.ts b/core/racing/domain/value-objects/LeagueVisibility.ts index 41c40549f..c150a15b7 100644 --- a/core/racing/domain/value-objects/LeagueVisibility.ts +++ b/core/racing/domain/value-objects/LeagueVisibility.ts @@ -5,7 +5,7 @@ * This is a hardened version that enforces strict business rules. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export type LeagueVisibilityType = 'ranked' | 'unranked'; @@ -39,7 +39,7 @@ export interface LeagueVisibilityProps { type: LeagueVisibilityType; } -export class LeagueVisibility implements IValueObject { +export class LeagueVisibility implements ValueObject { readonly type: LeagueVisibilityType; readonly constraints: LeagueVisibilityConstraints; diff --git a/core/racing/domain/value-objects/LiveryDecal.ts b/core/racing/domain/value-objects/LiveryDecal.ts index 2614c194c..0f08997b5 100644 --- a/core/racing/domain/value-objects/LiveryDecal.ts +++ b/core/racing/domain/value-objects/LiveryDecal.ts @@ -4,7 +4,7 @@ */ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export type DecalType = 'sponsor' | 'user'; @@ -20,7 +20,7 @@ export interface LiveryDecalProps { type: DecalType; } -export class LiveryDecal implements IValueObject { +export class LiveryDecal implements ValueObject { readonly id: string; readonly imageUrl: string; readonly x: number; diff --git a/core/racing/domain/value-objects/MaxParticipants.ts b/core/racing/domain/value-objects/MaxParticipants.ts index 4631ec274..c8de8f115 100644 --- a/core/racing/domain/value-objects/MaxParticipants.ts +++ b/core/racing/domain/value-objects/MaxParticipants.ts @@ -5,14 +5,14 @@ * Enforces reasonable limits and constraints. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface MaxParticipantsProps { value: number; } -export class MaxParticipants implements IValueObject { +export class MaxParticipants implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/MembershipFee.ts b/core/racing/domain/value-objects/MembershipFee.ts index e881614e4..a44d8355c 100644 --- a/core/racing/domain/value-objects/MembershipFee.ts +++ b/core/racing/domain/value-objects/MembershipFee.ts @@ -6,7 +6,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; import type { Money } from './Money'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export type MembershipFeeType = 'season' | 'monthly' | 'per_race'; @@ -15,7 +15,7 @@ export interface MembershipFeeProps { amount: Money; } -export class MembershipFee implements IValueObject { +export class MembershipFee implements ValueObject { readonly type: MembershipFeeType; readonly amount: Money; diff --git a/core/racing/domain/value-objects/Money.ts b/core/racing/domain/value-objects/Money.ts index d17d41ebf..2cb2bade2 100644 --- a/core/racing/domain/value-objects/Money.ts +++ b/core/racing/domain/value-objects/Money.ts @@ -3,7 +3,7 @@ * Represents a monetary amount with currency and platform fee calculation */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export type Currency = 'USD' | 'EUR' | 'GBP'; @@ -16,7 +16,7 @@ export interface MoneyProps { currency: Currency; } -export class Money implements IValueObject { +export class Money implements ValueObject { static readonly DEFAULT_PLATFORM_FEE_PERCENTAGE = 0.10; readonly amount: number; diff --git a/core/racing/domain/value-objects/MonthlyRecurrencePattern.ts b/core/racing/domain/value-objects/MonthlyRecurrencePattern.ts index 7d9eb5d87..296478ffc 100644 --- a/core/racing/domain/value-objects/MonthlyRecurrencePattern.ts +++ b/core/racing/domain/value-objects/MonthlyRecurrencePattern.ts @@ -1,14 +1,14 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; import { ALL_WEEKDAYS } from '../types/Weekday'; import type { Weekday } from '../types/Weekday'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface MonthlyRecurrencePatternProps { ordinal: 1 | 2 | 3 | 4; weekday: Weekday; } -export class MonthlyRecurrencePattern implements IValueObject { +export class MonthlyRecurrencePattern implements ValueObject { readonly ordinal: 1 | 2 | 3 | 4; readonly weekday: Weekday; diff --git a/core/racing/domain/value-objects/ParticipantCount.ts b/core/racing/domain/value-objects/ParticipantCount.ts index d56ca1cd2..cbe224118 100644 --- a/core/racing/domain/value-objects/ParticipantCount.ts +++ b/core/racing/domain/value-objects/ParticipantCount.ts @@ -5,14 +5,14 @@ * Enforces constraints based on league visibility and other business rules. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface ParticipantCountProps { value: number; } -export class ParticipantCount implements IValueObject { +export class ParticipantCount implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/Points.ts b/core/racing/domain/value-objects/Points.ts index da93c7cab..d57aa7cd6 100644 --- a/core/racing/domain/value-objects/Points.ts +++ b/core/racing/domain/value-objects/Points.ts @@ -1,7 +1,7 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; -export class Points implements IValueObject<{ value: number }> { +export class Points implements ValueObject<{ value: number }> { private constructor(private readonly value: number) {} get props(): { value: number } { diff --git a/core/racing/domain/value-objects/PointsTable.ts b/core/racing/domain/value-objects/PointsTable.ts index b8b6f7624..15a1c3368 100644 --- a/core/racing/domain/value-objects/PointsTable.ts +++ b/core/racing/domain/value-objects/PointsTable.ts @@ -1,10 +1,10 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface PointsTableProps { pointsByPosition: ReadonlyMap; } -export class PointsTable implements IValueObject { +export class PointsTable implements ValueObject { private readonly pointsByPosition: ReadonlyMap; constructor(pointsByPosition: Record | Map) { diff --git a/core/racing/domain/value-objects/RaceIncidents.ts b/core/racing/domain/value-objects/RaceIncidents.ts index eaedb44ea..c2eaf8a43 100644 --- a/core/racing/domain/value-objects/RaceIncidents.ts +++ b/core/racing/domain/value-objects/RaceIncidents.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Incident types that can occur during a race @@ -30,7 +30,7 @@ export interface IncidentRecord { * Encapsulates all incidents that occurred during a driver's race. * Provides methods to calculate total penalty points and incident severity. */ -export class RaceIncidents implements IValueObject { +export class RaceIncidents implements ValueObject { private readonly incidents: IncidentRecord[]; constructor(incidents: IncidentRecord[] = []) { diff --git a/core/racing/domain/value-objects/RaceName.ts b/core/racing/domain/value-objects/RaceName.ts index f8eacfab5..180bfac6c 100644 --- a/core/racing/domain/value-objects/RaceName.ts +++ b/core/racing/domain/value-objects/RaceName.ts @@ -1,10 +1,10 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface RaceNameProps { value: string; } -export class RaceName implements IValueObject { +export class RaceName implements ValueObject { public readonly props: RaceNameProps; private constructor(value: string) { diff --git a/core/racing/domain/value-objects/RaceStatus.ts b/core/racing/domain/value-objects/RaceStatus.ts index ab392dc14..1e0061115 100644 --- a/core/racing/domain/value-objects/RaceStatus.ts +++ b/core/racing/domain/value-objects/RaceStatus.ts @@ -4,7 +4,7 @@ * Represents the status of a race with strict lifecycle rules. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export type RaceStatusValue = 'scheduled' | 'running' | 'completed' | 'cancelled'; @@ -13,7 +13,7 @@ export interface RaceStatusProps { value: RaceStatusValue; } -export class RaceStatus implements IValueObject { +export class RaceStatus implements ValueObject { readonly value: RaceStatusValue; private constructor(value: RaceStatusValue) { diff --git a/core/racing/domain/value-objects/RaceTimeOfDay.ts b/core/racing/domain/value-objects/RaceTimeOfDay.ts index dd1361969..00a080e0e 100644 --- a/core/racing/domain/value-objects/RaceTimeOfDay.ts +++ b/core/racing/domain/value-objects/RaceTimeOfDay.ts @@ -1,12 +1,12 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface RaceTimeOfDayProps { hour: number; minute: number; } -export class RaceTimeOfDay implements IValueObject { +export class RaceTimeOfDay implements ValueObject { readonly hour: number; readonly minute: number; diff --git a/core/racing/domain/value-objects/IRacingId.test.ts b/core/racing/domain/value-objects/RacingId.test.ts similarity index 95% rename from core/racing/domain/value-objects/IRacingId.test.ts rename to core/racing/domain/value-objects/RacingId.test.ts index 4b5429ba4..58998b998 100644 --- a/core/racing/domain/value-objects/IRacingId.test.ts +++ b/core/racing/domain/value-objects/RacingId.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import { IRacingId } from './IRacingId'; +import { RacingId } from './RacingId'; describe('IRacingId', () => { it('should create an iRacing id', () => { diff --git a/core/racing/domain/value-objects/IRacingId.ts b/core/racing/domain/value-objects/RacingId.ts similarity index 82% rename from core/racing/domain/value-objects/IRacingId.ts rename to core/racing/domain/value-objects/RacingId.ts index 0a6695266..b14d6a6dc 100644 --- a/core/racing/domain/value-objects/IRacingId.ts +++ b/core/racing/domain/value-objects/RacingId.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class IRacingId implements IValueObject { +export class IRacingId implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): IRacingId { diff --git a/core/racing/domain/value-objects/RecurrenceStrategy.ts b/core/racing/domain/value-objects/RecurrenceStrategy.ts index 10e035cb9..33186563a 100644 --- a/core/racing/domain/value-objects/RecurrenceStrategy.ts +++ b/core/racing/domain/value-objects/RecurrenceStrategy.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { WeekdaySet } from './WeekdaySet'; import { MonthlyRecurrencePattern } from './MonthlyRecurrencePattern'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; @@ -24,7 +24,7 @@ export type RecurrenceStrategyProps = | EveryNWeeksRecurrenceStrategyProps | MonthlyNthWeekdayRecurrenceStrategyProps; -export class RecurrenceStrategy implements IValueObject { +export class RecurrenceStrategy implements ValueObject { private constructor(private readonly strategy: RecurrenceStrategyProps) {} get props(): RecurrenceStrategyProps { diff --git a/core/racing/domain/value-objects/ScheduledRaceSlot.ts b/core/racing/domain/value-objects/ScheduledRaceSlot.ts index 6f3bbebfe..e1304d849 100644 --- a/core/racing/domain/value-objects/ScheduledRaceSlot.ts +++ b/core/racing/domain/value-objects/ScheduledRaceSlot.ts @@ -1,7 +1,7 @@ import { LeagueTimezone } from './LeagueTimezone'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface ScheduledRaceSlotProps { roundNumber: number; @@ -9,7 +9,7 @@ export interface ScheduledRaceSlotProps { timezone: LeagueTimezone; } -export class ScheduledRaceSlot implements IValueObject { +export class ScheduledRaceSlot implements ValueObject { readonly roundNumber: number; readonly scheduledAt: Date; readonly timezone: LeagueTimezone; diff --git a/core/racing/domain/value-objects/SeasonDropPolicy.ts b/core/racing/domain/value-objects/SeasonDropPolicy.ts index 1e59b6257..629946981 100644 --- a/core/racing/domain/value-objects/SeasonDropPolicy.ts +++ b/core/racing/domain/value-objects/SeasonDropPolicy.ts @@ -1,5 +1,5 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export type SeasonDropStrategy = 'none' | 'bestNResults' | 'dropWorstN'; @@ -13,7 +13,7 @@ export interface SeasonDropPolicyProps { n?: number; } -export class SeasonDropPolicy implements IValueObject { +export class SeasonDropPolicy implements ValueObject { readonly strategy: SeasonDropStrategy; readonly n?: number; diff --git a/core/racing/domain/value-objects/SeasonSchedule.ts b/core/racing/domain/value-objects/SeasonSchedule.ts index e40636d0b..52f16d51c 100644 --- a/core/racing/domain/value-objects/SeasonSchedule.ts +++ b/core/racing/domain/value-objects/SeasonSchedule.ts @@ -2,7 +2,7 @@ import { RaceTimeOfDay } from './RaceTimeOfDay'; import { LeagueTimezone } from './LeagueTimezone'; import type { RecurrenceStrategy } from './RecurrenceStrategy'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface SeasonScheduleProps { startDate: Date; @@ -12,7 +12,7 @@ export interface SeasonScheduleProps { plannedRounds: number; } -export class SeasonSchedule implements IValueObject { +export class SeasonSchedule implements ValueObject { readonly startDate: Date; readonly timeOfDay: RaceTimeOfDay; readonly timezone: LeagueTimezone; diff --git a/core/racing/domain/value-objects/SeasonScoringConfig.ts b/core/racing/domain/value-objects/SeasonScoringConfig.ts index b6950a080..c08eec739 100644 --- a/core/racing/domain/value-objects/SeasonScoringConfig.ts +++ b/core/racing/domain/value-objects/SeasonScoringConfig.ts @@ -1,5 +1,5 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Value Object: SeasonScoringConfig @@ -30,7 +30,7 @@ export interface SeasonScoringConfigProps { } export class SeasonScoringConfig - implements IValueObject + implements ValueObject { readonly scoringPresetId: string; readonly customScoringEnabled: boolean; diff --git a/core/racing/domain/value-objects/SeasonStatus.ts b/core/racing/domain/value-objects/SeasonStatus.ts index c430b3b2f..d3652d642 100644 --- a/core/racing/domain/value-objects/SeasonStatus.ts +++ b/core/racing/domain/value-objects/SeasonStatus.ts @@ -4,7 +4,7 @@ * Represents the status of a season with strict lifecycle rules. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export type SeasonStatusValue = 'planned' | 'active' | 'completed' | 'archived' | 'cancelled'; @@ -13,7 +13,7 @@ export interface SeasonStatusProps { value: SeasonStatusValue; } -export class SeasonStatus implements IValueObject { +export class SeasonStatus implements ValueObject { readonly value: SeasonStatusValue; private constructor(value: SeasonStatusValue) { diff --git a/core/racing/domain/value-objects/SeasonStewardingConfig.ts b/core/racing/domain/value-objects/SeasonStewardingConfig.ts index 59ea9fa66..c750ebd4e 100644 --- a/core/racing/domain/value-objects/SeasonStewardingConfig.ts +++ b/core/racing/domain/value-objects/SeasonStewardingConfig.ts @@ -1,5 +1,5 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import type { StewardingDecisionMode } from '../entities/League'; export interface SeasonStewardingConfigProps { @@ -21,7 +21,7 @@ export interface SeasonStewardingConfigProps { * Shape intentionally mirrors LeagueStewardingFormDTO used by the wizard. */ export class SeasonStewardingConfig - implements IValueObject + implements ValueObject { readonly decisionMode: StewardingDecisionMode; readonly requiredVotes?: number; diff --git a/core/racing/domain/value-objects/SessionDuration.ts b/core/racing/domain/value-objects/SessionDuration.ts index bf0681033..e20cad8f5 100644 --- a/core/racing/domain/value-objects/SessionDuration.ts +++ b/core/racing/domain/value-objects/SessionDuration.ts @@ -5,14 +5,14 @@ * Enforces reasonable limits for different session types. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface SessionDurationProps { value: number; } -export class SessionDuration implements IValueObject { +export class SessionDuration implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/SessionType.ts b/core/racing/domain/value-objects/SessionType.ts index 04bf6eaea..c894a3f12 100644 --- a/core/racing/domain/value-objects/SessionType.ts +++ b/core/racing/domain/value-objects/SessionType.ts @@ -1,5 +1,5 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Value Object: SessionType @@ -9,7 +9,7 @@ import type { IValueObject } from '@core/shared/domain'; */ export type SessionTypeValue = 'practice' | 'qualifying' | 'q1' | 'q2' | 'q3' | 'sprint' | 'main' | 'timeTrial'; -export class SessionType implements IValueObject { +export class SessionType implements ValueObject { readonly value: SessionTypeValue; constructor(value: SessionTypeValue) { diff --git a/core/racing/domain/value-objects/SponsorshipPricing.ts b/core/racing/domain/value-objects/SponsorshipPricing.ts index 6d381741e..841ca8f5a 100644 --- a/core/racing/domain/value-objects/SponsorshipPricing.ts +++ b/core/racing/domain/value-objects/SponsorshipPricing.ts @@ -6,7 +6,7 @@ */ import { Money } from './Money'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface SponsorshipSlotConfig { tier: 'main' | 'secondary'; @@ -23,7 +23,7 @@ export interface SponsorshipPricingProps { customRequirements?: string | undefined; } -export class SponsorshipPricing implements IValueObject { +export class SponsorshipPricing implements ValueObject { readonly mainSlot: SponsorshipSlotConfig | undefined; readonly secondarySlots: SponsorshipSlotConfig | undefined; readonly acceptingApplications: boolean; diff --git a/core/racing/domain/value-objects/StrengthOfField.ts b/core/racing/domain/value-objects/StrengthOfField.ts index 392575231..32a77ec3c 100644 --- a/core/racing/domain/value-objects/StrengthOfField.ts +++ b/core/racing/domain/value-objects/StrengthOfField.ts @@ -5,14 +5,14 @@ * Enforces valid range and provides domain-specific operations. */ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface StrengthOfFieldProps { value: number; } -export class StrengthOfField implements IValueObject { +export class StrengthOfField implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/TeamCreatedAt.ts b/core/racing/domain/value-objects/TeamCreatedAt.ts index bdab6f0ab..e719112d0 100644 --- a/core/racing/domain/value-objects/TeamCreatedAt.ts +++ b/core/racing/domain/value-objects/TeamCreatedAt.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TeamCreatedAt implements IValueObject { +export class TeamCreatedAt implements ValueObject { private constructor(private readonly value: Date) {} get props(): Date { diff --git a/core/racing/domain/value-objects/TeamDescription.ts b/core/racing/domain/value-objects/TeamDescription.ts index e0369d5b7..cd4874cb6 100644 --- a/core/racing/domain/value-objects/TeamDescription.ts +++ b/core/racing/domain/value-objects/TeamDescription.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TeamDescription implements IValueObject { +export class TeamDescription implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TeamDrivingReasonCode.test.ts b/core/racing/domain/value-objects/TeamDrivingReasonCode.test.ts index 43dc69221..19e13b593 100644 --- a/core/racing/domain/value-objects/TeamDrivingReasonCode.test.ts +++ b/core/racing/domain/value-objects/TeamDrivingReasonCode.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from 'vitest'; import { TeamDrivingReasonCode, TEAM_DRIVING_REASON_CODES } from './TeamDrivingReasonCode'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; @@ -35,8 +36,8 @@ describe('TeamDrivingReasonCode', () => { }); it('should throw error for null/undefined', () => { - expect(() => TeamDrivingReasonCode.create(null as any)).toThrow(RacingDomainValidationError); - expect(() => TeamDrivingReasonCode.create(undefined as any)).toThrow(RacingDomainValidationError); + expect(() => TeamDrivingReasonCode.create(null as unknown as string)).toThrow(RacingDomainValidationError); + expect(() => TeamDrivingReasonCode.create(undefined as unknown as string)).toThrow(RacingDomainValidationError); }); }); diff --git a/core/racing/domain/value-objects/TeamDrivingReasonCode.ts b/core/racing/domain/value-objects/TeamDrivingReasonCode.ts index 3725fbbeb..67599870f 100644 --- a/core/racing/domain/value-objects/TeamDrivingReasonCode.ts +++ b/core/racing/domain/value-objects/TeamDrivingReasonCode.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface TeamDrivingReasonCodeProps { @@ -30,7 +30,7 @@ export type TeamDrivingReasonCodeValue = (typeof TEAM_DRIVING_REASON_CODES)[numb /** * Value object representing a team driving reason code */ -export class TeamDrivingReasonCode implements IValueObject { +export class TeamDrivingReasonCode implements ValueObject { readonly value: TeamDrivingReasonCodeValue; private constructor(value: TeamDrivingReasonCodeValue) { diff --git a/core/racing/domain/value-objects/TeamName.ts b/core/racing/domain/value-objects/TeamName.ts index be43a80a4..3c029beae 100644 --- a/core/racing/domain/value-objects/TeamName.ts +++ b/core/racing/domain/value-objects/TeamName.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TeamName implements IValueObject { +export class TeamName implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TeamRating.ts b/core/racing/domain/value-objects/TeamRating.ts index 01ec684e4..c273e9dbc 100644 --- a/core/racing/domain/value-objects/TeamRating.ts +++ b/core/racing/domain/value-objects/TeamRating.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; /** * Value Object: TeamRating @@ -34,7 +34,7 @@ const DEFAULT_DIMENSION: TeamRatingDimension = { lastUpdated: new Date(), }; -export class TeamRating implements IValueObject { +export class TeamRating implements ValueObject { readonly props: TeamRatingProps; private constructor(props: TeamRatingProps) { diff --git a/core/racing/domain/value-objects/TeamRatingDelta.ts b/core/racing/domain/value-objects/TeamRatingDelta.ts index 8f12d3b69..46e2096e4 100644 --- a/core/racing/domain/value-objects/TeamRatingDelta.ts +++ b/core/racing/domain/value-objects/TeamRatingDelta.ts @@ -1,11 +1,11 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface TeamRatingDeltaProps { value: number; } -export class TeamRatingDelta implements IValueObject { +export class TeamRatingDelta implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/TeamRatingDimensionKey.ts b/core/racing/domain/value-objects/TeamRatingDimensionKey.ts index 293c4275c..0a5e9776d 100644 --- a/core/racing/domain/value-objects/TeamRatingDimensionKey.ts +++ b/core/racing/domain/value-objects/TeamRatingDimensionKey.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface TeamRatingDimensionKeyProps { @@ -7,7 +7,7 @@ export interface TeamRatingDimensionKeyProps { const VALID_DIMENSIONS = ['driving', 'adminTrust'] as const; -export class TeamRatingDimensionKey implements IValueObject { +export class TeamRatingDimensionKey implements ValueObject { readonly value: TeamRatingDimensionKeyProps['value']; private constructor(value: TeamRatingDimensionKeyProps['value']) { diff --git a/core/racing/domain/value-objects/TeamRatingEventId.ts b/core/racing/domain/value-objects/TeamRatingEventId.ts index e72efe4ba..e88ae14c3 100644 --- a/core/racing/domain/value-objects/TeamRatingEventId.ts +++ b/core/racing/domain/value-objects/TeamRatingEventId.ts @@ -1,4 +1,4 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; // Simple UUID v4 generator @@ -14,7 +14,7 @@ export interface TeamRatingEventIdProps { value: string; } -export class TeamRatingEventId implements IValueObject { +export class TeamRatingEventId implements ValueObject { readonly value: string; private constructor(value: string) { diff --git a/core/racing/domain/value-objects/TeamRatingValue.ts b/core/racing/domain/value-objects/TeamRatingValue.ts index b88a11926..9cde292fe 100644 --- a/core/racing/domain/value-objects/TeamRatingValue.ts +++ b/core/racing/domain/value-objects/TeamRatingValue.ts @@ -1,11 +1,11 @@ -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; export interface TeamRatingValueProps { value: number; } -export class TeamRatingValue implements IValueObject { +export class TeamRatingValue implements ValueObject { readonly value: number; private constructor(value: number) { diff --git a/core/racing/domain/value-objects/TeamTag.ts b/core/racing/domain/value-objects/TeamTag.ts index 4eda9e270..e56f5fc38 100644 --- a/core/racing/domain/value-objects/TeamTag.ts +++ b/core/racing/domain/value-objects/TeamTag.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TeamTag implements IValueObject { +export class TeamTag implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TrackCountry.ts b/core/racing/domain/value-objects/TrackCountry.ts index d7ea4398b..75839036b 100644 --- a/core/racing/domain/value-objects/TrackCountry.ts +++ b/core/racing/domain/value-objects/TrackCountry.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackCountry implements IValueObject { +export class TrackCountry implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TrackGameId.ts b/core/racing/domain/value-objects/TrackGameId.ts index a3f9296cd..d28dc1dc4 100644 --- a/core/racing/domain/value-objects/TrackGameId.ts +++ b/core/racing/domain/value-objects/TrackGameId.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackGameId implements IValueObject { +export class TrackGameId implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TrackImageUrl.ts b/core/racing/domain/value-objects/TrackImageUrl.ts index 16283169c..2f6ed73f2 100644 --- a/core/racing/domain/value-objects/TrackImageUrl.ts +++ b/core/racing/domain/value-objects/TrackImageUrl.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackImageUrl implements IValueObject { +export class TrackImageUrl implements ValueObject { private constructor(private readonly value: string | undefined) {} get props(): string | undefined { diff --git a/core/racing/domain/value-objects/TrackLength.ts b/core/racing/domain/value-objects/TrackLength.ts index 37c508aad..05500b13b 100644 --- a/core/racing/domain/value-objects/TrackLength.ts +++ b/core/racing/domain/value-objects/TrackLength.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackLength implements IValueObject { +export class TrackLength implements ValueObject { private constructor(private readonly value: number) {} get props(): number { diff --git a/core/racing/domain/value-objects/TrackShortName.ts b/core/racing/domain/value-objects/TrackShortName.ts index 33a1db930..393d85ca0 100644 --- a/core/racing/domain/value-objects/TrackShortName.ts +++ b/core/racing/domain/value-objects/TrackShortName.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackShortName implements IValueObject { +export class TrackShortName implements ValueObject { private constructor(private readonly value: string) {} get props(): string { diff --git a/core/racing/domain/value-objects/TrackTurns.ts b/core/racing/domain/value-objects/TrackTurns.ts index ba9f1f928..fba8595eb 100644 --- a/core/racing/domain/value-objects/TrackTurns.ts +++ b/core/racing/domain/value-objects/TrackTurns.ts @@ -1,7 +1,7 @@ import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; -export class TrackTurns implements IValueObject { +export class TrackTurns implements ValueObject { private constructor(private readonly value: number) {} get props(): number { diff --git a/core/racing/domain/value-objects/WeekdaySet.ts b/core/racing/domain/value-objects/WeekdaySet.ts index 3b0cee05c..4899788d1 100644 --- a/core/racing/domain/value-objects/WeekdaySet.ts +++ b/core/racing/domain/value-objects/WeekdaySet.ts @@ -1,13 +1,13 @@ import type { Weekday } from '../types/Weekday'; import { weekdayToIndex } from '../types/Weekday'; import { RacingDomainValidationError } from '../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface WeekdaySetProps { days: Weekday[]; } -export class WeekdaySet implements IValueObject { +export class WeekdaySet implements ValueObject { private readonly days: Weekday[]; static fromArray(days: Weekday[]): WeekdaySet { diff --git a/core/racing/domain/value-objects/driver/DriverBio.ts b/core/racing/domain/value-objects/driver/DriverBio.ts index 1b231ea99..e3a8d5be9 100644 --- a/core/racing/domain/value-objects/driver/DriverBio.ts +++ b/core/racing/domain/value-objects/driver/DriverBio.ts @@ -1,11 +1,11 @@ import { RacingDomainValidationError } from '../../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface DriverBioProps { value: string; } -export class DriverBio implements IValueObject { +export class DriverBio implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): DriverBio { diff --git a/core/racing/domain/value-objects/driver/DriverId.ts b/core/racing/domain/value-objects/driver/DriverId.ts index 558c42f31..5d058b7fd 100644 --- a/core/racing/domain/value-objects/driver/DriverId.ts +++ b/core/racing/domain/value-objects/driver/DriverId.ts @@ -1,11 +1,11 @@ import { RacingDomainValidationError } from '../../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface DriverIdProps { value: string; } -export class DriverId implements IValueObject { +export class DriverId implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): DriverId { diff --git a/core/racing/domain/value-objects/driver/DriverName.ts b/core/racing/domain/value-objects/driver/DriverName.ts index 584e4bfc4..170c5fac4 100644 --- a/core/racing/domain/value-objects/driver/DriverName.ts +++ b/core/racing/domain/value-objects/driver/DriverName.ts @@ -1,11 +1,11 @@ import { RacingDomainValidationError } from '../../errors/RacingDomainError'; -import type { IValueObject } from '@core/shared/domain'; +import type { ValueObject } from '@core/shared/domain'; export interface DriverNameProps { value: string; } -export class DriverName implements IValueObject { +export class DriverName implements ValueObject { private constructor(private readonly value: string) {} static create(value: string): DriverName { diff --git a/core/racing/index.ts b/core/racing/index.ts deleted file mode 100644 index 042aa2c77..000000000 --- a/core/racing/index.ts +++ /dev/null @@ -1,48 +0,0 @@ -export * from './domain/entities/Driver'; -export * from './domain/entities/League'; -export * from './domain/entities/Race'; -export * from './domain/entities/result/Result'; -export * from './domain/entities/Standing'; -export * from './domain/entities/LeagueMembership'; -export * from './domain/entities/RaceRegistration'; -export * from './domain/entities/Team'; -export * from './domain/entities/Track'; -export * from './domain/entities/Car'; -export * from './domain/entities/Protest'; -export * from './domain/entities/penalty/Penalty'; - -export * from './domain/repositories/IDriverRepository'; -export * from './domain/repositories/ILeagueRepository'; -export * from './domain/repositories/IRaceRepository'; -export * from './domain/repositories/IResultRepository'; -export * from './domain/repositories/IStandingRepository'; -export * from './domain/repositories/ILeagueMembershipRepository'; -export * from './domain/repositories/IRaceRegistrationRepository'; -export * from './domain/repositories/ITeamRepository'; -export * from './domain/repositories/ITeamMembershipRepository'; -export * from './domain/repositories/ITrackRepository'; -export * from './domain/repositories/ICarRepository'; -export * from './domain/repositories/IProtestRepository'; -export * from './domain/repositories/IPenaltyRepository'; - -export * from './domain/services/StrengthOfFieldCalculator'; - -export * from './domain/value-objects/Money'; -export * from './domain/value-objects/SponsorshipPricing'; - -export * from './domain/entities/sponsor/Sponsor'; -export * from './domain/entities/season'; -export * from './domain/entities/SponsorshipRequest'; -export * from './domain/repositories/ISponsorRepository'; -export * from './domain/repositories/ISeasonSponsorshipRepository'; -export * from './domain/repositories/ISponsorshipRequestRepository'; -export * from './domain/repositories/ISponsorshipPricingRepository'; - -export * from './application/use-cases/CreateSponsorUseCase'; -export * from './application/use-cases/GetSponsorDashboardUseCase'; -export * from './application/use-cases/GetSponsorSponsorshipsUseCase'; -export * from './application/use-cases/ApplyForSponsorshipUseCase'; -export * from './application/use-cases/AcceptSponsorshipRequestUseCase'; -export * from './application/use-cases/RejectSponsorshipRequestUseCase'; -export * from './application/use-cases/GetPendingSponsorshipRequestsUseCase'; -export * from './application/use-cases/GetEntitySponsorshipPricingUseCase'; diff --git a/core/shared/application/AsyncUseCase.ts b/core/shared/application/AsyncUseCase.ts index a20dbe023..b17aa9d04 100644 --- a/core/shared/application/AsyncUseCase.ts +++ b/core/shared/application/AsyncUseCase.ts @@ -1,4 +1,4 @@ -import type { Result } from './Result'; +import type { Result } from '../domain/Result'; import type { ApplicationErrorCode } from '../errors/ApplicationErrorCode'; /** diff --git a/core/shared/application/Service.ts b/core/shared/application/Service.ts index fb9f85fa8..c6dbf878b 100644 --- a/core/shared/application/Service.ts +++ b/core/shared/application/Service.ts @@ -1,18 +1,18 @@ -import type { Result } from './Result'; +import type { Result } from '../domain/Result'; import type { ApplicationError } from '../errors/ApplicationError'; -export interface IApplicationService { +export interface ApplicationService { readonly serviceName?: string; } -export interface IAsyncApplicationService extends IApplicationService { +export interface AsyncApplicationService extends ApplicationService { execute(input: Input): Promise; } -export interface IAsyncResultApplicationService< +export interface AsyncResultApplicationService< Input, Output, Error = ApplicationError -> extends IApplicationService { +> extends ApplicationService { execute(input: Input): Promise>; -} \ No newline at end of file +} diff --git a/core/shared/application/UseCase.ts b/core/shared/application/UseCase.ts index 3c6dd7652..44f207fb9 100644 --- a/core/shared/application/UseCase.ts +++ b/core/shared/application/UseCase.ts @@ -1,4 +1,4 @@ -import type { Result } from './Result'; +import type { Result } from '../domain/Result'; import type { ApplicationErrorCode } from '../errors/ApplicationErrorCode'; /** diff --git a/core/shared/application/index.ts b/core/shared/application/index.ts deleted file mode 100644 index 411876e83..000000000 --- a/core/shared/application/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './UseCase'; -export * from './AsyncUseCase'; -export * from './Service'; -export * from './Logger'; -export * from './UseCaseOutputPort'; -export * from './ErrorReporter'; -export * from './Result'; \ No newline at end of file diff --git a/core/shared/domain/DomainEvent.ts b/core/shared/domain/DomainEvent.ts index 2fbbb1f63..c587c119d 100644 --- a/core/shared/domain/DomainEvent.ts +++ b/core/shared/domain/DomainEvent.ts @@ -10,4 +10,4 @@ export interface DomainEventPublisher { } // Alias for backward compatibility -export interface IDomainEvent extends DomainEvent {} \ No newline at end of file +export type IDomainEvent = DomainEvent; diff --git a/core/shared/domain/Entity.ts b/core/shared/domain/Entity.ts index 7ee8271a3..d80ec3ca1 100644 --- a/core/shared/domain/Entity.ts +++ b/core/shared/domain/Entity.ts @@ -1,11 +1,14 @@ -export interface IEntity { +export interface EntityProps { readonly id: Id; } -export abstract class Entity implements IEntity { +export abstract class Entity implements EntityProps { protected constructor(readonly id: Id) {} equals(other?: Entity): boolean { return !!other && this.id === other.id; } -} \ No newline at end of file +} + +// Alias for backward compatibility +export type IEntity = EntityProps; diff --git a/core/shared/application/Logger.ts b/core/shared/domain/Logger.ts similarity index 100% rename from core/shared/application/Logger.ts rename to core/shared/domain/Logger.ts diff --git a/core/shared/application/Result.ts b/core/shared/domain/Result.ts similarity index 99% rename from core/shared/application/Result.ts rename to core/shared/domain/Result.ts index 553d6318b..029a3f5f3 100644 --- a/core/shared/application/Result.ts +++ b/core/shared/domain/Result.ts @@ -10,7 +10,7 @@ * @template E - The type of the error value, typically ApplicationErrorCode */ export class Result { - private constructor( + public constructor( private readonly _value?: T, private readonly _error?: E, private readonly _isSuccess: boolean = true diff --git a/core/shared/domain/Service.ts b/core/shared/domain/Service.ts index f2159794b..e261c48e7 100644 --- a/core/shared/domain/Service.ts +++ b/core/shared/domain/Service.ts @@ -1,24 +1,31 @@ -import type { Result } from '../application/Result'; -import type { IDomainError } from '../errors/DomainError'; +import { Result } from './Result'; +import type { DomainErrorProps } from '../errors/DomainError'; -export interface IDomainService { +export interface DomainService { readonly serviceName?: string; } -export interface IDomainCalculationService extends IDomainService { +export interface DomainCalculationService extends DomainService { calculate(input: Input): Output; } -export interface IResultDomainCalculationService - extends IDomainService { +export interface ResultDomainCalculationService + extends DomainService { calculate(input: Input): Result; } -export interface IDomainValidationService - extends IDomainService { +export interface DomainValidationService + extends DomainService { validate(input: Input): Result; } -export interface IDomainFactoryService extends IDomainService { +export interface DomainFactoryService extends DomainService { create(input: Input): Output; -} \ No newline at end of file +} + +// Alias for backward compatibility +export type IDomainService = DomainService; +export type IDomainCalculationService = DomainCalculationService; +export type IResultDomainCalculationService = ResultDomainCalculationService; +export type IDomainValidationService = DomainValidationService; +export type IDomainFactoryService = DomainFactoryService; diff --git a/core/shared/domain/ValueObject.ts b/core/shared/domain/ValueObject.ts index 2ba8cd952..f9825696a 100644 --- a/core/shared/domain/ValueObject.ts +++ b/core/shared/domain/ValueObject.ts @@ -1,4 +1,7 @@ -export interface IValueObject { +export interface ValueObjectProps { readonly props: Props; - equals(other: IValueObject): boolean; -} \ No newline at end of file + equals(other: ValueObjectProps): boolean; +} + +// Alias for backward compatibility +export type IValueObject = ValueObjectProps; diff --git a/core/shared/domain/index.ts b/core/shared/domain/index.ts deleted file mode 100644 index 81d727a18..000000000 --- a/core/shared/domain/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './Entity'; -export * from './ValueObject'; -export * from './Service'; -export * from './Option'; -export * from './DomainEvent'; \ No newline at end of file diff --git a/core/shared/errors/DomainError.ts b/core/shared/errors/DomainError.ts index 899412b7c..1fe09731b 100644 --- a/core/shared/errors/DomainError.ts +++ b/core/shared/errors/DomainError.ts @@ -1,7 +1,10 @@ export type CommonDomainErrorKind = 'validation' | 'invariant' | string; -export interface IDomainError extends Error { +export interface DomainErrorProps extends Error { readonly type: 'domain'; readonly context: string; readonly kind: K; -} \ No newline at end of file +} + +// Alias for backward compatibility +export type IDomainError = DomainErrorProps; diff --git a/core/shared/errors/index.ts b/core/shared/errors/index.ts deleted file mode 100644 index 66696df61..000000000 --- a/core/shared/errors/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './DomainError'; -export * from './ApplicationError'; -export * from './ApplicationErrorCode'; \ No newline at end of file diff --git a/core/shared/index.ts b/core/shared/index.ts deleted file mode 100644 index 6d2e46952..000000000 --- a/core/shared/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './application/Result'; -export * as application from './application'; -export * as domain from './domain'; -export * as errors from './errors'; -export * from './application/AsyncUseCase'; \ No newline at end of file diff --git a/core/social/application/use-cases/GetCurrentUserSocialUseCase.test.ts b/core/social/application/use-cases/GetCurrentUserSocialUseCase.test.ts index 14cf0b8dc..4c07d1603 100644 --- a/core/social/application/use-cases/GetCurrentUserSocialUseCase.test.ts +++ b/core/social/application/use-cases/GetCurrentUserSocialUseCase.test.ts @@ -3,9 +3,8 @@ import { GetCurrentUserSocialUseCase, type GetCurrentUserSocialApplicationError, type GetCurrentUserSocialInput, - type GetCurrentUserSocialResult, } from './GetCurrentUserSocialUseCase'; -import type { ISocialGraphRepository } from '../../domain/repositories/ISocialGraphRepository'; +import type { SocialGraphRepository } from '../../domain/repositories/SocialGraphRepository'; import type { Logger } from '@core/shared/application'; import { Driver } from '@core/racing/domain/entities/Driver'; diff --git a/core/social/application/use-cases/GetCurrentUserSocialUseCase.ts b/core/social/application/use-cases/GetCurrentUserSocialUseCase.ts index fa400d214..7af629764 100644 --- a/core/social/application/use-cases/GetCurrentUserSocialUseCase.ts +++ b/core/social/application/use-cases/GetCurrentUserSocialUseCase.ts @@ -1,7 +1,7 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { ISocialGraphRepository } from '../../domain/repositories/ISocialGraphRepository'; +import type { SocialGraphRepository } from '../../domain/repositories/SocialGraphRepository'; import type { SocialFriendSummary, SocialUserSummary } from '../types/SocialUser'; export interface GetCurrentUserSocialParams { diff --git a/core/social/application/use-cases/GetUserFeedUseCase.test.ts b/core/social/application/use-cases/GetUserFeedUseCase.test.ts index ccd0e8804..00797c8db 100644 --- a/core/social/application/use-cases/GetUserFeedUseCase.test.ts +++ b/core/social/application/use-cases/GetUserFeedUseCase.test.ts @@ -3,9 +3,8 @@ import { GetUserFeedUseCase, type GetUserFeedApplicationError, type GetUserFeedInput, - type GetUserFeedResult, } from './GetUserFeedUseCase'; -import type { IFeedRepository } from '../../domain/repositories/IFeedRepository'; +import type { FeedRepository } from '../../domain/repositories/FeedRepository'; import type { FeedItem } from '../../domain/types/FeedItem'; import type { Logger } from '@core/shared/application'; diff --git a/core/social/application/use-cases/GetUserFeedUseCase.ts b/core/social/application/use-cases/GetUserFeedUseCase.ts index 49cb22163..3d20c54b9 100644 --- a/core/social/application/use-cases/GetUserFeedUseCase.ts +++ b/core/social/application/use-cases/GetUserFeedUseCase.ts @@ -1,7 +1,7 @@ import type { Logger } from '@core/shared/application'; -import { Result } from '@core/shared/application/Result'; +import { Result } from '@core/shared/domain/Result'; import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode'; -import type { IFeedRepository } from '../../domain/repositories/IFeedRepository'; +import type { FeedRepository } from '../../domain/repositories/FeedRepository'; import type { FeedItem } from '../../domain/types/FeedItem'; export interface GetUserFeedParams { diff --git a/core/social/domain/errors/SocialDomainError.ts b/core/social/domain/errors/SocialDomainError.ts index 48e2dc9cd..1878a999d 100644 --- a/core/social/domain/errors/SocialDomainError.ts +++ b/core/social/domain/errors/SocialDomainError.ts @@ -1,11 +1,11 @@ -import type { IDomainError, CommonDomainErrorKind } from '@core/shared/errors'; +import type { DomainError, CommonDomainErrorKind } from '@core/shared/errors'; /** * Domain Error: SocialDomainError * * Implements the shared IDomainError contract for social domain failures. */ -export class SocialDomainError extends Error implements IDomainError { +export class SocialDomainError extends Error implements DomainError { readonly name = 'SocialDomainError'; readonly type = 'domain' as const; readonly context = 'social'; diff --git a/core/social/domain/repositories/IFeedRepository.ts b/core/social/domain/repositories/FeedRepository.ts similarity index 60% rename from core/social/domain/repositories/IFeedRepository.ts rename to core/social/domain/repositories/FeedRepository.ts index 8f222a3b7..d5cb3aa51 100644 --- a/core/social/domain/repositories/IFeedRepository.ts +++ b/core/social/domain/repositories/FeedRepository.ts @@ -1,6 +1,9 @@ import type { FeedItem } from '../types/FeedItem'; -export interface IFeedRepository { +export interface FeedRepository { getFeedForDriver(driverId: string, limit?: number): Promise; getGlobalFeed(limit?: number): Promise; -} \ No newline at end of file +} + +// Alias for backward compatibility +export type IFeedRepository = FeedRepository; diff --git a/core/social/domain/repositories/ISocialGraphRepository.ts b/core/social/domain/repositories/SocialGraphRepository.ts similarity index 63% rename from core/social/domain/repositories/ISocialGraphRepository.ts rename to core/social/domain/repositories/SocialGraphRepository.ts index 8ae9d447e..8024c603e 100644 --- a/core/social/domain/repositories/ISocialGraphRepository.ts +++ b/core/social/domain/repositories/SocialGraphRepository.ts @@ -1,7 +1,10 @@ import type { Driver } from '@core/racing/domain/entities/Driver'; -export interface ISocialGraphRepository { +export interface SocialGraphRepository { getFriends(driverId: string): Promise; getFriendIds(driverId: string): Promise; getSuggestedFriends(driverId: string, limit?: number): Promise; -} \ No newline at end of file +} + +// Alias for backward compatibility +export type ISocialGraphRepository = SocialGraphRepository;