api client refactor

This commit is contained in:
2025-12-17 18:01:47 +01:00
parent bab55955e1
commit 4177644b18
190 changed files with 6403 additions and 1624 deletions

View File

@@ -0,0 +1,9 @@
import type { LeagueSummaryDto } from './LeagueSummaryDto';
/**
* All leagues with capacity transport object
* Contains a list of leagues with their capacity information
*/
export interface AllLeaguesWithCapacityDto {
leagues: LeagueSummaryDto[];
}

View File

@@ -0,0 +1,9 @@
import type { RaceListItemDto } from './RaceListItemDto';
/**
* All races page data transfer object
* List of all races for the races page
*/
export interface AllRacesPageDto {
races: RaceListItemDto[];
}

View File

@@ -0,0 +1,9 @@
import type { TeamSummaryDto } from './TeamSummaryDto';
/**
* All teams data transfer object
* List of all teams
*/
export interface AllTeamsDto {
teams: TeamSummaryDto[];
}

View File

@@ -0,0 +1,8 @@
/**
* Complete onboarding input data transfer object
* Input for completing driver onboarding
*/
export interface CompleteOnboardingInputDto {
iracingId: string;
displayName: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Complete onboarding output data transfer object
* Output from completing driver onboarding
*/
export interface CompleteOnboardingOutputDto {
driverId: string;
success: boolean;
}

View File

@@ -0,0 +1,11 @@
/**
* Create league input transport object
* Input data for creating a new league
*/
export interface CreateLeagueInputDto {
name: string;
description?: string;
isPublic: boolean;
maxMembers: number;
ownerId: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Create league output transport object
* Output data after creating a new league
*/
export interface CreateLeagueOutputDto {
leagueId: string;
success: boolean;
}

View File

@@ -0,0 +1,11 @@
/**
* Create payment input data transfer object
* Input for creating a payment
*/
export interface CreatePaymentInputDto {
amount: number;
currency: string;
leagueId: string;
driverId: string;
description?: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Create payment output data transfer object
* Output from creating a payment
*/
export interface CreatePaymentOutputDto {
paymentId: string;
success: boolean;
}

View File

@@ -0,0 +1,10 @@
/**
* Create sponsor input data transfer object
* Input for creating a new sponsor
*/
export interface CreateSponsorInputDto {
name: string;
logoUrl?: string;
websiteUrl?: string;
userId: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Create sponsor output data transfer object
* Output from creating a sponsor
*/
export interface CreateSponsorOutputDto {
sponsorId: string;
success: boolean;
}

View File

@@ -0,0 +1,9 @@
/**
* Create team input data transfer object
* Input for creating a new team
*/
export interface CreateTeamInputDto {
name: string;
description?: string;
ownerId: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Create team output data transfer object
* Output from creating a team
*/
export interface CreateTeamOutputDto {
teamId: string;
success: boolean;
}

View File

@@ -0,0 +1,11 @@
/**
* Driver transport object
* Represents a driver as received from the API
*/
export interface DriverDto {
id: string;
name: string;
avatarUrl?: string;
iracingId?: string;
rating?: number;
}

View File

@@ -0,0 +1,16 @@
/**
* Driver leaderboard item data transfer object
* Represents a driver in the global leaderboard
*/
export interface DriverLeaderboardItemDto {
id: string;
name: string;
avatarUrl?: string;
rating: number;
wins: number;
races: number;
skillLevel: string;
isActive: boolean;
nationality: string;
podiums: number;
}

View File

@@ -0,0 +1,9 @@
/**
* Driver registration status data transfer object
* Represents a driver's registration status for a race
*/
export interface DriverRegistrationStatusDto {
isRegistered: boolean;
raceId: string;
driverId: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Driver row data transfer object
* Represents a driver in a table row
*/
export interface DriverRowDto {
id: string;
name: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Driver stats data transfer object
* Global driver statistics
*/
export interface DriverStatsDto {
totalDrivers: number;
}

View File

@@ -0,0 +1,10 @@
/**
* Driver team data transfer object
* Represents a driver's team membership
*/
export interface DriverTeamDto {
teamId: string;
teamName: string;
role: string;
joinedAt: Date;
}

View File

@@ -0,0 +1,9 @@
import type { DriverLeaderboardItemDto } from './DriverLeaderboardItemDto';
/**
* Drivers leaderboard data transfer object
* Contains the list of top drivers
*/
export interface DriversLeaderboardDto {
drivers: DriverLeaderboardItemDto[];
}

View File

@@ -0,0 +1,9 @@
/**
* Get entity sponsorship pricing result data transfer object
* Pricing information for sponsorship slots
*/
export interface GetEntitySponsorshipPricingResultDto {
mainSlotPrice: number;
secondarySlotPrice: number;
currency: string;
}

View File

@@ -0,0 +1,11 @@
import type { MembershipFeeDto } from './MembershipFeeDto';
import type { MemberPaymentDto } from './MemberPaymentDto';
/**
* Get membership fees output data transfer object
* Output containing membership fees and payments
*/
export interface GetMembershipFeesOutputDto {
fees: MembershipFeeDto[];
memberPayments: MemberPaymentDto[];
}

View File

@@ -0,0 +1,9 @@
import type { PaymentDto } from './PaymentDto';
/**
* Get payments output data transfer object
* Output containing list of payments
*/
export interface GetPaymentsOutputDto {
payments: PaymentDto[];
}

View File

@@ -0,0 +1,9 @@
import type { PrizeDto } from './PrizeDto';
/**
* Get prizes output data transfer object
* Output containing list of prizes
*/
export interface GetPrizesOutputDto {
prizes: PrizeDto[];
}

View File

@@ -0,0 +1,9 @@
import type { SponsorDto } from './SponsorDto';
/**
* Get sponsors output data transfer object
* Output containing list of sponsors
*/
export interface GetSponsorsOutputDto {
sponsors: SponsorDto[];
}

View File

@@ -0,0 +1,9 @@
import type { WalletDto } from './WalletDto';
/**
* Get wallet output data transfer object
* Output containing wallet information
*/
export interface GetWalletOutputDto {
wallet: WalletDto;
}

View File

@@ -0,0 +1,7 @@
/**
* Import race results input data transfer object
* Input for importing race results
*/
export interface ImportRaceResultsInputDto {
resultsFileContent: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Import race results summary data transfer object
* Summary of race results import operation
*/
export interface ImportRaceResultsSummaryDto {
success: boolean;
raceId: string;
driversProcessed: number;
resultsRecorded: number;
errors?: string[];
}

View File

@@ -0,0 +1,13 @@
/**
* Import result row data transfer object
* Represents a row in imported race results
*/
export interface ImportResultRowDto {
id: string;
raceId: string;
driverId: string;
position: number;
fastestLap: number;
incidents: number;
startPosition: number;
}

View File

@@ -0,0 +1,13 @@
import type { LeagueMemberDto } from './LeagueMemberDto';
import type { LeagueJoinRequestDto } from './LeagueJoinRequestDto';
import type { LeagueConfigFormModelDto } from './LeagueConfigFormModelDto';
/**
* League admin transport object
* Contains all data needed for league administration
*/
export interface LeagueAdminDto {
config: LeagueConfigFormModelDto;
members: LeagueMemberDto[];
joinRequests: LeagueJoinRequestDto[];
}

View File

@@ -0,0 +1,12 @@
/**
* League admin permissions transport object
* Defines the administrative permissions for a user in a league
*/
export interface LeagueAdminPermissionsDto {
canManageMembers: boolean;
canManageRaces: boolean;
canManageSettings: boolean;
canManageProtests: boolean;
isOwner: boolean;
isAdmin: boolean;
}

View File

@@ -0,0 +1,9 @@
import type { ProtestViewModel } from '../apiClient';
/**
* League admin protests transport object
* Contains protests for league administration
*/
export interface LeagueAdminProtestsDto {
protests: ProtestViewModel[];
}

View File

@@ -0,0 +1,12 @@
/**
* League configuration form model transport object
* Used for league configuration forms
*/
export interface LeagueConfigFormModelDto {
id: string;
name: string;
description?: string;
isPublic: boolean;
maxMembers: number;
// Add other config fields as needed
}

View File

@@ -0,0 +1,11 @@
/**
* League join request transport object
* Represents a driver's request to join a league
*/
export interface LeagueJoinRequestDto {
id: string;
leagueId: string;
driverId: string;
requestedAt: Date;
message?: string;
}

View File

@@ -0,0 +1,12 @@
import type { DriverDto } from './DriverDto';
/**
* League member data transfer object
* Represents a driver's membership in a league
*/
export interface LeagueMemberDto {
driverId: string;
driver?: DriverDto;
role: string;
joinedAt: string;
}

View File

@@ -0,0 +1,9 @@
import type { LeagueMemberViewModel } from '../apiClient';
/**
* League memberships transport object
* Contains the list of league members
*/
export interface LeagueMembershipsDto {
members: LeagueMemberViewModel[];
}

View File

@@ -0,0 +1,10 @@
/**
* League owner summary transport object
* Summary information for league owners
*/
export interface LeagueOwnerSummaryDto {
leagueId: string;
leagueName: string;
memberCount: number;
pendingRequests: number;
}

View File

@@ -0,0 +1,9 @@
import type { ScheduledRaceViewModel } from '../apiClient';
/**
* League schedule transport object
* Contains the scheduled races for a league
*/
export interface LeagueScheduleDto {
races: ScheduledRaceViewModel[];
}

View File

@@ -0,0 +1,11 @@
/**
* League season summary data transfer object
* Represents a season within a league
*/
export interface LeagueSeasonSummaryDto {
id: string;
name: string;
startDate?: string;
endDate?: string;
status: string;
}

View File

@@ -0,0 +1,13 @@
import type { StandingEntryDto } from './StandingEntryDto';
import type { DriverDto } from './DriverDto';
import type { LeagueMembership } from './LeagueMembershipDto';
/**
* League standings transport object
* Contains the current league standings
*/
export interface LeagueStandingsDto {
standings: StandingEntryDto[];
drivers: DriverDto[];
memberships: LeagueMembership[];
}

View File

@@ -0,0 +1,13 @@
/**
* League stats DTO
* Contains statistical information about a league's races
*/
export interface LeagueStatsDto {
leagueId: string;
totalRaces: number;
completedRaces: number;
scheduledRaces: number;
averageSOF?: number;
highestSOF?: number;
lowestSOF?: number;
}

View File

@@ -0,0 +1,18 @@
/**
* League summary transport object
* Contains basic league information for list views
*/
export interface LeagueSummaryDto {
id: string;
name: string;
description?: string;
logoUrl?: string;
coverImage?: string;
memberCount: number;
maxMembers: number;
isPublic: boolean;
ownerId: string;
ownerName?: string;
scoringType?: string;
status?: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Login parameters data transfer object
* Parameters for user login
*/
export interface LoginParamsDto {
email: string;
password: string;
}

View File

@@ -0,0 +1,10 @@
/**
* Member payment data transfer object
* Represents a payment made by a league member
*/
export interface MemberPaymentDto {
driverId: string;
amount: number;
paidAt: string;
status: string;
}

View File

@@ -0,0 +1,10 @@
/**
* Membership fee data transfer object
* Represents a membership fee for a league
*/
export interface MembershipFeeDto {
leagueId: string;
amount: number;
currency: string;
period: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Payment data transfer object
* Represents a payment transaction
*/
export interface PaymentDto {
id: string;
amount: number;
currency: string;
status: string;
createdAt: string;
}

View File

@@ -0,0 +1,11 @@
import type { PenaltyTypeDto } from './PenaltyTypeDto';
/**
* Penalty data structure
* Used when creating or updating penalties
*/
export interface PenaltyDataDto {
driverId: string;
type: PenaltyTypeDto;
value?: number;
}

View File

@@ -0,0 +1,11 @@
/**
* Penalty type enumeration
* Defines all possible penalty types in the system
*/
export type PenaltyTypeDto =
| 'time_penalty'
| 'grid_penalty'
| 'points_deduction'
| 'disqualification'
| 'warning'
| 'license_points';

View File

@@ -0,0 +1,11 @@
/**
* Prize data transfer object
* Represents a prize in a league
*/
export interface PrizeDto {
id: string;
name: string;
amount: number;
currency: string;
position?: number;
}

View File

@@ -0,0 +1,13 @@
/**
* Protest data transfer object
* Represents a protest filed in a race
*/
export interface ProtestDto {
id: string;
raceId: string;
complainantId: string;
defendantId: string;
description: string;
status: string;
createdAt: string;
}

View File

@@ -0,0 +1,18 @@
import type { RaceDetailRaceDto } from './RaceDetailRaceDto';
import type { RaceDetailLeagueDto } from './RaceDetailLeagueDto';
import type { RaceDetailEntryDto } from './RaceDetailEntryDto';
import type { RaceDetailRegistrationDto } from './RaceDetailRegistrationDto';
import type { RaceDetailUserResultDto } from './RaceDetailUserResultDto';
/**
* Race detail data transfer object
* Complete race details view
*/
export interface RaceDetailDto {
race: RaceDetailRaceDto | null;
league: RaceDetailLeagueDto | null;
entryList: RaceDetailEntryDto[];
registration: RaceDetailRegistrationDto;
userResult: RaceDetailUserResultDto | null;
error?: string;
}

View File

@@ -0,0 +1,12 @@
/**
* Race detail entry data transfer object
* Represents an entry in race details
*/
export interface RaceDetailEntryDto {
id: string;
name: string;
country: string;
avatarUrl: string;
rating: number | null;
isCurrentUser: boolean;
}

View File

@@ -0,0 +1,13 @@
/**
* Race detail league data transfer object
* League information in race details
*/
export interface RaceDetailLeagueDto {
id: string;
name: string;
description: string;
settings: {
maxDrivers?: number;
qualifyingFormat?: string;
};
}

View File

@@ -0,0 +1,16 @@
/**
* Race detail race data transfer object
* Race information in race details
*/
export interface RaceDetailRaceDto {
id: string;
leagueId: string;
track: string;
car: string;
scheduledAt: string;
sessionType: string;
status: string;
strengthOfField: number | null;
registeredCount?: number;
maxParticipants?: number;
}

View File

@@ -0,0 +1,8 @@
/**
* Race detail registration data transfer object
* Registration information in race details
*/
export interface RaceDetailRegistrationDto {
isUserRegistered: boolean;
canRegister: boolean;
}

View File

@@ -0,0 +1,14 @@
/**
* Race detail user result data transfer object
* Represents the current user's result in race details
*/
export interface RaceDetailUserResultDto {
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
ratingChange: number | null;
}

View File

@@ -0,0 +1,13 @@
/**
* Race list item data transfer object
* Represents a race in list views
*/
export interface RaceListItemDto {
id: string;
name: string;
leagueId: string;
leagueName: string;
scheduledTime: string;
status: string;
trackName?: string;
}

View File

@@ -0,0 +1,10 @@
import type { RacePenaltyDto } from './RacePenaltyDto';
/**
* Race penalties data transfer object
* List of penalties for a race
*/
export interface RacePenaltiesDto {
penalties: RacePenaltyDto[];
driverMap: Record<string, string>;
}

View File

@@ -0,0 +1,14 @@
/**
* Race penalty data transfer object
* Represents a penalty issued in a race
*/
export interface RacePenaltyDto {
id: string;
driverId: string;
type: string;
value: number;
reason: string;
issuedBy: string;
issuedAt: string;
notes?: string;
}

View File

@@ -0,0 +1,15 @@
/**
* Race protest data transfer object
* Represents a protest filed for a race
*/
export interface RaceProtestDto {
id: string;
protestingDriverId: string;
accusedDriverId: string;
incident: {
lap: number;
description: string;
};
status: string;
filedAt: string;
}

View File

@@ -0,0 +1,10 @@
import type { RaceProtestDto } from './RaceProtestDto';
/**
* Race protests data transfer object
* List of protests for a race
*/
export interface RaceProtestsDto {
protests: RaceProtestDto[];
driverMap: Record<string, string>;
}

View File

@@ -0,0 +1,18 @@
/**
* Race result data transfer object
* Represents a driver's result in a race
*/
export interface RaceResultDto {
id: string;
raceId: string;
driverId: string;
driverName: string;
avatarUrl: string;
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
}

View File

@@ -0,0 +1,13 @@
/**
* Race result row data transfer object
* Represents a row in race results table
*/
export interface RaceResultRowDto {
id: string;
raceId: string;
driverId: string;
position: number;
fastestLap: number;
incidents: number;
startPosition: number;
}

View File

@@ -0,0 +1,18 @@
import type { RaceResultDto } from './RaceResultDto';
/**
* Race results detail data transfer object
* Detailed results for a race
*/
export interface RaceResultsDetailDto {
raceId: string;
track: string;
results: RaceResultDto[];
league?: { id: string; name: string };
race?: { id: string; track: string; scheduledAt: string };
drivers: { id: string; name: string }[];
pointsSystem: Record<number, number>;
fastestLapTime: number;
penalties: { driverId: string; type: string; value?: number }[];
currentDriverId: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Race stats data transfer object
* Global race statistics
*/
export interface RaceStatsDto {
totalRaces: number;
}

View File

@@ -0,0 +1,9 @@
/**
* Race with strength of field data transfer object
* Race information including SOF
*/
export interface RaceWithSOFDto {
id: string;
track: string;
strengthOfField: number | null;
}

View File

@@ -0,0 +1,9 @@
import type { RacesPageDataRaceDto } from './RacesPageDataRaceDto';
/**
* Races page data data transfer object
* Data for the races page
*/
export interface RacesPageDataDto {
races: RacesPageDataRaceDto[];
}

View File

@@ -0,0 +1,17 @@
/**
* Races page data race data transfer object
* Race information for the races page
*/
export interface RacesPageDataRaceDto {
id: string;
track: string;
car: string;
scheduledAt: string;
status: string;
leagueId: string;
leagueName: string;
strengthOfField: number | null;
isUpcoming: boolean;
isLive: boolean;
isPast: boolean;
}

View File

@@ -0,0 +1,10 @@
/**
* Record engagement input data transfer object
* Input for recording an engagement event
*/
export interface RecordEngagementInputDto {
eventType: string;
eventData?: Record<string, unknown>;
userId?: string;
sessionId?: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Record engagement output data transfer object
* Output from recording an engagement event
*/
export interface RecordEngagementOutputDto {
success: boolean;
}

View File

@@ -0,0 +1,9 @@
/**
* Record page view input data transfer object
* Input for recording a page view event
*/
export interface RecordPageViewInputDto {
path: string;
userId?: string;
sessionId?: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Record page view output data transfer object
* Output from recording a page view
*/
export interface RecordPageViewOutputDto {
success: boolean;
}

View File

@@ -0,0 +1,8 @@
/**
* Register for race input data transfer object
* Input for registering a driver for a race
*/
export interface RegisterForRaceInputDto {
leagueId: string;
driverId: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Request avatar generation input data transfer object
* Input for requesting avatar generation
*/
export interface RequestAvatarGenerationInputDto {
driverId: string;
style?: string;
}

View File

@@ -0,0 +1,9 @@
/**
* Request avatar generation output data transfer object
* Output from avatar generation request
*/
export interface RequestAvatarGenerationOutputDto {
success: boolean;
avatarUrl?: string;
error?: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Scheduled race data transfer object
* Represents a race scheduled in a league
*/
export interface ScheduledRaceDto {
id: string;
name: string;
scheduledTime: string;
status: string;
trackName?: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Session data data transfer object
* User session information
*/
export interface SessionDataDto {
userId: string;
email: string;
displayName?: string;
driverId?: string;
isAuthenticated: boolean;
}

View File

@@ -0,0 +1,9 @@
/**
* Signup parameters data transfer object
* Parameters for user signup
*/
export interface SignupParamsDto {
email: string;
password: string;
displayName: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Sponsor dashboard data transfer object
* Dashboard information for a sponsor
*/
export interface SponsorDashboardDto {
sponsorId: string;
sponsorName: string;
totalSponsorships: number;
activeSponsorships: number;
totalInvestment: number;
}

View File

@@ -0,0 +1,10 @@
/**
* Sponsor data transfer object
* Represents a sponsor entity
*/
export interface SponsorDto {
id: string;
name: string;
logoUrl?: string;
websiteUrl?: string;
}

View File

@@ -0,0 +1,11 @@
import type { SponsorshipDetailDto } from './SponsorshipDetailDto';
/**
* Sponsor sponsorships data transfer object
* Sponsorships associated with a sponsor
*/
export interface SponsorSponsorshipsDto {
sponsorId: string;
sponsorName: string;
sponsorships: SponsorshipDetailDto[];
}

View File

@@ -0,0 +1,14 @@
/**
* Sponsorship detail data transfer object
* Details of a sponsorship
*/
export interface SponsorshipDetailDto {
id: string;
leagueId: string;
leagueName: string;
seasonId: string;
tier: 'main' | 'secondary';
status: string;
amount: number;
currency: string;
}

View File

@@ -0,0 +1,15 @@
import type { DriverDto } from './DriverDto';
/**
* Standing entry data transfer object
* Represents a driver's standing in league standings
*/
export interface StandingEntryDto {
driverId: string;
driver?: DriverDto;
position: number;
points: number;
wins: number;
podiums: number;
races: number;
}

View File

@@ -0,0 +1,15 @@
import type { TeamMemberDto } from './TeamMemberDto';
/**
* Team details data transfer object
* Detailed information about a team
*/
export interface TeamDetailsDto {
id: string;
name: string;
description?: string;
logoUrl?: string;
memberCount: number;
ownerId: string;
members: TeamMemberDto[];
}

View File

@@ -0,0 +1,11 @@
/**
* Team join request item data transfer object
* Represents a request to join a team
*/
export interface TeamJoinRequestItemDto {
id: string;
teamId: string;
driverId: string;
requestedAt: string;
message?: string;
}

View File

@@ -0,0 +1,9 @@
import type { TeamJoinRequestItemDto } from './TeamJoinRequestItemDto';
/**
* Team join requests data transfer object
* List of join requests for a team
*/
export interface TeamJoinRequestsDto {
requests: TeamJoinRequestItemDto[];
}

View File

@@ -0,0 +1,12 @@
import type { DriverDto } from './DriverDto';
/**
* Team member data transfer object
* Represents a driver's membership in a team
*/
export interface TeamMemberDto {
driverId: string;
driver?: DriverDto;
role: string;
joinedAt: string;
}

View File

@@ -0,0 +1,9 @@
import type { TeamMemberDto } from './TeamMemberDto';
/**
* Team members data transfer object
* List of team members
*/
export interface TeamMembersDto {
members: TeamMemberDto[];
}

View File

@@ -0,0 +1,11 @@
/**
* Team summary data transfer object
* Basic information about a team
*/
export interface TeamSummaryDto {
id: string;
name: string;
logoUrl?: string;
memberCount: number;
rating: number;
}

View File

@@ -0,0 +1,9 @@
/**
* Update team input data transfer object
* Input for updating team information
*/
export interface UpdateTeamInputDto {
name?: string;
description?: string;
logoUrl?: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Update team output data transfer object
* Output from updating team information
*/
export interface UpdateTeamOutputDto {
success: boolean;
}

View File

@@ -0,0 +1,12 @@
import type { WalletTransactionDto } from './WalletTransactionDto';
/**
* Wallet data transfer object
* Represents a driver's wallet
*/
export interface WalletDto {
driverId: string;
balance: number;
currency: string;
transactions: WalletTransactionDto[];
}

View File

@@ -0,0 +1,11 @@
/**
* Wallet transaction data transfer object
* Represents a transaction in a driver's wallet
*/
export interface WalletTransactionDto {
id: string;
type: 'deposit' | 'withdrawal';
amount: number;
description?: string;
createdAt: string;
}

View File

@@ -0,0 +1,7 @@
/**
* Withdraw from race input data transfer object
* Input for withdrawing a driver from a race
*/
export interface WithdrawFromRaceInputDto {
driverId: string;
}

View File

@@ -0,0 +1,113 @@
// Common DTOs
export type { DriverDto } from './DriverDto';
export type { PenaltyDataDto } from './PenaltyDataDto';
export type { PenaltyTypeDto } from './PenaltyTypeDto';
export type { ProtestDto } from './ProtestDto';
export type { StandingEntryDto } from './StandingEntryDto';
// Analytics DTOs
export type { RecordEngagementInputDto } from './RecordEngagementInputDto';
export type { RecordEngagementOutputDto } from './RecordEngagementOutputDto';
export type { RecordPageViewInputDto } from './RecordPageViewInputDto';
export type { RecordPageViewOutputDto } from './RecordPageViewOutputDto';
// Auth DTOs
export type { LoginParamsDto } from './LoginParamsDto';
export type { SessionDataDto } from './SessionDataDto';
export type { SignupParamsDto } from './SignupParamsDto';
// League DTOs
export type { AllLeaguesWithCapacityDto } from './AllLeaguesWithCapacityDto';
export type { CreateLeagueInputDto } from './CreateLeagueInputDto';
export type { CreateLeagueOutputDto } from './CreateLeagueOutputDto';
export type { LeagueAdminDto } from './LeagueAdminDto';
export type { LeagueAdminPermissionsDto } from './LeagueAdminPermissionsDto';
export type { LeagueAdminProtestsDto } from './LeagueAdminProtestsDto';
export type { LeagueConfigFormModelDto } from './LeagueConfigFormModelDto';
export type { LeagueJoinRequestDto } from './LeagueJoinRequestDto';
export type { LeagueMembershipsDto } from './LeagueMembershipsDto';
export type { LeagueMemberDto } from './LeagueMemberDto';
export type { LeagueOwnerSummaryDto } from './LeagueOwnerSummaryDto';
export type { LeagueScheduleDto } from './LeagueScheduleDto';
export type { LeagueSeasonSummaryDto } from './LeagueSeasonSummaryDto';
export type { LeagueStandingsDto } from './LeagueStandingsDto';
export type { LeagueStatsDto } from './LeagueStatsDto';
export type { LeagueSummaryDto } from './LeagueSummaryDto';
// Race DTOs
export type { AllRacesPageDto } from './AllRacesPageDto';
export type { ImportRaceResultsInputDto } from './ImportRaceResultsInputDto';
export type { ImportRaceResultsSummaryDto } from './ImportRaceResultsSummaryDto';
export type { RaceDetailDto } from './RaceDetailDto';
export type { RaceDetailEntryDto } from './RaceDetailEntryDto';
export type { RaceDetailLeagueDto } from './RaceDetailLeagueDto';
export type { RaceDetailRaceDto } from './RaceDetailRaceDto';
export type { RaceDetailRegistrationDto } from './RaceDetailRegistrationDto';
export type { RaceDetailUserResultDto } from './RaceDetailUserResultDto';
export type { RaceListItemDto } from './RaceListItemDto';
export type { RacePenaltiesDto } from './RacePenaltiesDto';
export type { RacePenaltyDto } from './RacePenaltyDto';
export type { RaceProtestsDto } from './RaceProtestsDto';
export type { RaceProtestDto } from './RaceProtestDto';
export type { RaceResultDto } from './RaceResultDto';
export type { RaceResultRowDto } from './RaceResultRowDto';
export type { RaceResultsDetailDto } from './RaceResultsDetailDto';
export type { RaceStatsDto } from './RaceStatsDto';
export type { RaceWithSOFDto } from './RaceWithSOFDto';
export type { RacesPageDataDto } from './RacesPageDataDto';
export type { RacesPageDataRaceDto } from './RacesPageDataRaceDto';
export type { RegisterForRaceInputDto } from './RegisterForRaceInputDto';
export type { ScheduledRaceDto } from './ScheduledRaceDto';
export type { WithdrawFromRaceInputDto } from './WithdrawFromRaceInputDto';
// Driver DTOs
export type { CompleteOnboardingInputDto } from './CompleteOnboardingInputDto';
export type { CompleteOnboardingOutputDto } from './CompleteOnboardingOutputDto';
export type { DriverLeaderboardItemDto } from './DriverLeaderboardItemDto';
export type { DriverRegistrationStatusDto } from './DriverRegistrationStatusDto';
export type { DriverRowDto } from './DriverRowDto';
export type { DriverStatsDto } from './DriverStatsDto';
export type { DriverTeamDto } from './DriverTeamDto';
export type { DriversLeaderboardDto } from './DriversLeaderboardDto';
// Team DTOs
export type { AllTeamsDto } from './AllTeamsDto';
export type { CreateTeamInputDto } from './CreateTeamInputDto';
export type { CreateTeamOutputDto } from './CreateTeamOutputDto';
export type { TeamDetailsDto } from './TeamDetailsDto';
export type { TeamJoinRequestItemDto } from './TeamJoinRequestItemDto';
export type { TeamJoinRequestsDto } from './TeamJoinRequestsDto';
export type { TeamMemberDto } from './TeamMemberDto';
export type { TeamMembersDto } from './TeamMembersDto';
export type { TeamSummaryDto } from './TeamSummaryDto';
export type { UpdateTeamInputDto } from './UpdateTeamInputDto';
export type { UpdateTeamOutputDto } from './UpdateTeamOutputDto';
// Sponsor DTOs
export type { CreateSponsorInputDto } from './CreateSponsorInputDto';
export type { CreateSponsorOutputDto } from './CreateSponsorOutputDto';
export type { GetEntitySponsorshipPricingResultDto } from './GetEntitySponsorshipPricingResultDto';
export type { GetSponsorsOutputDto } from './GetSponsorsOutputDto';
export type { SponsorDashboardDto } from './SponsorDashboardDto';
export type { SponsorDto } from './SponsorDto';
export type { SponsorshipDetailDto } from './SponsorshipDetailDto';
export type { SponsorSponsorshipsDto } from './SponsorSponsorshipsDto';
// Media DTOs
export type { RequestAvatarGenerationInputDto } from './RequestAvatarGenerationInputDto';
export type { RequestAvatarGenerationOutputDto } from './RequestAvatarGenerationOutputDto';
// Payments DTOs
export type { CreatePaymentInputDto } from './CreatePaymentInputDto';
export type { CreatePaymentOutputDto } from './CreatePaymentOutputDto';
export type { GetMembershipFeesOutputDto } from './GetMembershipFeesOutputDto';
export type { GetPaymentsOutputDto } from './GetPaymentsOutputDto';
export type { GetPrizesOutputDto } from './GetPrizesOutputDto';
export type { GetWalletOutputDto } from './GetWalletOutputDto';
export type { ImportResultRowDto } from './ImportResultRowDto';
export type { MemberPaymentDto } from './MemberPaymentDto';
export type { MembershipFeeDto } from './MembershipFeeDto';
export type { PaymentDto } from './PaymentDto';
export type { PrizeDto } from './PrizeDto';
export type { WalletDto } from './WalletDto';
export type { WalletTransactionDto } from './WalletTransactionDto';