/** * Centralized token registry for all dependencies * Using Symbol.for for cross-module consistency */ // Core Services export const LOGGER_TOKEN = Symbol.for('Core.Logger'); export const ERROR_REPORTER_TOKEN = Symbol.for('Core.ErrorReporter'); export const CONFIG_TOKEN = Symbol.for('Core.Config'); // API Clients export const API_CLIENT_TOKEN = Symbol.for('Api.BaseClient'); export const LEAGUE_API_CLIENT_TOKEN = Symbol.for('Api.LeagueClient'); export const DRIVER_API_CLIENT_TOKEN = Symbol.for('Api.DriverClient'); export const TEAM_API_CLIENT_TOKEN = Symbol.for('Api.TeamClient'); export const RACE_API_CLIENT_TOKEN = Symbol.for('Api.RaceClient'); export const MEDIA_API_CLIENT_TOKEN = Symbol.for('Api.MediaClient'); export const PAYMENT_API_CLIENT_TOKEN = Symbol.for('Api.PaymentClient'); export const WALLET_API_CLIENT_TOKEN = Symbol.for('Api.WalletClient'); export const AUTH_API_CLIENT_TOKEN = Symbol.for('Api.AuthClient'); export const ANALYTICS_API_CLIENT_TOKEN = Symbol.for('Api.AnalyticsClient'); export const SPONSOR_API_CLIENT_TOKEN = Symbol.for('Api.SponsorClient'); export const POLICY_API_CLIENT_TOKEN = Symbol.for('Api.PolicyClient'); export const PROTEST_API_CLIENT_TOKEN = Symbol.for('Api.ProtestClient'); export const PENALTY_API_CLIENT_TOKEN = Symbol.for('Api.PenaltyClient'); export const DASHBOARD_API_CLIENT_TOKEN = Symbol.for('Api.DashboardClient'); // Domain Services import type { LeagueService } from '@/lib/services/leagues/LeagueService'; import type { LeagueMembershipService } from '@/lib/services/leagues/LeagueMembershipService'; import type { LeagueWalletService } from '@/lib/services/leagues/LeagueWalletService'; import type { LeagueSettingsService } from '@/lib/services/leagues/LeagueSettingsService'; import type { LeagueStewardingService } from '@/lib/services/leagues/LeagueStewardingService'; import type { DriverService } from '@/lib/services/drivers/DriverService'; import type { AuthService } from '@/lib/services/auth/AuthService'; import type { SessionService } from '@/lib/services/auth/SessionService'; import type { PenaltyService } from '@/lib/services/penalties/PenaltyService'; import type { PolicyService } from '@/lib/services/policy/PolicyService'; import type { AdminService } from '@/lib/services/admin/AdminService'; import type { OnboardingService } from '@/lib/services/onboarding/OnboardingService'; import type { SponsorService } from '@/lib/services/sponsors/SponsorService'; import type { ProtestService } from '@/lib/services/protests/ProtestService'; import type { LandingService } from '@/lib/services/landing/LandingService'; import type { TeamService } from '@/lib/services/teams/TeamService'; import type { TeamJoinService } from '@/lib/services/teams/TeamJoinService'; import type { RaceService } from '@/lib/services/races/RaceService'; import type { RaceResultsService } from '@/lib/services/races/RaceResultsService'; import type { RaceStewardingService } from '@/lib/services/races/RaceStewardingService'; import type { DashboardService } from '@/lib/services/analytics/DashboardService'; export const LEAGUE_SERVICE_TOKEN = Symbol.for('Service.League') as symbol & { type: LeagueService }; export const LEAGUE_MEMBERSHIP_SERVICE_TOKEN = Symbol.for('Service.LeagueMembership') as symbol & { type: LeagueMembershipService }; export const LEAGUE_WALLET_SERVICE_TOKEN = Symbol.for('Service.LeagueWallet') as symbol & { type: LeagueWalletService }; export const DRIVER_SERVICE_TOKEN = Symbol.for('Service.Driver') as symbol & { type: DriverService }; export const TEAM_SERVICE_TOKEN = Symbol.for('Service.Team') as symbol & { type: TeamService }; export const TEAM_JOIN_SERVICE_TOKEN = Symbol.for('Service.TeamJoin') as symbol & { type: TeamJoinService }; export const RACE_SERVICE_TOKEN = Symbol.for('Service.Race') as symbol & { type: RaceService }; export const RACE_RESULTS_SERVICE_TOKEN = Symbol.for('Service.RaceResults') as symbol & { type: RaceResultsService }; export const RACE_STEWARDING_SERVICE_TOKEN = Symbol.for('Service.RaceStewarding') as symbol & { type: RaceStewardingService }; export const SPONSOR_SERVICE_TOKEN = Symbol.for('Service.Sponsor') as symbol & { type: SponsorService }; export const PAYMENT_SERVICE_TOKEN = Symbol.for('Service.Payment'); export const WALLET_SERVICE_TOKEN = Symbol.for('Service.Wallet'); export const MEDIA_SERVICE_TOKEN = Symbol.for('Service.Media'); export const AUTH_SERVICE_TOKEN = Symbol.for('Service.Auth') as symbol & { type: AuthService }; export const SESSION_SERVICE_TOKEN = Symbol.for('Service.Session') as symbol & { type: SessionService }; export const PENALTY_SERVICE_TOKEN = Symbol.for('Service.Penalty') as symbol & { type: PenaltyService }; export const POLICY_SERVICE_TOKEN = Symbol.for('Service.Policy') as symbol & { type: PolicyService }; export const ADMIN_SERVICE_TOKEN = Symbol.for('Service.Admin') as symbol & { type: AdminService }; // Additional league services export const LEAGUE_SETTINGS_SERVICE_TOKEN = Symbol.for('Service.LeagueSettings') as symbol & { type: LeagueSettingsService }; export const LEAGUE_STEWARDING_SERVICE_TOKEN = Symbol.for('Service.LeagueStewarding') as symbol & { type: LeagueStewardingService }; export const PROTEST_SERVICE_TOKEN = Symbol.for('Service.Protest') as symbol & { type: ProtestService }; export const LANDING_SERVICE_TOKEN = Symbol.for('Service.Landing') as symbol & { type: LandingService }; export const DASHBOARD_SERVICE_TOKEN = Symbol.for('Service.Dashboard') as symbol & { type: DashboardService }; // Onboarding Services export const ONBOARDING_SERVICE_TOKEN = Symbol.for('Service.Onboarding') as symbol & { type: OnboardingService };