view data fixes

This commit is contained in:
2026-01-24 12:47:49 +01:00
parent 6749fe326b
commit c1750a33dd
105 changed files with 474 additions and 498 deletions

View File

@@ -1,14 +1,14 @@
'use server';
import { revalidatePath } from 'next/cache';
import { redirect } from 'next/navigation';
import { Result } from '@/lib/contracts/Result';
import { ScheduleAdminMutation } from '@/lib/mutations/leagues/ScheduleAdminMutation';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { routes } from '@/lib/routing/RouteConfig';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ScheduleAdminMutation } from '@/lib/mutations/leagues/ScheduleAdminMutation';
import { routes } from '@/lib/routing/RouteConfig';
import { revalidatePath } from 'next/cache';
import { redirect } from 'next/navigation';
// eslint-disable-next-line gridpilot-rules/server-actions-interface
export async function publishScheduleAction(leagueId: string, seasonId: string): Promise<Result<void, string>> {
@@ -124,16 +124,16 @@ export async function withdrawFromRaceAction(raceId: string, driverId: string, l
}
// eslint-disable-next-line gridpilot-rules/server-actions-interface
export async function navigateToEditRaceAction(raceId: string, leagueId: string): Promise<void> {
export async function navigateToEditRaceAction(leagueId: string): Promise<void> {
redirect(routes.league.scheduleAdmin(leagueId));
}
// eslint-disable-next-line gridpilot-rules/server-actions-interface
export async function navigateToRescheduleRaceAction(raceId: string, leagueId: string): Promise<void> {
export async function navigateToRescheduleRaceAction(leagueId: string): Promise<void> {
redirect(routes.league.scheduleAdmin(leagueId));
}
// eslint-disable-next-line gridpilot-rules/server-actions-interface
export async function navigateToRaceResultsAction(raceId: string, leagueId: string): Promise<void> {
export async function navigateToRaceResultsAction(raceId: string): Promise<void> {
redirect(routes.race.results(raceId));
}

View File

@@ -1,11 +1,11 @@
import { notFound } from 'next/navigation';
import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { SponsorLeagueDetailPageClient } from '@/client-wrapper/SponsorLeagueDetailPageClient';
import { SponsorsApiClient } from '@/lib/api/sponsors/SponsorsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { SponsorsApiClient } from '@/lib/gateways/api/sponsors/SponsorsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { notFound } from 'next/navigation';
export default async function Page({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params;

View File

@@ -1,10 +1,10 @@
import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { SponsorLeaguesPageClient } from '@/client-wrapper/SponsorLeaguesPageClient';
import { SponsorsApiClient } from '@/lib/api/sponsors/SponsorsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { SponsorsApiClient } from '@/lib/gateways/api/sponsors/SponsorsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
export default async function Page() {
// Manual wiring: create dependencies

View File

@@ -1,9 +1,9 @@
'use client';
import { ActionItem } from '@/lib/queries/ActionsPageQuery';
import { ActionStatusBadge } from './ActionStatusBadge';
import { Table, TableHead, TableBody, TableRow, TableHeader, TableCell } from '@/ui/Table';
import { ActionItem } from '@/lib/page-queries/ActionsPageQuery';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/ui/Table';
import { Text } from '@/ui/Text';
import { ActionStatusBadge } from './ActionStatusBadge';
interface ActionListProps {
actions: ActionItem[];

View File

@@ -3,10 +3,10 @@
import { useNotifications } from '@/components/notifications/NotificationProvider';
import type { NotificationVariant } from '@/components/notifications/notificationTypes';
import { useEffectiveDriverId } from "@/hooks/useEffectiveDriverId";
import { ApiConnectionMonitor } from '@/lib/api/base/ApiConnectionMonitor';
import { CircuitBreakerRegistry } from '@/lib/api/base/RetryHandler';
import { ApiConnectionMonitor } from '@/lib/gateways/api/base/ApiConnectionMonitor';
import { CircuitBreakerRegistry } from '@/lib/gateways/api/base/RetryHandler';
import { getGlobalErrorHandler } from '@/lib/infrastructure/GlobalErrorHandler';
import { Activity, AlertTriangle, ChevronDown, ChevronUp, MessageSquare, Wrench, X } from 'lucide-react';
import { ChevronUp, Wrench, X } from 'lucide-react';
import { useEffect, useState } from 'react';
// Import our new components
@@ -15,8 +15,8 @@ import { Badge } from '@/ui/Badge';
import { Button } from '@/ui/Button';
import { Icon } from '@/ui/Icon';
import { IconButton } from '@/ui/IconButton';
import { Text } from '@/ui/Text';
import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { Toolbar } from '@/ui/Toolbar';
import { APIStatusSection } from './sections/APIStatusSection';
import { NotificationSendSection } from './sections/NotificationSendSection';

View File

@@ -1,10 +1,10 @@
'use client';
import React, { Component, ReactNode, useState } from 'react';
import { ApiError } from '@/lib/api/base/ApiError';
import { connectionMonitor } from '@/lib/api/base/ApiConnectionMonitor';
import { ErrorDisplay } from '@/components/shared/ErrorDisplay';
import { DevErrorPanel } from '@/components/shared/DevErrorPanel';
import { ErrorDisplay } from '@/components/shared/ErrorDisplay';
import { connectionMonitor } from '@/lib/gateways/api/base/ApiConnectionMonitor';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { Component, ReactNode, useState } from 'react';
interface Props {
children: ReactNode;

View File

@@ -1,10 +1,10 @@
'use client';
import React, { Component, ReactNode, ErrorInfo, useState, version } from 'react';
import { ApiError } from '@/lib/api/base/ApiError';
import { getGlobalErrorHandler } from '@/lib/infrastructure/GlobalErrorHandler';
import { DevErrorPanel } from '@/components/shared/DevErrorPanel';
import { ErrorDisplay } from '@/components/shared/ErrorDisplay';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { getGlobalErrorHandler } from '@/lib/infrastructure/GlobalErrorHandler';
import React, { Component, ErrorInfo, ReactNode, useState, version } from 'react';
interface Props {
children: ReactNode;

View File

@@ -1,6 +1,6 @@
'use client';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { getErrorSeverity, isConnectivityError, isRetryable, parseApiError } from '@/lib/utils/errorUtils';
import { Button } from '@/ui/Button';
import { Icon } from '@/ui/Icon';
@@ -9,15 +9,15 @@ import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { AnimatePresence, motion } from 'framer-motion';
import {
AlertCircle,
AlertTriangle,
Bug,
ChevronDown,
ChevronUp,
Info,
RefreshCw,
Wifi,
X
AlertCircle,
AlertTriangle,
Bug,
ChevronDown,
ChevronUp,
Info,
RefreshCw,
Wifi,
X
} from 'lucide-react';
import { useState } from 'react';

View File

@@ -1,8 +1,7 @@
'use client';
import React from 'react';
import { ApiError } from '@/lib/api/base/ApiError';
import { ErrorDisplay as UiErrorDisplay } from '@/components/shared/ErrorDisplay';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
interface ErrorDisplayProps {
error: ApiError;

View File

@@ -1,9 +1,9 @@
'use client';
import { useEffect, useState } from 'react';
import { useNotifications } from '@/components/notifications/NotificationProvider';
import { ApiError } from '@/lib/api/base/ApiError';
import { connectionMonitor } from '@/lib/api/base/ApiConnectionMonitor';
import { connectionMonitor } from '@/lib/gateways/api/base/ApiConnectionMonitor';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useEffect, useState } from 'react';
/**
* Integration component that listens for API errors and shows notifications

View File

@@ -1,6 +1,6 @@
import { connectionMonitor } from '@/lib/api/base/ApiConnectionMonitor';
import { ApiError } from '@/lib/api/base/ApiError';
import { CircuitBreakerRegistry } from '@/lib/api/base/RetryHandler';
import { connectionMonitor } from '@/lib/gateways/api/base/ApiConnectionMonitor';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { CircuitBreakerRegistry } from '@/lib/gateways/api/base/RetryHandler';
import { Badge } from '@/ui/Badge';
import { Box } from '@/ui/Box';
import { Button } from '@/ui/Button';

View File

@@ -1,4 +1,4 @@
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { Box } from '@/ui/Box';
import { Button } from '@/ui/Button';
import { Heading } from '@/ui/Heading';

View File

@@ -1,7 +1,7 @@
import { EmptyState } from '@/ui/EmptyState';
import { ErrorDisplay } from '@/components/shared/ErrorDisplay';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { EmptyState } from '@/ui/EmptyState';
import { LoadingWrapper } from '@/ui/LoadingWrapper';
import { ApiError } from '@/lib/api/base/ApiError';
import { Inbox, List, LucideIcon } from 'lucide-react';
import React, { ReactNode } from 'react';

View File

@@ -1,9 +1,9 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { SESSION_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { SESSION_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useCurrentSession(
options?: Omit<UseQueryOptions<SessionViewModel | null, ApiError>, 'queryKey' | 'queryFn'> & { initialData?: SessionViewModel | null }

View File

@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { AUTH_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { ForgotPasswordDTO } from '@/lib/types/generated/ForgotPasswordDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useForgotPassword(
options?: Omit<UseMutationOptions<{ message: string; magicLink?: string }, ApiError, ForgotPasswordDTO>, 'mutationFn'>

View File

@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { AUTH_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { LoginParamsDTO } from '@/lib/types/generated/LoginParamsDTO';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useLogin(
options?: Omit<UseMutationOptions<SessionViewModel, ApiError, LoginParamsDTO>, 'mutationFn'>

View File

@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { AUTH_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useLogout(
options?: Omit<UseMutationOptions<void, ApiError, void>, 'mutationFn'>

View File

@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { AUTH_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { ResetPasswordDTO } from '@/lib/types/generated/ResetPasswordDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useResetPassword(
options?: Omit<UseMutationOptions<{ message: string }, ApiError, ResetPasswordDTO>, 'mutationFn'>

View File

@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { AUTH_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { SignupParamsDTO } from '@/lib/types/generated/SignupParamsDTO';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useSignup(
options?: Omit<UseMutationOptions<SessionViewModel, ApiError, SignupParamsDTO>, 'mutationFn'>

View File

@@ -1,11 +1,11 @@
'use client';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { CompleteOnboardingInputDTO } from '@/lib/types/generated/CompleteOnboardingInputDTO';
import { CompleteOnboardingViewModel } from '@/lib/view-models/CompleteOnboardingViewModel';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useCreateDriver(
options?: Omit<UseMutationOptions<CompleteOnboardingViewModel, ApiError, CompleteOnboardingInputDTO>, 'mutationFn'>

View File

@@ -1,10 +1,10 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';
import { useAuth } from '@/components/auth/AuthContext';
import { useInject } from '@/lib/di/hooks/useInject';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useCurrentDriver(
options?: Omit<UseQueryOptions<DriverDTO | null, ApiError>, 'queryKey' | 'queryFn'>

View File

@@ -1,9 +1,9 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { DriverProfileViewModel, type DriverProfileViewModelData } from '@/lib/view-models/DriverProfileViewModel';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useDriverProfile(
driverId: string,

View File

@@ -1,9 +1,9 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { GetDriverOutputDTO } from '@/lib/types/generated/GetDriverOutputDTO';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useFindDriverById(
driverId: string,

View File

@@ -1,10 +1,10 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { DriverProfileViewModelBuilder } from '@/lib/builders/view-models/DriverProfileViewModelBuilder';
import { useInject } from '@/lib/di/hooks/useInject';
import { DRIVER_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { DriverProfileViewModel } from '@/lib/view-models/DriverProfileViewModel';
import { DriverProfileViewModelBuilder } from '@/lib/builders/view-models/DriverProfileViewModelBuilder';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';
import { DriverProfileViewModel } from '@/lib/view-models/DriverProfileViewModel';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useUpdateDriverProfile(
options?: Omit<UseMutationOptions<DriverProfileViewModel, ApiError, { bio?: string; country?: string }>, 'mutationFn'>

View File

@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { CreateLeagueInputDTO } from '@/lib/types/generated/CreateLeagueInputDTO';
import { CreateLeagueOutputDTO } from '@/lib/types/generated/CreateLeagueOutputDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export interface CreateLeagueInput {
name: string;

View File

@@ -1,15 +1,10 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import type { LeagueWithCapacityAndScoringDTO } from '@/lib/types/generated/LeagueWithCapacityAndScoringDTO';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { LeagueMembershipsDTO } from '@/lib/types/generated/LeagueMembershipsDTO';
import type { AllLeaguesWithCapacityAndScoringDTO } from '@/lib/types/AllLeaguesWithCapacityAndScoringDTO';
import type { LeagueWithCapacityAndScoringDTO } from '@/lib/types/generated/LeagueWithCapacityAndScoringDTO';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
interface UseLeagueDetailOptions {
leagueId: string;
queryOptions?: UseQueryOptions<LeagueWithCapacityAndScoringDTO, ApiError>;
}
interface UseLeagueMembershipsOptions {
leagueId: string;

View File

@@ -1,7 +1,7 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_MEMBERSHIP_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, useQueryClient } from '@tanstack/react-query';
export function useLeagueMembershipMutation() {
const leagueMembershipService = useInject(LEAGUE_MEMBERSHIP_SERVICE_TOKEN);

View File

@@ -1,9 +1,9 @@
import { useMutation, useQuery, UseMutationOptions, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import type { LeagueRosterMemberDTO } from '@/lib/types/generated/LeagueRosterMemberDTO';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { LeagueRosterJoinRequestDTO } from '@/lib/types/generated/LeagueRosterJoinRequestDTO';
import type { LeagueRosterMemberDTO } from '@/lib/types/generated/LeagueRosterMemberDTO';
import { useMutation, UseMutationOptions, useQuery, UseQueryOptions } from '@tanstack/react-query';
interface UpdateMemberRoleInput {
leagueId: string;

View File

@@ -1,9 +1,9 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_SETTINGS_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { LEAGUE_SETTINGS_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { LeagueSettingsViewModel } from '@/lib/view-models/LeagueSettingsViewModel';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useLeagueSettings(
leagueId: string,

View File

@@ -1,8 +1,8 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { LEAGUE_STEWARDING_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { LEAGUE_STEWARDING_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useQuery } from '@tanstack/react-query';
export function useProtestDetail(leagueId: string, protestId: string, enabled: boolean = true) {
const leagueStewardingService = useInject(LEAGUE_STEWARDING_SERVICE_TOKEN);

View File

@@ -1,8 +1,8 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { FileProtestCommandDTO } from '@/lib/types/generated/FileProtestCommandDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useFileProtest(
options?: Omit<UseMutationOptions<void, ApiError, FileProtestCommandDTO>, 'mutationFn'>

View File

@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
interface RegisterForRaceParams {
raceId: string;

View File

@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { RACE_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
interface WithdrawFromRaceParams {
raceId: string;

View File

@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { TEAM_JOIN_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useApproveJoinRequest(options?: Omit<UseMutationOptions<void, ApiError, void>, 'mutationFn'>) {
const teamJoinService = useInject(TEAM_JOIN_SERVICE_TOKEN);

View File

@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { TEAM_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { CreateTeamInputDTO } from '@/lib/types/generated/CreateTeamInputDTO';
import type { CreateTeamOutputDTO } from '@/lib/types/generated/CreateTeamOutputDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useCreateTeam(options?: UseMutationOptions<CreateTeamOutputDTO, ApiError, CreateTeamInputDTO>) {
const teamService = useInject(TEAM_SERVICE_TOKEN);

View File

@@ -1,5 +1,5 @@
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { ApiError } from '@/lib/api/base/ApiError';
interface JoinTeamParams {
teamId: string;

View File

@@ -1,5 +1,5 @@
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { ApiError } from '@/lib/api/base/ApiError';
interface LeaveTeamParams {
teamId: string;

View File

@@ -1,7 +1,7 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { TEAM_JOIN_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useRejectJoinRequest(options?: Omit<UseMutationOptions<void, ApiError, void>, 'mutationFn'>) {
const teamJoinService = useInject(TEAM_JOIN_SERVICE_TOKEN);

View File

@@ -1,8 +1,8 @@
import { useQuery } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { TEAM_JOIN_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { TEAM_JOIN_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useQuery } from '@tanstack/react-query';
export function useTeamJoinRequests(teamId: string, currentUserId: string, isOwner: boolean) {
const teamJoinService = useInject(TEAM_JOIN_SERVICE_TOKEN);

View File

@@ -1,9 +1,9 @@
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { TEAM_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/api/base/ApiError';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { UpdateTeamInputDTO } from '@/lib/types/generated/UpdateTeamInputDTO';
import type { UpdateTeamOutputDTO } from '@/lib/types/generated/UpdateTeamOutputDTO';
import { useMutation, UseMutationOptions } from '@tanstack/react-query';
export function useUpdateTeam(options?: UseMutationOptions<UpdateTeamOutputDTO, ApiError, { teamId: string; input: UpdateTeamInputDTO }>) {
const teamService = useInject(TEAM_SERVICE_TOKEN);

View File

@@ -1,9 +1,9 @@
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
import { useInject } from '@/lib/di/hooks/useInject';
import { POLICY_SERVICE_TOKEN } from '@/lib/di/tokens';
import { enhanceQueryResult } from '@/lib/di/hooks/useReactQueryWithApiError';
import { ApiError } from '@/lib/api/base/ApiError';
import { PolicySnapshotDto } from '@/lib/api/policy/PolicyApiClient';
import { POLICY_SERVICE_TOKEN } from '@/lib/di/tokens';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { PolicySnapshotDto } from '@/lib/gateways/api/policy/PolicyApiClient';
import { useQuery, UseQueryOptions } from '@tanstack/react-query';
export function useCapability(
capabilityKey: string,

View File

@@ -1,5 +1,5 @@
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { UseQueryResult } from '@tanstack/react-query';
import { ApiError } from '@/lib/api/base/ApiError';
/**
* Converts React-Query error to ApiError for StateContainer compatibility

View File

@@ -1,37 +1,37 @@
import { ContainerModule } from 'inversify';
import { RacesApiClient } from '../../api/races/RacesApiClient';
import { DriversApiClient } from '../../api/drivers/DriversApiClient';
import { TeamsApiClient } from '../../api/teams/TeamsApiClient';
import { LeaguesApiClient } from '../../api/leagues/LeaguesApiClient';
import { SponsorsApiClient } from '../../api/sponsors/SponsorsApiClient';
import { PaymentsApiClient } from '../../api/payments/PaymentsApiClient';
import { WalletsApiClient } from '../../api/wallets/WalletsApiClient';
import { AuthApiClient } from '../../api/auth/AuthApiClient';
import { AnalyticsApiClient } from '../../api/analytics/AnalyticsApiClient';
import { MediaApiClient } from '../../api/media/MediaApiClient';
import { DashboardApiClient } from '../../api/dashboard/DashboardApiClient';
import { PolicyApiClient } from '../../api/policy/PolicyApiClient';
import { ProtestsApiClient } from '../../api/protests/ProtestsApiClient';
import { PenaltiesApiClient } from '../../api/penalties/PenaltiesApiClient';
import { AnalyticsApiClient } from '../../gateways/api/analytics/AnalyticsApiClient';
import { AuthApiClient } from '../../gateways/api/auth/AuthApiClient';
import { DashboardApiClient } from '../../gateways/api/dashboard/DashboardApiClient';
import { DriversApiClient } from '../../gateways/api/drivers/DriversApiClient';
import { LeaguesApiClient } from '../../gateways/api/leagues/LeaguesApiClient';
import { MediaApiClient } from '../../gateways/api/media/MediaApiClient';
import { PaymentsApiClient } from '../../gateways/api/payments/PaymentsApiClient';
import { PenaltiesApiClient } from '../../gateways/api/penalties/PenaltiesApiClient';
import { PolicyApiClient } from '../../gateways/api/policy/PolicyApiClient';
import { ProtestsApiClient } from '../../gateways/api/protests/ProtestsApiClient';
import { RacesApiClient } from '../../gateways/api/races/RacesApiClient';
import { SponsorsApiClient } from '../../gateways/api/sponsors/SponsorsApiClient';
import { TeamsApiClient } from '../../gateways/api/teams/TeamsApiClient';
import { WalletsApiClient } from '../../gateways/api/wallets/WalletsApiClient';
import {
LOGGER_TOKEN,
ERROR_REPORTER_TOKEN,
CONFIG_TOKEN,
LEAGUE_API_CLIENT_TOKEN,
DRIVER_API_CLIENT_TOKEN,
TEAM_API_CLIENT_TOKEN,
RACE_API_CLIENT_TOKEN,
SPONSOR_API_CLIENT_TOKEN,
PAYMENT_API_CLIENT_TOKEN,
WALLET_API_CLIENT_TOKEN,
AUTH_API_CLIENT_TOKEN,
import {
ANALYTICS_API_CLIENT_TOKEN,
MEDIA_API_CLIENT_TOKEN,
AUTH_API_CLIENT_TOKEN,
CONFIG_TOKEN,
DASHBOARD_API_CLIENT_TOKEN,
DRIVER_API_CLIENT_TOKEN,
ERROR_REPORTER_TOKEN,
LEAGUE_API_CLIENT_TOKEN,
LOGGER_TOKEN,
MEDIA_API_CLIENT_TOKEN,
PAYMENT_API_CLIENT_TOKEN,
PENALTY_API_CLIENT_TOKEN,
POLICY_API_CLIENT_TOKEN,
PROTEST_API_CLIENT_TOKEN,
PENALTY_API_CLIENT_TOKEN
RACE_API_CLIENT_TOKEN,
SPONSOR_API_CLIENT_TOKEN,
TEAM_API_CLIENT_TOKEN,
WALLET_API_CLIENT_TOKEN
} from '../tokens';
export const ApiModule = new ContainerModule((options) => {

View File

@@ -1,3 +1,5 @@
import { ErrorReporter } from '../../interfaces/ErrorReporter';
import { Logger } from '../../interfaces/Logger';
import { AdminApiClient } from './admin/AdminApiClient';
import { AnalyticsApiClient } from './analytics/AnalyticsApiClient';
import { AuthApiClient } from './auth/AuthApiClient';
@@ -13,10 +15,8 @@ import { RacesApiClient } from './races/RacesApiClient';
import { SponsorsApiClient } from './sponsors/SponsorsApiClient';
import { TeamsApiClient } from './teams/TeamsApiClient';
import { WalletsApiClient } from './wallets/WalletsApiClient';
import { ErrorReporter } from '../interfaces/ErrorReporter';
import { Logger } from '../interfaces/Logger';
import { ConsoleLogger } from '../infrastructure/logging/ConsoleLogger';
import { ConsoleLogger } from '../../infrastructure/logging/ConsoleLogger';
export class ApiClient {
public readonly admin: AdminApiClient;

View File

@@ -1,10 +1,10 @@
import { GetAnalyticsMetricsOutputDTO } from '../../../types/generated/GetAnalyticsMetricsOutputDTO';
import { GetDashboardDataOutputDTO } from '../../../types/generated/GetDashboardDataOutputDTO';
import { RecordEngagementInputDTO } from '../../../types/generated/RecordEngagementInputDTO';
import { RecordEngagementOutputDTO } from '../../../types/generated/RecordEngagementOutputDTO';
import { RecordPageViewInputDTO } from '../../../types/generated/RecordPageViewInputDTO';
import { RecordPageViewOutputDTO } from '../../../types/generated/RecordPageViewOutputDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import { RecordPageViewOutputDTO } from '../../types/generated/RecordPageViewOutputDTO';
import { RecordEngagementOutputDTO } from '../../types/generated/RecordEngagementOutputDTO';
import { GetDashboardDataOutputDTO } from '../../types/generated/GetDashboardDataOutputDTO';
import { GetAnalyticsMetricsOutputDTO } from '../../types/generated/GetAnalyticsMetricsOutputDTO';
import { RecordPageViewInputDTO } from '../../types/generated/RecordPageViewInputDTO';
import { RecordEngagementInputDTO } from '../../types/generated/RecordEngagementInputDTO';
/**
* Analytics API Client

View File

@@ -1,9 +1,9 @@
import { AuthSessionDTO } from '../../../types/generated/AuthSessionDTO';
import { ForgotPasswordDTO } from '../../../types/generated/ForgotPasswordDTO';
import { LoginParamsDTO } from '../../../types/generated/LoginParamsDTO';
import { ResetPasswordDTO } from '../../../types/generated/ResetPasswordDTO';
import { SignupParamsDTO } from '../../../types/generated/SignupParamsDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import { AuthSessionDTO } from '../../types/generated/AuthSessionDTO';
import { LoginParamsDTO } from '../../types/generated/LoginParamsDTO';
import { SignupParamsDTO } from '../../types/generated/SignupParamsDTO';
import { ForgotPasswordDTO } from '../../types/generated/ForgotPasswordDTO';
import { ResetPasswordDTO } from '../../types/generated/ResetPasswordDTO';
/**
* Auth API Client

View File

@@ -5,12 +5,12 @@
* error handling, authentication, retry logic, and circuit breaker.
*/
import { Logger } from '../../interfaces/Logger';
import { ErrorReporter } from '../../interfaces/ErrorReporter';
import { ApiError, ApiErrorType } from './ApiError';
import { RetryHandler, CircuitBreakerRegistry, DEFAULT_RETRY_CONFIG } from './RetryHandler';
import { ApiConnectionMonitor } from './ApiConnectionMonitor';
import { getGlobalApiLogger } from '@/lib/infrastructure/ApiRequestLogger';
import { ErrorReporter } from '../../../interfaces/ErrorReporter';
import { Logger } from '../../../interfaces/Logger';
import { ApiConnectionMonitor } from './ApiConnectionMonitor';
import { ApiError, ApiErrorType } from './ApiError';
import { CircuitBreakerRegistry, DEFAULT_RETRY_CONFIG, RetryHandler } from './RetryHandler';
export interface BaseApiClientOptions {
timeout?: number;

View File

@@ -1,5 +1,5 @@
import type { DashboardOverviewDTO } from '../../../types/generated/DashboardOverviewDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { DashboardOverviewDTO } from '../../types/generated/DashboardOverviewDTO';
/**
* Dashboard API Client

View File

@@ -1,10 +1,10 @@
import type { CompleteOnboardingInputDTO } from '../../../types/generated/CompleteOnboardingInputDTO';
import type { CompleteOnboardingOutputDTO } from '../../../types/generated/CompleteOnboardingOutputDTO';
import type { DriverLeaderboardItemDTO } from '../../../types/generated/DriverLeaderboardItemDTO';
import type { DriverRegistrationStatusDTO } from '../../../types/generated/DriverRegistrationStatusDTO';
import type { GetDriverOutputDTO } from '../../../types/generated/GetDriverOutputDTO';
import type { GetDriverProfileOutputDTO } from '../../../types/generated/GetDriverProfileOutputDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { CompleteOnboardingInputDTO } from '../../types/generated/CompleteOnboardingInputDTO';
import type { CompleteOnboardingOutputDTO } from '../../types/generated/CompleteOnboardingOutputDTO';
import type { DriverRegistrationStatusDTO } from '../../types/generated/DriverRegistrationStatusDTO';
import type { DriverLeaderboardItemDTO } from '../../types/generated/DriverLeaderboardItemDTO';
import type { GetDriverOutputDTO } from '../../types/generated/GetDriverOutputDTO';
import type { GetDriverProfileOutputDTO } from '../../types/generated/GetDriverProfileOutputDTO';
type DriversLeaderboardDto = {
drivers: DriverLeaderboardItemDTO[];

View File

@@ -1,28 +1,28 @@
import type { AllLeaguesWithCapacityAndScoringDTO } from '../../../types/AllLeaguesWithCapacityAndScoringDTO';
import type { AllLeaguesWithCapacityDTO } from '../../../types/generated/AllLeaguesWithCapacityDTO';
import type { ApproveJoinRequestOutputDTO } from '../../../types/generated/ApproveJoinRequestOutputDTO';
import type { CreateLeagueInputDTO } from '../../../types/generated/CreateLeagueInputDTO';
import type { CreateLeagueOutputDTO } from '../../../types/generated/CreateLeagueOutputDTO';
import type { CreateLeagueScheduleRaceInputDTO } from '../../../types/generated/CreateLeagueScheduleRaceInputDTO';
import type { CreateLeagueScheduleRaceOutputDTO } from '../../../types/generated/CreateLeagueScheduleRaceOutputDTO';
import type { GetLeagueAdminConfigOutputDTO } from '../../../types/generated/GetLeagueAdminConfigOutputDTO';
import type { LeagueMembershipsDTO } from '../../../types/generated/LeagueMembershipsDTO';
import type { LeagueRosterJoinRequestDTO } from '../../../types/generated/LeagueRosterJoinRequestDTO';
import type { LeagueRosterMemberDTO } from '../../../types/generated/LeagueRosterMemberDTO';
import type { LeagueScheduleDTO } from '../../../types/generated/LeagueScheduleDTO';
import type { LeagueScheduleRaceMutationSuccessDTO } from '../../../types/generated/LeagueScheduleRaceMutationSuccessDTO';
import type { LeagueScoringPresetDTO } from '../../../types/generated/LeagueScoringPresetDTO';
import type { LeagueSeasonSchedulePublishOutputDTO } from '../../../types/generated/LeagueSeasonSchedulePublishOutputDTO';
import type { LeagueSeasonSummaryDTO } from '../../../types/generated/LeagueSeasonSummaryDTO';
import type { LeagueStandingsDTO } from '../../../types/generated/LeagueStandingsDTO';
import type { RaceDTO } from '../../../types/generated/RaceDTO';
import type { RejectJoinRequestOutputDTO } from '../../../types/generated/RejectJoinRequestOutputDTO';
import type { RemoveLeagueMemberOutputDTO } from '../../../types/generated/RemoveLeagueMemberOutputDTO';
import type { SponsorshipDetailDTO } from '../../../types/generated/SponsorshipDetailDTO';
import type { TotalLeaguesDTO } from '../../../types/generated/TotalLeaguesDTO';
import type { UpdateLeagueMemberRoleOutputDTO } from '../../../types/generated/UpdateLeagueMemberRoleOutputDTO';
import type { UpdateLeagueScheduleRaceInputDTO } from '../../../types/generated/UpdateLeagueScheduleRaceInputDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { AllLeaguesWithCapacityDTO } from '../../types/generated/AllLeaguesWithCapacityDTO';
import type { TotalLeaguesDTO } from '../../types/generated/TotalLeaguesDTO';
import type { LeagueStandingsDTO } from '../../types/generated/LeagueStandingsDTO';
import type { LeagueScheduleDTO } from '../../types/generated/LeagueScheduleDTO';
import type { LeagueMembershipsDTO } from '../../types/generated/LeagueMembershipsDTO';
import type { CreateLeagueInputDTO } from '../../types/generated/CreateLeagueInputDTO';
import type { CreateLeagueOutputDTO } from '../../types/generated/CreateLeagueOutputDTO';
import type { SponsorshipDetailDTO } from '../../types/generated/SponsorshipDetailDTO';
import type { RaceDTO } from '../../types/generated/RaceDTO';
import type { GetLeagueAdminConfigOutputDTO } from '../../types/generated/GetLeagueAdminConfigOutputDTO';
import type { LeagueScoringPresetDTO } from '../../types/generated/LeagueScoringPresetDTO';
import type { LeagueSeasonSummaryDTO } from '../../types/generated/LeagueSeasonSummaryDTO';
import type { CreateLeagueScheduleRaceInputDTO } from '../../types/generated/CreateLeagueScheduleRaceInputDTO';
import type { CreateLeagueScheduleRaceOutputDTO } from '../../types/generated/CreateLeagueScheduleRaceOutputDTO';
import type { UpdateLeagueScheduleRaceInputDTO } from '../../types/generated/UpdateLeagueScheduleRaceInputDTO';
import type { LeagueScheduleRaceMutationSuccessDTO } from '../../types/generated/LeagueScheduleRaceMutationSuccessDTO';
import type { LeagueSeasonSchedulePublishOutputDTO } from '../../types/generated/LeagueSeasonSchedulePublishOutputDTO';
import type { LeagueRosterMemberDTO } from '../../types/generated/LeagueRosterMemberDTO';
import type { LeagueRosterJoinRequestDTO } from '../../types/generated/LeagueRosterJoinRequestDTO';
import type { ApproveJoinRequestOutputDTO } from '../../types/generated/ApproveJoinRequestOutputDTO';
import type { RejectJoinRequestOutputDTO } from '../../types/generated/RejectJoinRequestOutputDTO';
import type { UpdateLeagueMemberRoleOutputDTO } from '../../types/generated/UpdateLeagueMemberRoleOutputDTO';
import type { RemoveLeagueMemberOutputDTO } from '../../types/generated/RemoveLeagueMemberOutputDTO';
import type { AllLeaguesWithCapacityAndScoringDTO } from '../../types/AllLeaguesWithCapacityAndScoringDTO';
function isRecord(value: unknown): value is Record<string, unknown> {
return typeof value === 'object' && value !== null;

View File

@@ -1,13 +1,13 @@
import type { DeleteMediaOutputDTO } from '../../types/generated/DeleteMediaOutputDTO';
import type { GetAvatarOutputDTO } from '../../types/generated/GetAvatarOutputDTO';
import type { GetMediaOutputDTO } from '../../types/generated/GetMediaOutputDTO';
import type { RequestAvatarGenerationInputDTO } from '../../types/generated/RequestAvatarGenerationInputDTO';
import type { RequestAvatarGenerationOutputDTO } from '../../types/generated/RequestAvatarGenerationOutputDTO';
import type { UpdateAvatarInputDTO } from '../../types/generated/UpdateAvatarInputDTO';
import type { UpdateAvatarOutputDTO } from '../../types/generated/UpdateAvatarOutputDTO';
import type { UploadMediaOutputDTO } from '../../types/generated/UploadMediaOutputDTO';
import type { ValidateFaceInputDTO } from '../../types/generated/ValidateFaceInputDTO';
import type { ValidateFaceOutputDTO } from '../../types/generated/ValidateFaceOutputDTO';
import type { DeleteMediaOutputDTO } from '../../../types/generated/DeleteMediaOutputDTO';
import type { GetAvatarOutputDTO } from '../../../types/generated/GetAvatarOutputDTO';
import type { GetMediaOutputDTO } from '../../../types/generated/GetMediaOutputDTO';
import type { RequestAvatarGenerationInputDTO } from '../../../types/generated/RequestAvatarGenerationInputDTO';
import type { RequestAvatarGenerationOutputDTO } from '../../../types/generated/RequestAvatarGenerationOutputDTO';
import type { UpdateAvatarInputDTO } from '../../../types/generated/UpdateAvatarInputDTO';
import type { UpdateAvatarOutputDTO } from '../../../types/generated/UpdateAvatarOutputDTO';
import type { UploadMediaOutputDTO } from '../../../types/generated/UploadMediaOutputDTO';
import type { ValidateFaceInputDTO } from '../../../types/generated/ValidateFaceInputDTO';
import type { ValidateFaceOutputDTO } from '../../../types/generated/ValidateFaceOutputDTO';
import { BaseApiClient } from '../base/BaseApiClient';
/**

View File

@@ -1,11 +1,11 @@
import type { MemberPaymentDTO } from '../../../types/generated/MemberPaymentDTO';
import type { MembershipFeeDTO } from '../../../types/generated/MembershipFeeDTO';
import type { PaymentDTO } from '../../../types/generated/PaymentDTO';
import type { PrizeDTO } from '../../../types/generated/PrizeDTO';
import type { TransactionDTO } from '../../../types/generated/TransactionDTO';
import type { UpdatePaymentStatusInputDTO } from '../../../types/generated/UpdatePaymentStatusInputDTO';
import type { WalletDTO } from '../../../types/generated/WalletDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { MembershipFeeDTO } from '../../types/generated/MembershipFeeDTO';
import type { MemberPaymentDTO } from '../../types/generated/MemberPaymentDTO';
import type { PaymentDTO } from '../../types/generated/PaymentDTO';
import type { PrizeDTO } from '../../types/generated/PrizeDTO';
import type { TransactionDTO } from '../../types/generated/TransactionDTO';
import type { UpdatePaymentStatusInputDTO } from '../../types/generated/UpdatePaymentStatusInputDTO';
import type { WalletDTO } from '../../types/generated/WalletDTO';
// Define missing types that are not fully generated
type GetPaymentsOutputDto = { payments: PaymentDTO[] };

View File

@@ -1,7 +1,7 @@
import { ApplyPenaltyCommandDTO } from '../../../types/generated/ApplyPenaltyCommandDTO';
import { RacePenaltiesDTO } from '../../../types/generated/RacePenaltiesDTO';
import type { PenaltyTypesReferenceDTO } from '../../../types/PenaltyTypesReferenceDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import { RacePenaltiesDTO } from '../../types/generated/RacePenaltiesDTO';
import { ApplyPenaltyCommandDTO } from '../../types/generated/ApplyPenaltyCommandDTO';
import type { PenaltyTypesReferenceDTO } from '../../types/PenaltyTypesReferenceDTO';
/**
* Penalties API Client

View File

@@ -1,6 +1,6 @@
import type { ErrorReporter } from '../../../interfaces/ErrorReporter';
import type { Logger } from '../../../interfaces/Logger';
import { BaseApiClient } from '../base/BaseApiClient';
import type { ErrorReporter } from '../../interfaces/ErrorReporter';
import type { Logger } from '../../interfaces/Logger';
export type OperationalMode = 'normal' | 'maintenance' | 'test';
export type FeatureState = 'enabled' | 'disabled' | 'coming_soon' | 'hidden';

View File

@@ -1,9 +1,9 @@
import type { ApplyPenaltyCommandDTO } from '../../../types/generated/ApplyPenaltyCommandDTO';
import type { LeagueAdminProtestsDTO } from '../../../types/generated/LeagueAdminProtestsDTO';
import type { RaceProtestsDTO } from '../../../types/generated/RaceProtestsDTO';
import type { RequestProtestDefenseCommandDTO } from '../../../types/generated/RequestProtestDefenseCommandDTO';
import type { ReviewProtestCommandDTO } from '../../../types/generated/ReviewProtestCommandDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { ApplyPenaltyCommandDTO } from '../../types/generated/ApplyPenaltyCommandDTO';
import type { LeagueAdminProtestsDTO } from '../../types/generated/LeagueAdminProtestsDTO';
import type { RaceProtestsDTO } from '../../types/generated/RaceProtestsDTO';
import type { RequestProtestDefenseCommandDTO } from '../../types/generated/RequestProtestDefenseCommandDTO';
import type { ReviewProtestCommandDTO } from '../../types/generated/ReviewProtestCommandDTO';
/**
* Protests API Client

View File

@@ -1,17 +1,17 @@
import type { FileProtestCommandDTO } from '../../../types/generated/FileProtestCommandDTO';
import type { ImportRaceResultsDTO } from '../../../types/generated/ImportRaceResultsDTO';
import type { RaceDetailEntryDTO } from '../../../types/generated/RaceDetailEntryDTO';
import type { RaceDetailLeagueDTO } from '../../../types/generated/RaceDetailLeagueDTO';
import type { RaceDetailRaceDTO } from '../../../types/generated/RaceDetailRaceDTO';
import type { RaceDetailRegistrationDTO } from '../../../types/generated/RaceDetailRegistrationDTO';
import type { RaceDetailUserResultDTO } from '../../../types/generated/RaceDetailUserResultDTO';
import type { RaceResultsDetailDTO } from '../../../types/generated/RaceResultsDetailDTO';
import type { RaceStatsDTO } from '../../../types/generated/RaceStatsDTO';
import type { RaceWithSOFDTO } from '../../../types/generated/RaceWithSOFDTO';
import type { RacesPageDataRaceDTO } from '../../../types/generated/RacesPageDataRaceDTO';
import type { RegisterForRaceParamsDTO } from '../../../types/generated/RegisterForRaceParamsDTO';
import type { WithdrawFromRaceParamsDTO } from '../../../types/generated/WithdrawFromRaceParamsDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { RaceStatsDTO } from '../../types/generated/RaceStatsDTO';
import type { RacesPageDataRaceDTO } from '../../types/generated/RacesPageDataRaceDTO';
import type { RaceResultsDetailDTO } from '../../types/generated/RaceResultsDetailDTO';
import type { RaceWithSOFDTO } from '../../types/generated/RaceWithSOFDTO';
import type { RegisterForRaceParamsDTO } from '../../types/generated/RegisterForRaceParamsDTO';
import type { ImportRaceResultsDTO } from '../../types/generated/ImportRaceResultsDTO';
import type { WithdrawFromRaceParamsDTO } from '../../types/generated/WithdrawFromRaceParamsDTO';
import type { RaceDetailRaceDTO } from '../../types/generated/RaceDetailRaceDTO';
import type { RaceDetailLeagueDTO } from '../../types/generated/RaceDetailLeagueDTO';
import type { RaceDetailEntryDTO } from '../../types/generated/RaceDetailEntryDTO';
import type { RaceDetailRegistrationDTO } from '../../types/generated/RaceDetailRegistrationDTO';
import type { RaceDetailUserResultDTO } from '../../types/generated/RaceDetailUserResultDTO';
import type { FileProtestCommandDTO } from '../../types/generated/FileProtestCommandDTO';
// Define missing types
export type RacesPageDataDTO = { races: RacesPageDataRaceDTO[] };

View File

@@ -1,12 +1,12 @@
import type { AcceptSponsorshipRequestInputDTO } from '../../../types/generated/AcceptSponsorshipRequestInputDTO';
import type { CreateSponsorInputDTO } from '../../../types/generated/CreateSponsorInputDTO';
import type { GetPendingSponsorshipRequestsOutputDTO } from '../../../types/generated/GetPendingSponsorshipRequestsOutputDTO';
import type { GetSponsorOutputDTO } from '../../../types/generated/GetSponsorOutputDTO';
import type { RejectSponsorshipRequestInputDTO } from '../../../types/generated/RejectSponsorshipRequestInputDTO';
import type { SponsorDashboardDTO } from '../../../types/generated/SponsorDashboardDTO';
import type { SponsorDTO } from '../../../types/generated/SponsorDTO';
import type { SponsorSponsorshipsDTO } from '../../../types/generated/SponsorSponsorshipsDTO';
import { BaseApiClient } from '../base/BaseApiClient';
import type { CreateSponsorInputDTO } from '../../types/generated/CreateSponsorInputDTO';
import type { SponsorDashboardDTO } from '../../types/generated/SponsorDashboardDTO';
import type { SponsorSponsorshipsDTO } from '../../types/generated/SponsorSponsorshipsDTO';
import type { GetPendingSponsorshipRequestsOutputDTO } from '../../types/generated/GetPendingSponsorshipRequestsOutputDTO';
import type { AcceptSponsorshipRequestInputDTO } from '../../types/generated/AcceptSponsorshipRequestInputDTO';
import type { RejectSponsorshipRequestInputDTO } from '../../types/generated/RejectSponsorshipRequestInputDTO';
import type { GetSponsorOutputDTO } from '../../types/generated/GetSponsorOutputDTO';
import type { SponsorDTO } from '../../types/generated/SponsorDTO';
// Types that are not yet generated
export type CreateSponsorOutputDto = { id: string; name: string };

View File

@@ -2,10 +2,10 @@
* Enhanced Error Reporter with user notifications and environment-specific handling
*/
import { connectionMonitor } from '../gateways/api/base/ApiConnectionMonitor';
import { ApiError } from '../gateways/api/base/ApiError';
import { ErrorReporter } from '../interfaces/ErrorReporter';
import { Logger } from '../interfaces/Logger';
import { ApiError } from '../api/base/ApiError';
import { connectionMonitor } from '../api/base/ApiConnectionMonitor';
// Import notification system (will be used if available)
try {

View File

@@ -3,9 +3,9 @@
* Allows developers to replay errors with the exact same context
*/
import { getGlobalErrorHandler } from './GlobalErrorHandler';
import { ApiError } from '../gateways/api/base/ApiError';
import { getGlobalApiLogger } from './ApiRequestLogger';
import { ApiError } from '../api/base/ApiError';
import { getGlobalErrorHandler } from './GlobalErrorHandler';
export interface ReplayContext {
timestamp: string;
@@ -178,7 +178,7 @@ export class ErrorReplaySystem {
const error = replay.error.type === 'ApiError'
? new ApiError(
replay.error.message,
((replay.error.context as { type?: string } | undefined)?.type as import('../api/base/ApiError').ApiErrorType) || 'UNKNOWN_ERROR',
((replay.error.context as { type?: string } | undefined)?.type as import('../gateways/api/base/ApiError').ApiErrorType) || 'UNKNOWN_ERROR',
{
timestamp: replay.timestamp,
...(replay.error.context as Record<string, unknown> | undefined),

View File

@@ -3,10 +3,9 @@
* Captures all uncaught errors, promise rejections, and React errors
*/
import { ApiError } from '../api/base/ApiError';
import { getGlobalErrorReporter } from './EnhancedErrorReporter';
import { ConsoleLogger } from './logging/ConsoleLogger';
import { ApiError } from '../gateways/api/base/ApiError';
import { getGlobalReplaySystem } from './ErrorReplay';
import { ConsoleLogger } from './logging/ConsoleLogger';
export interface GlobalErrorHandlerOptions {
/**
@@ -38,7 +37,6 @@ export interface GlobalErrorHandlerOptions {
export class GlobalErrorHandler {
private options: GlobalErrorHandlerOptions;
private logger: ConsoleLogger;
private errorReporter: ReturnType<typeof getGlobalErrorReporter>;
private errorHistory: Array<{
error: Error | ApiError;
timestamp: string;
@@ -58,7 +56,6 @@ export class GlobalErrorHandler {
};
this.logger = new ConsoleLogger();
this.errorReporter = getGlobalErrorReporter();
}
/**

View File

@@ -1,8 +1,8 @@
'use client';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { useMutation, UseMutationOptions, useQueries, useQuery } from '@tanstack/react-query';
import React from 'react';
import { useQuery, useQueries, useMutation, UseMutationOptions } from '@tanstack/react-query';
import { ApiError } from '@/lib/api/base/ApiError';
export interface PageDataConfig<TData, TError = ApiError> {
queryKey: string[];

View File

@@ -1,12 +1,11 @@
import { injectable } from 'inversify';
import { AdminApiClient } from '@/lib/api/admin/AdminApiClient';
import type { UserDto, DashboardStats, UserListResponse } from '@/lib/types/admin';
import { Result } from '@/lib/contracts/Result';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { DashboardStats, UserDto, UserListResponse } from '@/lib/types/admin';
import { injectable } from 'inversify';
/**
* Admin Service - DTO Only
@@ -17,7 +16,6 @@ import { getWebsiteServerEnv } from '@/lib/config/env';
*/
@injectable()
export class AdminService implements Service {
private apiClient: AdminApiClient;
constructor() {
const baseUrl = getWebsiteApiBaseUrl();
@@ -28,7 +26,6 @@ export class AdminService implements Service {
logToConsole: true,
reportToExternal: NODE_ENV === 'production',
});
this.apiClient = new AdminApiClient(baseUrl, errorReporter, logger);
}
/**

View File

@@ -1,11 +1,11 @@
import { injectable, unmanaged } from 'inversify';
import { AnalyticsApiClient } from '@/lib/api/analytics/AnalyticsApiClient';
import { RecordPageViewOutputViewModel } from '@/lib/view-models/RecordPageViewOutputViewModel';
import { RecordEngagementOutputViewModel } from '@/lib/view-models/RecordEngagementOutputViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { AnalyticsApiClient } from '@/lib/gateways/api/analytics/AnalyticsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { RecordEngagementOutputViewModel } from '@/lib/view-models/RecordEngagementOutputViewModel';
import { RecordPageViewOutputViewModel } from '@/lib/view-models/RecordPageViewOutputViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class AnalyticsService implements Service {

View File

@@ -1,14 +1,14 @@
import { injectable } from 'inversify';
import { DashboardApiClient } from '@/lib/api/dashboard/DashboardApiClient';
import { AnalyticsApiClient } from '@/lib/api/analytics/AnalyticsApiClient';
import { DashboardOverviewDTO } from '@/lib/types/generated/DashboardOverviewDTO';
import { GetAnalyticsMetricsOutputDTO } from '@/lib/types/generated/GetAnalyticsMetricsOutputDTO';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { AnalyticsApiClient } from '@/lib/gateways/api/analytics/AnalyticsApiClient';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { DashboardApiClient } from '@/lib/gateways/api/dashboard/DashboardApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ApiError } from '@/lib/api/base/ApiError';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { DashboardOverviewDTO } from '@/lib/types/generated/DashboardOverviewDTO';
import { GetAnalyticsMetricsOutputDTO } from '@/lib/types/generated/GetAnalyticsMetricsOutputDTO';
import { injectable } from 'inversify';
/**
* DashboardService

View File

@@ -1,17 +1,15 @@
import { injectable, unmanaged } from 'inversify';
import { AuthApiClient } from '@/lib/api/auth/AuthApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { AuthApiClient } from '@/lib/gateways/api/auth/AuthApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import type { AuthSessionDTO } from '@/lib/types/generated/AuthSessionDTO';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { LoginParamsDTO } from '@/lib/types/generated/LoginParamsDTO';
import type { SignupParamsDTO } from '@/lib/types/generated/SignupParamsDTO';
import type { ForgotPasswordDTO } from '@/lib/types/generated/ForgotPasswordDTO';
import type { ResetPasswordDTO } from '@/lib/types/generated/ResetPasswordDTO';
import { isProductionEnvironment } from '@/lib/config/env';
import type { SignupParamsDTO } from '@/lib/types/generated/SignupParamsDTO';
import { SessionViewModel } from '@/lib/view-models/SessionViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Auth Service

View File

@@ -1,8 +1,8 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import type { Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';

View File

@@ -1,8 +1,8 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import type { Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';

View File

@@ -1,7 +1,7 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import type { Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';

View File

@@ -1,8 +1,8 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import type { DomainError, Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';

View File

@@ -1,11 +1,11 @@
import { injectable, unmanaged } from 'inversify';
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { DriverRegistrationStatusViewModel } from '@/lib/view-models/DriverRegistrationStatusViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { DriverRegistrationStatusViewData } from '@/lib/view-data/DriverRegistrationStatusViewData';
import { DriverRegistrationStatusViewModel } from '@/lib/view-models/DriverRegistrationStatusViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class DriverRegistrationService implements Service {

View File

@@ -1,18 +1,16 @@
import { injectable, unmanaged } from 'inversify';
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import type { CompleteOnboardingInputDTO } from '@/lib/types/generated/CompleteOnboardingInputDTO';
import type { GetDriverOutputDTO } from '@/lib/types/generated/GetDriverOutputDTO';
import type { CompleteOnboardingOutputDTO } from '@/lib/types/generated/CompleteOnboardingOutputDTO';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import type { CompleteOnboardingInputDTO } from '@/lib/types/generated/CompleteOnboardingInputDTO';
import type { DriverDTO } from '@/lib/types/generated/DriverDTO';
import type { GetDriverOutputDTO } from '@/lib/types/generated/GetDriverOutputDTO';
import type { GetDriverProfileOutputDTO } from '@/lib/types/generated/GetDriverProfileOutputDTO';
import { CompleteOnboardingViewModel } from '@/lib/view-models/CompleteOnboardingViewModel';
import { DriverLeaderboardViewModel } from '@/lib/view-models/DriverLeaderboardViewModel';
import { DriverViewModel } from '@/lib/view-models/DriverViewModel';
import { CompleteOnboardingViewModel } from '@/lib/view-models/CompleteOnboardingViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Driver Service - DTO Only

View File

@@ -1,8 +1,8 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import type { Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { DriversLeaderboardDTO } from '@/lib/types/generated/DriversLeaderboardDTO';

View File

@@ -1,9 +1,9 @@
import { getGlobalErrorHandler } from '@/lib/infrastructure/GlobalErrorHandler';
import { getGlobalApiLogger } from '@/lib/infrastructure/ApiRequestLogger';
import { ApiError } from '@/lib/api/base/ApiError';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { getGlobalApiLogger } from '@/lib/infrastructure/ApiRequestLogger';
import { getGlobalErrorHandler } from '@/lib/infrastructure/GlobalErrorHandler';
export interface ErrorStats {
totalErrors: number;

View File

@@ -1,9 +1,9 @@
import { FeatureFlagService } from '@/lib/feature/FeatureFlagService';
// API Clients
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { TeamsApiClient } from '@/lib/gateways/api/teams/TeamsApiClient';
// Services
import { SessionService } from '@/lib/services/auth/SessionService';

View File

@@ -1,15 +1,15 @@
import { injectable, unmanaged } from 'inversify';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { AuthApiClient } from '@/lib/api/auth/AuthApiClient';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { AuthApiClient } from '@/lib/gateways/api/auth/AuthApiClient';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { TeamsApiClient } from '@/lib/gateways/api/teams/TeamsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { HomeDiscoveryViewModel } from '@/lib/view-models/HomeDiscoveryViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Landing Service - DTO Only
@@ -71,7 +71,6 @@ export class LandingService implements Service {
async signup(_email: string): Promise<Result<void, DomainError>> {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const email = _email;
return Result.err({ type: 'notImplemented', message: 'Email signup endpoint' });
}
}

View File

@@ -1,11 +1,11 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { DriverLeaderboardItemDTO } from '@/lib/types/generated/DriverLeaderboardItemDTO';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
export interface DriverRankingsData {
drivers: DriverLeaderboardItemDTO[];

View File

@@ -1,11 +1,11 @@
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { TeamsApiClient } from '@/lib/gateways/api/teams/TeamsApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import type { LeaderboardsData } from '@/lib/types/LeaderboardsData';
export class LeaderboardsService implements Service {

View File

@@ -1,10 +1,10 @@
import { TeamsApiClient } from '@/lib/api/teams/TeamsApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { TeamsApiClient } from '@/lib/gateways/api/teams/TeamsApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import type { GetTeamsLeaderboardOutputDTO } from '@/lib/types/generated/GetTeamsLeaderboardOutputDTO';
export class TeamRankingsService implements Service {

View File

@@ -1,14 +1,14 @@
import { injectable, unmanaged } from 'inversify';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { isProductionEnvironment } from '@/lib/config/env';
import { LeagueMemberViewModel } from '@/lib/view-models/LeagueMemberViewModel';
import type { LeagueRosterMemberDTO } from '@/lib/types/generated/LeagueRosterMemberDTO';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { LeagueRosterJoinRequestDTO } from '@/lib/types/generated/LeagueRosterJoinRequestDTO';
import type { LeagueRosterMemberDTO } from '@/lib/types/generated/LeagueRosterMemberDTO';
import { LeagueMemberViewModel } from '@/lib/view-models/LeagueMemberViewModel';
import { injectable, unmanaged } from 'inversify';
export interface LeagueRosterAdminData {
leagueId: string;

View File

@@ -1,10 +1,10 @@
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { RulebookApiDto } from '@/lib/types/tbd/RulebookApiDto';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { RulebookApiDto } from '@/lib/types/tbd/RulebookApiDto';
export class LeagueRulebookService implements Service {
private apiClient: LeaguesApiClient;

View File

@@ -1,10 +1,10 @@
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { LeagueScheduleApiDto } from '@/lib/types/tbd/LeagueScheduleApiDto';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { LeagueScheduleApiDto } from '@/lib/types/tbd/LeagueScheduleApiDto';
export class LeagueScheduleService implements Service {
private apiClient: LeaguesApiClient;

View File

@@ -1,11 +1,11 @@
import { DriversApiClient } from "@/lib/api/drivers/DriversApiClient";
import { LeaguesApiClient } from "@/lib/api/leagues/LeaguesApiClient";
import { RacesApiClient } from "@/lib/api/races/RacesApiClient";
import { ApiError } from '@/lib/api/base/ApiError';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { isProductionEnvironment } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { DriversApiClient } from "@/lib/gateways/api/drivers/DriversApiClient";
import { LeaguesApiClient } from "@/lib/gateways/api/leagues/LeaguesApiClient";
import { RacesApiClient } from "@/lib/gateways/api/races/RacesApiClient";
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { AllLeaguesWithCapacityAndScoringDTO } from '@/lib/types/AllLeaguesWithCapacityAndScoringDTO';

View File

@@ -1,10 +1,10 @@
import { injectable, unmanaged } from 'inversify';
import { Result } from '@/lib/contracts/Result';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { type LeagueSettingsApiDto } from '@/lib/types/tbd/LeagueSettingsApiDto';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { LeagueSettingsViewModel } from '@/lib/view-models/LeagueSettingsViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class LeagueSettingsService implements Service {

View File

@@ -1,10 +1,10 @@
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { type LeagueStandingsApiDto, type LeagueMembershipsApiDto } from '@/lib/types/tbd/LeagueStandingsApiDto';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { type LeagueMembershipsApiDto, type LeagueStandingsApiDto } from '@/lib/types/tbd/LeagueStandingsApiDto';
export class LeagueStandingsService implements Service {
private apiClient: LeaguesApiClient;

View File

@@ -1,8 +1,8 @@
import { injectable, unmanaged } from 'inversify';
import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { WalletsApiClient } from '@/lib/gateways/api/wallets/WalletsApiClient';
import { LeagueWalletApiDto } from '@/lib/types/tbd/LeagueWalletApiDto';
import { WalletsApiClient } from '@/lib/api/wallets/WalletsApiClient';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class LeagueWalletService implements Service {

View File

@@ -1,9 +1,9 @@
import { injectable, unmanaged } from 'inversify';
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class LeagueWizardService implements Service {
@@ -30,7 +30,7 @@ export class LeagueWizardService implements Service {
return this.createLeague(form, ownerId);
}
async validateLeagueConfig(input: any): Promise<any> {
async validateLeagueConfig(): Promise<any> {
// Mock implementation or call API if available
return { valid: true };
}

View File

@@ -1,11 +1,11 @@
import { LeaguesApiClient } from '@/lib/api/leagues/LeaguesApiClient';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { LeagueMembershipsDTO } from '@/lib/types/generated/LeagueMembershipsDTO';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { AllLeaguesWithCapacityDTO } from '@/lib/types/generated/AllLeaguesWithCapacityDTO';
import { LeagueMembershipsDTO } from '@/lib/types/generated/LeagueMembershipsDTO';
export interface ProfileLeaguesPageDto {
ownedLeagues: Array<{

View File

@@ -1,12 +1,12 @@
import { injectable, unmanaged } from 'inversify';
import { MediaApiClient } from '@/lib/api/media/MediaApiClient';
import { RequestAvatarGenerationViewModel } from '@/lib/view-models/RequestAvatarGenerationViewModel';
import { AvatarViewModel } from '@/lib/view-models/AvatarViewModel';
import { UpdateAvatarViewModel } from '@/lib/view-models/UpdateAvatarViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { MediaApiClient } from '@/lib/gateways/api/media/MediaApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { AvatarViewModel } from '@/lib/view-models/AvatarViewModel';
import { RequestAvatarGenerationViewModel } from '@/lib/view-models/RequestAvatarGenerationViewModel';
import { UpdateAvatarViewModel } from '@/lib/view-models/UpdateAvatarViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class AvatarService implements Service {

View File

@@ -7,11 +7,11 @@
* @server-safe
*/
import { DriversApiClient } from '@/lib/api/drivers/DriversApiClient';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { getWebsiteServerEnv } from '@/lib/config/env';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { DriversApiClient } from '@/lib/gateways/api/drivers/DriversApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { CompleteOnboardingInputDTO } from '@/lib/types/generated/CompleteOnboardingInputDTO';
@@ -55,7 +55,7 @@ export class OnboardingService implements Service {
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async generateAvatars(input: RequestAvatarGenerationInputDTO): Promise<Result<RequestAvatarGenerationOutputDTO, DomainError>> {
async generateAvatars(_input: RequestAvatarGenerationInputDTO): Promise<Result<RequestAvatarGenerationOutputDTO, DomainError>> {
// Endpoint not implemented yet - return NotImplemented error
return Result.err({
type: 'notImplemented',

View File

@@ -1,10 +1,10 @@
import { injectable, unmanaged } from 'inversify';
import { PaymentsApiClient } from '@/lib/api/payments/PaymentsApiClient';
import { MembershipFeeViewModel } from '@/lib/view-models/MembershipFeeViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { PaymentsApiClient } from '@/lib/gateways/api/payments/PaymentsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { MembershipFeeViewModel } from '@/lib/view-models/MembershipFeeViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class MembershipFeeService implements Service {

View File

@@ -1,13 +1,13 @@
import { injectable, unmanaged } from 'inversify';
import { PaymentsApiClient } from '@/lib/api/payments/PaymentsApiClient';
import { PaymentViewModel } from '@/lib/view-models/PaymentViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Service } from '@/lib/contracts/services/Service';
import { PaymentsApiClient } from '@/lib/gateways/api/payments/PaymentsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { MembershipFeeViewModel } from '@/lib/view-models/MembershipFeeViewModel';
import { PaymentViewModel } from '@/lib/view-models/PaymentViewModel';
import { PrizeViewModel } from '@/lib/view-models/PrizeViewModel';
import { WalletViewModel } from '@/lib/view-models/WalletViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class PaymentService implements Service {

View File

@@ -1,10 +1,10 @@
import { injectable, unmanaged } from 'inversify';
import { PaymentsApiClient } from '@/lib/api/payments/PaymentsApiClient';
import { WalletViewModel } from '@/lib/view-models/WalletViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service } from '@/lib/contracts/services/Service';
import { PaymentsApiClient } from '@/lib/gateways/api/payments/PaymentsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { WalletViewModel } from '@/lib/view-models/WalletViewModel';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class WalletService implements Service {

View File

@@ -1,11 +1,11 @@
import { injectable, unmanaged } from 'inversify';
import { PenaltiesApiClient } from '@/lib/api/penalties/PenaltiesApiClient';
import type { PenaltyTypesReferenceDTO } from '@/lib/types/PenaltyTypesReferenceDTO';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { PenaltiesApiClient } from '@/lib/gateways/api/penalties/PenaltiesApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { PenaltyTypesReferenceDTO } from '@/lib/types/PenaltyTypesReferenceDTO';
import { injectable, unmanaged } from 'inversify';
/**
* Penalty Service

View File

@@ -1,10 +1,10 @@
import { injectable } from 'inversify';
import { PolicyApiClient, type FeatureState, type PolicySnapshotDto } from '@/lib/api/policy/PolicyApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { PolicyApiClient, type FeatureState, type PolicySnapshotDto } from '@/lib/gateways/api/policy/PolicyApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { injectable } from 'inversify';
export interface CapabilityEvaluationResult {
isLoading: boolean;

View File

@@ -1,16 +1,14 @@
import { injectable, unmanaged } from 'inversify';
import { ProtestsApiClient } from '@/lib/api/protests/ProtestsApiClient';
import type { ApplyPenaltyCommandDTO } from '@/lib/types/generated/ApplyPenaltyCommandDTO';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Service } from '@/lib/contracts/services/Service';
import { ProtestsApiClient } from '@/lib/gateways/api/protests/ProtestsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { RequestProtestDefenseCommandDTO } from '@/lib/types/generated/RequestProtestDefenseCommandDTO';
import type { ReviewProtestCommandDTO } from '@/lib/types/generated/ReviewProtestCommandDTO';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ProtestDriverViewModel } from '@/lib/view-models/ProtestDriverViewModel';
import { ProtestViewModel } from '@/lib/view-models/ProtestViewModel';
import { RaceViewModel } from '@/lib/view-models/RaceViewModel';
import { ProtestDriverViewModel } from '@/lib/view-models/ProtestDriverViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Protest Service - DTO Only

View File

@@ -1,14 +1,14 @@
import { injectable, unmanaged } from 'inversify';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ImportRaceResultsSummaryViewModel } from '@/lib/view-models/ImportRaceResultsSummaryViewModel';
import { RaceResultsDetailViewModel } from '@/lib/view-models/RaceResultsDetailViewModel';
import { RaceWithSOFViewModel } from '@/lib/view-models/RaceWithSOFViewModel';
import { ImportRaceResultsSummaryViewModel } from '@/lib/view-models/ImportRaceResultsSummaryViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Race Results Service

View File

@@ -1,11 +1,11 @@
import { injectable } from 'inversify';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { injectable } from 'inversify';
/**
* Race Service - DTO Only

View File

@@ -1,14 +1,14 @@
import { injectable, unmanaged } from 'inversify';
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { ProtestsApiClient } from '@/lib/api/protests/ProtestsApiClient';
import { PenaltiesApiClient } from '@/lib/api/penalties/PenaltiesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { PenaltiesApiClient } from '@/lib/gateways/api/penalties/PenaltiesApiClient';
import { ProtestsApiClient } from '@/lib/gateways/api/protests/ProtestsApiClient';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { RaceStewardingViewModel } from '@/lib/view-models/RaceStewardingViewModel';
import { injectable, unmanaged } from 'inversify';
/**
* Race Stewarding Service

View File

@@ -1,13 +1,13 @@
import { RacesApiClient } from '@/lib/api/races/RacesApiClient';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Result } from '@/lib/contracts/Result';
import { DomainError, Service } from '@/lib/contracts/services/Service';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { ApiError } from '@/lib/gateways/api/base/ApiError';
import type { RaceDetailDTO } from '@/lib/gateways/api/races/RacesApiClient';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ApiError } from '@/lib/api/base/ApiError';
import type { RacesPageDataDTO } from '@/lib/types/generated/RacesPageDataDTO';
import type { RaceDetailDTO } from '@/lib/api/races/RacesApiClient';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { RaceResultsDetailDTO } from '@/lib/types/generated/RaceResultsDetailDTO';
import type { RacesPageDataDTO } from '@/lib/types/generated/RacesPageDataDTO';
import type { RaceWithSOFDTO } from '@/lib/types/generated/RaceWithSOFDTO';
/**

View File

@@ -1,13 +1,13 @@
import { injectable } from 'inversify';
import { SponsorsApiClient } from '@/lib/api/sponsors/SponsorsApiClient';
import { SponsorViewModel } from '@/lib/view-models/SponsorViewModel';
import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { Result } from '@/lib/contracts/Result';
import { Service, type DomainError } from '@/lib/contracts/services/Service';
import { SponsorsApiClient } from '@/lib/gateways/api/sponsors/SponsorsApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { SponsorDashboardDTO } from '@/lib/types/generated/SponsorDashboardDTO';
import type { SponsorSponsorshipsDTO } from '@/lib/types/generated/SponsorSponsorshipsDTO';
import { SponsorViewModel } from '@/lib/view-models/SponsorViewModel';
import { injectable } from 'inversify';
@injectable()
export class SponsorService implements Service {

Some files were not shown because too many files have changed in this diff Show More