Files
gridpilot.gg/apps/website/lib/di-tokens.ts
2025-12-10 12:38:55 +01:00

109 lines
5.2 KiB
TypeScript

/**
* 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;