/** * 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'), // 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 IsDriverRegisteredForRaceQuery: Symbol.for('IsDriverRegisteredForRaceQuery'), GetRaceRegistrationsQuery: Symbol.for('GetRaceRegistrationsQuery'), GetLeagueStandingsQuery: Symbol.for('GetLeagueStandingsQuery'), GetLeagueDriverSeasonStatsQuery: Symbol.for('GetLeagueDriverSeasonStatsQuery'), GetAllLeaguesWithCapacityQuery: Symbol.for('GetAllLeaguesWithCapacityQuery'), GetAllLeaguesWithCapacityAndScoringQuery: Symbol.for('GetAllLeaguesWithCapacityAndScoringQuery'), ListLeagueScoringPresetsQuery: Symbol.for('ListLeagueScoringPresetsQuery'), GetLeagueScoringConfigQuery: Symbol.for('GetLeagueScoringConfigQuery'), GetLeagueFullConfigQuery: Symbol.for('GetLeagueFullConfigQuery'), PreviewLeagueScheduleQuery: Symbol.for('PreviewLeagueScheduleQuery'), GetRaceWithSOFQuery: Symbol.for('GetRaceWithSOFQuery'), GetLeagueStatsQuery: Symbol.for('GetLeagueStatsQuery'), // Queries - Teams GetAllTeamsQuery: Symbol.for('GetAllTeamsQuery'), GetTeamDetailsQuery: Symbol.for('GetTeamDetailsQuery'), GetTeamMembersQuery: Symbol.for('GetTeamMembersQuery'), GetTeamJoinRequestsQuery: Symbol.for('GetTeamJoinRequestsQuery'), GetDriverTeamQuery: Symbol.for('GetDriverTeamQuery'), // Queries - Stewarding GetRaceProtestsQuery: Symbol.for('GetRaceProtestsQuery'), GetRacePenaltiesQuery: Symbol.for('GetRacePenaltiesQuery'), // Queries - Notifications GetUnreadNotificationsQuery: Symbol.for('GetUnreadNotificationsQuery'), // Queries - Sponsors GetSponsorDashboardQuery: Symbol.for('GetSponsorDashboardQuery'), GetSponsorSponsorshipsQuery: Symbol.for('GetSponsorSponsorshipsQuery'), GetPendingSponsorshipRequestsQuery: Symbol.for('GetPendingSponsorshipRequestsQuery'), GetEntitySponsorshipPricingQuery: Symbol.for('GetEntitySponsorshipPricingQuery'), // Use Cases - Sponsorship ApplyForSponsorshipUseCase: Symbol.for('ApplyForSponsorshipUseCase'), AcceptSponsorshipRequestUseCase: Symbol.for('AcceptSponsorshipRequestUseCase'), RejectSponsorshipRequestUseCase: Symbol.for('RejectSponsorshipRequestUseCase'), // Data DriverStats: Symbol.for('DriverStats'), } as const; export type DITokens = typeof DI_TOKENS;