/** * Dependency Injection tokens for TSyringe container (Website) */ export const DI_TOKENS = { // Repositories DriverRepository: Symbol.for('IDriverRepository'), LeagueRepository: Symbol.for('ILeagueRepository'), RaceRepository: Symbol.for('IRaceRepository'), ResultRepository: Symbol.for('IResultRepository'), StandingRepository: Symbol.for('IStandingRepository'), PenaltyRepository: Symbol.for('IPenaltyRepository'), ProtestRepository: Symbol.for('IProtestRepository'), TeamRepository: Symbol.for('ITeamRepository'), TeamMembershipRepository: Symbol.for('ITeamMembershipRepository'), RaceRegistrationRepository: Symbol.for('IRaceRegistrationRepository'), LeagueMembershipRepository: Symbol.for('ILeagueMembershipRepository'), GameRepository: Symbol.for('IGameRepository'), SeasonRepository: Symbol.for('ISeasonRepository'), LeagueScoringConfigRepository: Symbol.for('ILeagueScoringConfigRepository'), TrackRepository: Symbol.for('ITrackRepository'), CarRepository: Symbol.for('ICarRepository'), FeedRepository: Symbol.for('IFeedRepository'), SocialRepository: Symbol.for('ISocialGraphRepository'), NotificationRepository: Symbol.for('INotificationRepository'), NotificationPreferenceRepository: Symbol.for('INotificationPreferenceRepository'), SponsorRepository: Symbol.for('ISponsorRepository'), SeasonSponsorshipRepository: Symbol.for('ISeasonSponsorshipRepository'), SponsorshipRequestRepository: Symbol.for('ISponsorshipRequestRepository'), SponsorshipPricingRepository: Symbol.for('ISponsorshipPricingRepository'), // Providers LeagueScoringPresetProvider: Symbol.for('LeagueScoringPresetProvider'), DriverRatingProvider: Symbol.for('DriverRatingProvider'), // Services ImageService: Symbol.for('ImageServicePort'), NotificationGatewayRegistry: Symbol.for('NotificationGatewayRegistry'), // Use Cases - Racing JoinLeagueUseCase: Symbol.for('JoinLeagueUseCase'), RegisterForRaceUseCase: Symbol.for('RegisterForRaceUseCase'), WithdrawFromRaceUseCase: Symbol.for('WithdrawFromRaceUseCase'), CreateLeagueWithSeasonAndScoringUseCase: Symbol.for('CreateLeagueWithSeasonAndScoringUseCase'), TransferLeagueOwnershipUseCase: Symbol.for('TransferLeagueOwnershipUseCase'), CancelRaceUseCase: Symbol.for('CancelRaceUseCase'), ImportRaceResultsUseCase: Symbol.for('ImportRaceResultsUseCase'), // Queries - Dashboard GetDashboardOverviewUseCase: Symbol.for('GetDashboardOverviewUseCase'), GetProfileOverviewUseCase: Symbol.for('GetProfileOverviewUseCase'), // Use Cases - Teams CreateTeamUseCase: Symbol.for('CreateTeamUseCase'), JoinTeamUseCase: Symbol.for('JoinTeamUseCase'), LeaveTeamUseCase: Symbol.for('LeaveTeamUseCase'), ApproveTeamJoinRequestUseCase: Symbol.for('ApproveTeamJoinRequestUseCase'), RejectTeamJoinRequestUseCase: Symbol.for('RejectTeamJoinRequestUseCase'), UpdateTeamUseCase: Symbol.for('UpdateTeamUseCase'), // Use Cases - Stewarding FileProtestUseCase: Symbol.for('FileProtestUseCase'), ReviewProtestUseCase: Symbol.for('ReviewProtestUseCase'), ApplyPenaltyUseCase: Symbol.for('ApplyPenaltyUseCase'), RequestProtestDefenseUseCase: Symbol.for('RequestProtestDefenseUseCase'), SubmitProtestDefenseUseCase: Symbol.for('SubmitProtestDefenseUseCase'), // Use Cases - Notifications SendNotificationUseCase: Symbol.for('SendNotificationUseCase'), MarkNotificationReadUseCase: Symbol.for('MarkNotificationReadUseCase'), // Queries - Racing IsDriverRegisteredForRaceUseCase: Symbol.for('IsDriverRegisteredForRaceUseCase'), GetRaceRegistrationsUseCase: Symbol.for('GetRaceRegistrationsUseCase'), GetLeagueStandingsUseCase: Symbol.for('GetLeagueStandingsUseCase'), GetLeagueDriverSeasonStatsUseCase: Symbol.for('GetLeagueDriverSeasonStatsUseCase'), GetAllLeaguesWithCapacityUseCase: Symbol.for('GetAllLeaguesWithCapacityUseCase'), GetAllLeaguesWithCapacityAndScoringUseCase: Symbol.for('GetAllLeaguesWithCapacityAndScoringUseCase'), ListLeagueScoringPresetsUseCase: Symbol.for('ListLeagueScoringPresetsUseCase'), GetLeagueScoringConfigUseCase: Symbol.for('GetLeagueScoringConfigUseCase'), GetLeagueFullConfigUseCase: Symbol.for('GetLeagueFullConfigUseCase'), PreviewLeagueScheduleUseCase: Symbol.for('PreviewLeagueScheduleUseCase'), GetRaceWithSOFUseCase: Symbol.for('GetRaceWithSOFUseCase'), GetLeagueStatsUseCase: Symbol.for('GetLeagueStatsUseCase'), ListSeasonsForLeagueUseCase: Symbol.for('ListSeasonsForLeagueUseCase'), GetRacesPageDataUseCase: Symbol.for('GetRacesPageDataUseCase'), GetAllRacesPageDataUseCase: Symbol.for('GetAllRacesPageDataUseCase'), GetRaceDetailUseCase: Symbol.for('GetRaceDetailUseCase'), GetRaceResultsDetailUseCase: Symbol.for('GetRaceResultsDetailUseCase'), GetDriversLeaderboardUseCase: Symbol.for('GetDriversLeaderboardUseCase'), GetTeamsLeaderboardUseCase: Symbol.for('GetTeamsLeaderboardUseCase'), // Use Cases - Teams (Query-like) GetAllTeamsUseCase: Symbol.for('GetAllTeamsUseCase'), GetTeamDetailsUseCase: Symbol.for('GetTeamDetailsUseCase'), GetTeamMembersUseCase: Symbol.for('GetTeamMembersUseCase'), GetTeamJoinRequestsUseCase: Symbol.for('GetTeamJoinRequestsUseCase'), GetDriverTeamUseCase: Symbol.for('GetDriverTeamUseCase'), // Queries - Stewarding GetRaceProtestsUseCase: Symbol.for('GetRaceProtestsUseCase'), GetRacePenaltiesUseCase: Symbol.for('GetRacePenaltiesUseCase'), // Queries - Notifications GetUnreadNotificationsUseCase: Symbol.for('GetUnreadNotificationsUseCase'), // Use Cases - Sponsors GetSponsorDashboardUseCase: Symbol.for('GetSponsorDashboardUseCase'), GetSponsorSponsorshipsUseCase: Symbol.for('GetSponsorSponsorshipsUseCase'), GetPendingSponsorshipRequestsUseCase: Symbol.for('GetPendingSponsorshipRequestsUseCase'), GetEntitySponsorshipPricingUseCase: Symbol.for('GetEntitySponsorshipPricingUseCase'), // Use Cases - Sponsorship ApplyForSponsorshipUseCase: Symbol.for('ApplyForSponsorshipUseCase'), AcceptSponsorshipRequestUseCase: Symbol.for('AcceptSponsorshipRequestUseCase'), RejectSponsorshipRequestUseCase: Symbol.for('RejectSponsorshipRequestUseCase'), // Use Cases - Driver Profile UpdateDriverProfileUseCase: Symbol.for('UpdateDriverProfileUseCase'), // Data DriverStats: Symbol.for('DriverStats'), // Presenters - Racing RaceWithSOFPresenter: Symbol.for('IRaceWithSOFPresenter'), RaceProtestsPresenter: Symbol.for('IRaceProtestsPresenter'), RacePenaltiesPresenter: Symbol.for('IRacePenaltiesPresenter'), RaceRegistrationsPresenter: Symbol.for('IRaceRegistrationsPresenter'), DriverRegistrationStatusPresenter: Symbol.for('IDriverRegistrationStatusPresenter'), RaceDetailPresenter: Symbol.for('IRaceDetailPresenter'), RaceResultsDetailPresenter: Symbol.for('IRaceResultsDetailPresenter'), ImportRaceResultsPresenter: Symbol.for('IImportRaceResultsPresenter'), DashboardOverviewPresenter: Symbol.for('IDashboardOverviewPresenter'), ProfileOverviewPresenter: Symbol.for('IProfileOverviewPresenter'), // Presenters - Sponsors SponsorDashboardPresenter: Symbol.for('ISponsorDashboardPresenter'), SponsorSponsorshipsPresenter: Symbol.for('ISponsorSponsorshipsPresenter'), PendingSponsorshipRequestsPresenter: Symbol.for('IPendingSponsorshipRequestsPresenter'), EntitySponsorshipPricingPresenter: Symbol.for('IEntitySponsorshipPricingPresenter'), LeagueSchedulePreviewPresenter: Symbol.for('ILeagueSchedulePreviewPresenter'), } as const; export type DITokens = typeof DI_TOKENS;