fix seeds

This commit is contained in:
2025-12-27 01:25:56 +01:00
parent b68405aa46
commit 9a74e16f11
23 changed files with 405 additions and 564 deletions

View File

@@ -1,5 +1,6 @@
import { Provider } from '@nestjs/common';
import { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
import type { RacingSeedDependencies } from '../../../../../adapters/bootstrap/SeedRacingData';
import { SignupWithEmailUseCase, type SignupWithEmailResult } from '@core/identity/application/use-cases/SignupWithEmailUseCase';
import {
CreateAchievementUseCase,
@@ -21,6 +22,9 @@ export const IDENTITY_SESSION_PORT_TOKEN = 'IdentitySessionPort_Bootstrap';
export const SIGNUP_USE_CASE_TOKEN = 'SignupWithEmailUseCase_Bootstrap';
export const CREATE_ACHIEVEMENT_USE_CASE_TOKEN = 'CreateAchievementUseCase_Bootstrap';
export const RACING_SEED_DEPENDENCIES_TOKEN = 'RacingSeedDependencies';
export const ENSURE_INITIAL_DATA_TOKEN = 'EnsureInitialData_Bootstrap';
// Adapter classes for output ports
class SignupWithEmailOutputAdapter implements UseCaseOutputPort<SignupWithEmailResult> {
present(result: SignupWithEmailResult): void {
@@ -37,6 +41,47 @@ class CreateAchievementOutputAdapter implements UseCaseOutputPort<CreateAchievem
}
export const BootstrapProviders: Provider[] = [
{
provide: RACING_SEED_DEPENDENCIES_TOKEN,
useFactory: (
driverRepository: RacingSeedDependencies['driverRepository'],
leagueRepository: RacingSeedDependencies['leagueRepository'],
raceRepository: RacingSeedDependencies['raceRepository'],
resultRepository: RacingSeedDependencies['resultRepository'],
standingRepository: RacingSeedDependencies['standingRepository'],
leagueMembershipRepository: RacingSeedDependencies['leagueMembershipRepository'],
raceRegistrationRepository: RacingSeedDependencies['raceRegistrationRepository'],
teamRepository: RacingSeedDependencies['teamRepository'],
teamMembershipRepository: RacingSeedDependencies['teamMembershipRepository'],
feedRepository: RacingSeedDependencies['feedRepository'],
socialGraphRepository: RacingSeedDependencies['socialGraphRepository'],
): RacingSeedDependencies => ({
driverRepository,
leagueRepository,
raceRepository,
resultRepository,
standingRepository,
leagueMembershipRepository,
raceRegistrationRepository,
teamRepository,
teamMembershipRepository,
feedRepository,
socialGraphRepository,
}),
inject: [
'IDriverRepository',
'ILeagueRepository',
'IRaceRepository',
'IResultRepository',
'IStandingRepository',
'ILeagueMembershipRepository',
'IRaceRegistrationRepository',
'ITeamRepository',
'ITeamMembershipRepository',
'IFeedRepository',
'ISocialGraphRepository',
],
},
{
provide: USER_REPOSITORY_TOKEN,
useFactory: (logger: Logger) => new InMemoryUserRepository(logger),
@@ -82,7 +127,7 @@ export const BootstrapProviders: Provider[] = [
inject: [ACHIEVEMENT_REPOSITORY_TOKEN, 'Logger'],
},
{
provide: EnsureInitialData,
provide: ENSURE_INITIAL_DATA_TOKEN,
useFactory: (
signupUseCase: SignupWithEmailUseCase,
createAchievementUseCase: CreateAchievementUseCase,
@@ -90,10 +135,6 @@ export const BootstrapProviders: Provider[] = [
) => {
return new EnsureInitialData(signupUseCase, createAchievementUseCase, logger);
},
inject: [
SIGNUP_USE_CASE_TOKEN,
CREATE_ACHIEVEMENT_USE_CASE_TOKEN,
'Logger',
],
inject: [SIGNUP_USE_CASE_TOKEN, CREATE_ACHIEVEMENT_USE_CASE_TOKEN, 'Logger'],
},
];