services refactor

This commit is contained in:
2025-12-17 23:37:51 +01:00
parent 1eaa338e86
commit f7a56a92ce
94 changed files with 1894 additions and 3194 deletions

View File

@@ -1,14 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface AllLeaguesWithCapacityAndScoringDTO {
type: [LeagueSummaryDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => LeagueSummaryDTO)
leagues: LeagueSummaryDTO[];
totalCount: number;
}

View File

@@ -1,14 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface AllLeaguesWithCapacityDTO {
type: [LeagueWithCapacityDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => LeagueWithCapacityDTO)
leagues: LeagueWithCapacityDTO[];
totalCount: number;
}

View File

@@ -5,6 +5,8 @@
*/
export interface ApplyPenaltyCommandDTO {
raceId: string;
driverId: string;
stewardId: string;
enum: string;
required: string;
}

View File

@@ -6,5 +6,4 @@
export interface ApproveJoinRequestOutputDTO {
success: boolean;
required: string;
}

View File

@@ -4,10 +4,9 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
import type { AuthenticatedUserDTO } from './AuthenticatedUserDTO';
export interface AuthSessionDTO {
iracingCustomerId?: string;
primaryDriverId?: string;
avatarUrl?: string;
returnTo?: string;
required: string;
token: string;
user: AuthenticatedUserDTO;
}

View File

@@ -5,9 +5,7 @@
*/
export interface AuthenticatedUserDTO {
iracingCustomerId?: string;
primaryDriverId?: string;
avatarUrl?: string;
returnTo?: string;
required: string;
userId: string;
email: string;
displayName: string;
}

View File

@@ -9,5 +9,4 @@ export interface CompleteOnboardingInputDTO {
lastName: string;
displayName: string;
country: string;
required: string;
}

View File

@@ -6,5 +6,4 @@
export interface CompleteOnboardingOutputDTO {
success: boolean;
required: string;
}

View File

@@ -7,6 +7,4 @@
export interface CreateLeagueInputDTO {
name: string;
description: string;
enum: string;
ownerId: string;
}

View File

@@ -7,5 +7,4 @@
export interface CreateSponsorInputDTO {
name: string;
contactEmail: string;
required: string;
}

View File

@@ -1,11 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface CreateSponsorOutputDTO {
sponsor: SponsorDTO;
type: SponsorDTO })
sponsor: SponsorDTO;
}

View File

@@ -5,5 +5,8 @@
*/
export interface DashboardDriverSummaryDTO {
nullable: string;
id: string;
name: string;
country: string;
avatarUrl: string;
}

View File

@@ -5,6 +5,6 @@
*/
export interface DashboardFeedItemSummaryDTO {
id: string;
enum: string;
required: string;
}

View File

@@ -5,6 +5,5 @@
*/
export interface DashboardFeedSummaryDTO {
type: [DashboardFeedItemSummaryDTO] })
items!: DashboardFeedItemSummaryDTO[];
notificationCount: number;
}

View File

@@ -4,10 +4,9 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface DriverDto {
export interface DashboardFriendSummaryDTO {
id: string;
name: string;
avatarUrl?: string;
iracingId?: string;
rating?: number;
country: string;
avatarUrl: string;
}

View File

@@ -4,10 +4,10 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface CreatePaymentInputDTO {
enum: string;
amount: number;
payerId: string;
export interface DashboardLeagueStandingSummaryDTO {
leagueId: string;
required: string;
leagueName: string;
position: number;
totalDrivers: number;
points: number;
}

View File

@@ -1,12 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface DashboardOverviewDTO {
nullable: true })
currentDriver!: DashboardDriverSummaryDTO null;
type: [DashboardRaceSummaryDTO] })
myUpcomingRaces!: DashboardRaceSummaryDTO[];
}

View File

@@ -5,5 +5,10 @@
*/
export interface DashboardRaceSummaryDTO {
enum: string;
id: string;
leagueId: string;
leagueName: string;
track: string;
car: string;
scheduledAt: string;
}

View File

@@ -0,0 +1,15 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface DashboardRecentResultDTO {
raceId: string;
raceName: string;
leagueId: string;
leagueName: string;
finishedAt: string;
position: number;
incidents: number;
}

View File

@@ -15,6 +15,4 @@ export interface DriverLeaderboardItemDTO {
podiums: number;
isActive: boolean;
rank: number;
avatarUrl?: string;
nullable: string;
}

View File

@@ -4,8 +4,8 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface CreatePaymentOutputDTO {
payment: PaymentDTO;
type: PaymentDTO })
payment: PaymentDTO;
export interface DriverRegistrationStatusDTO {
isRegistered: boolean;
raceId: string;
driverId: string;
}

View File

@@ -1,14 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface DriversLeaderboardDTO {
drivers: DriverLeaderboardItemDTO[];
totalRaces: number;
totalWins: number;
activeCount: number;
type: [DriverLeaderboardItemDTO] })
drivers: DriverLeaderboardItemDTO[];
}

View File

@@ -5,8 +5,11 @@
*/
export interface FileProtestCommandDTO {
raceId: string;
protestingDriverId: string;
accusedDriverId: string;
incident: Record<string, unknown>;
lap: number;
description: string;
timeInRace: number;
required: string;
timeInRace?: number;
}

View File

@@ -1,11 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface GetEntitySponsorshipPricingResultDTO {
pricing: SponsorshipPricingItemDTO[];
type: [SponsorshipPricingItemDTO] })
pricing: SponsorshipPricingItemDTO[];
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface GetLeagueAdminConfigOutputDTO {
type: () => LeagueConfigFormModelDTO, nullable: true })
@IsOptional()
@ValidateNested()
@Type(() => LeagueConfigFormModelDTO)
form: LeagueConfigFormModelDTO null;
}

View File

@@ -4,7 +4,7 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RecordEngagementInputDTO {
enum: string;
required: string;
export interface GetRaceDetailParamsDTODTO {
raceId: string;
driverId: string;
}

View File

@@ -1,11 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface GetSponsorsOutputDTO {
sponsors: SponsorDTO[];
type: [SponsorDTO] })
sponsors: SponsorDTO[];
}

View File

@@ -4,7 +4,7 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface ImportRaceResultsSummaryDTO {
errors?: string[];
type: string[];
export interface ImportRaceResultsDTO {
raceId: string;
resultsFileContent: string;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueAdminConfigDTO {
type: () => LeagueConfigFormModelDTO, nullable: true })
@IsOptional()
@ValidateNested()
@Type(() => LeagueConfigFormModelDTO)
form: LeagueConfigFormModelDTO null;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueAdminDTO {
type: [LeagueJoinRequestDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => LeagueJoinRequestDTO)
joinRequests: LeagueJoinRequestDTO[];
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueAdminProtestsDTO {
type: [ProtestDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => ProtestDTO)
protests: ProtestDTO[];
}

View File

@@ -7,5 +7,4 @@
export interface LeagueConfigFormModelBasicsDTO {
name: string;
description: string;
enum: string;
}

View File

@@ -6,8 +6,4 @@
export interface LeagueConfigFormModelDTO {
leagueId: string;
type: LeagueConfigFormModelBasicsDTO })
@ValidateNested()
@Type(() => LeagueConfigFormModelBasicsDTO)
basics: LeagueConfigFormModelBasicsDTO;
}

View File

@@ -1,17 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueConfigFormModelStewardingDTO {
enum: string;
required: string;
requireDefense: boolean;
defenseTimeLimit: number;
voteTimeLimit: number;
protestDeadlineHours: number;
stewardingClosesHours: number;
notifyAccusedOnProtest: boolean;
notifyOnVoteRequired: boolean;
}

View File

@@ -8,11 +8,6 @@ export interface LeagueJoinRequestDTO {
id: string;
leagueId: string;
driverId: string;
/** Format: date-time */
requestedAt: string;
required: string;
type: () => DriverDto, required: false })
@IsOptional()
@ValidateNested()
@Type(() => DriverDto)
driver?: DriverDto;
}

View File

@@ -6,10 +6,4 @@
export interface LeagueMemberDTO {
driverId: string;
type: () => DriverDto })
@ValidateNested()
@Type(() => DriverDto)
driver: DriverDto;
enum: string;
joinedAt: string;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueMembershipsDTO {
type: [LeagueMemberDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => LeagueMemberDTO)
members: LeagueMemberDTO[];
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueOwnerSummaryDTO {
type: () => DriverDto })
@ValidateNested()
@Type(() => DriverDto)
driver: DriverDto;
nullable: string;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueScheduleDTO {
type: [RaceDto] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => RaceDto)
races: RaceDto[];
}

View File

@@ -8,7 +8,4 @@ export interface LeagueSeasonSummaryDTO {
seasonId: string;
name: string;
status: string;
required: string;
isPrimary: boolean;
isParallelActive: boolean;
}

View File

@@ -6,10 +6,4 @@
export interface LeagueStandingDTO {
driverId: string;
type: () => DriverDto })
@ValidateNested()
@Type(() => DriverDto)
driver: DriverDto;
points: number;
rank: number;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueStandingsDTO {
type: [LeagueStandingDTO] })
@IsArray()
@ValidateNested({ each: true })
@Type(() => LeagueStandingDTO)
standings: LeagueStandingDTO[];
}

View File

@@ -7,9 +7,4 @@
export interface LeagueSummaryDTO {
id: string;
name: string;
nullable: string;
memberCount: number;
maxMembers: number;
isPublic: boolean;
ownerId: string;
}

View File

@@ -7,14 +7,4 @@
export interface LeagueWithCapacityDTO {
id: string;
name: string;
nullable: string;
ownerId: string;
type: () => LeagueSettingsDTO })
@ValidateNested()
@Type(() => LeagueSettingsDTO)
settings: LeagueSettingsDTO;
createdAt: string;
usedSlots: number;
youtubeUrl: string;
websiteUrl: string;
}

View File

@@ -5,42 +5,10 @@
*/
export interface MemberPaymentDto {
payment: MemberPaymentDto;
fee: MembershipFeeDto;
payments: PaymentDto[];
prizes: PrizeDto[];
prize: PrizeDto;
wallet: WalletDto;
transactions: TransactionDto[];
transaction: TransactionDto;
id: string;
enum: string;
feeId: string;
driverId: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
type: PaymentDto })
payment: PaymentDto;
paymentId: string;
enabled: boolean;
updatedAt: string;
feeId: string;
driverId: string;
dueDate: string;
seasonId: string;
position: number;
name: string;
awarded: boolean;
prizeId: string;
success: boolean;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
currency: string;
walletId: string;
description: string;
}

View File

@@ -5,42 +5,6 @@
*/
export interface MembershipFeeDto {
payment: MemberPaymentDto;
fee: MembershipFeeDto;
payments: PaymentDto[];
prizes: PrizeDto[];
prize: PrizeDto;
wallet: WalletDto;
transactions: TransactionDto[];
transaction: TransactionDto;
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
type: PaymentDto })
payment: PaymentDto;
paymentId: string;
enabled: boolean;
updatedAt: string;
feeId: string;
driverId: string;
dueDate: string;
seasonId: string;
position: number;
name: string;
awarded: boolean;
prizeId: string;
success: boolean;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
currency: string;
walletId: string;
description: string;
}

View File

@@ -6,12 +6,4 @@
export interface PaymentDTO {
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
}

View File

@@ -5,42 +5,10 @@
*/
export interface PrizeDto {
payment: MemberPaymentDto;
fee: MembershipFeeDto;
payments: PaymentDto[];
prizes: PrizeDto[];
prize: PrizeDto;
wallet: WalletDto;
transactions: TransactionDto[];
transaction: TransactionDto;
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
type: PaymentDto })
payment: PaymentDto;
paymentId: string;
enabled: boolean;
updatedAt: string;
feeId: string;
driverId: string;
dueDate: string;
seasonId: string;
position: number;
name: string;
awarded: boolean;
prizeId: string;
success: boolean;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
currency: string;
walletId: string;
description: string;
amount: number;
}

View File

@@ -5,16 +5,11 @@
*/
export interface ProtestDTO {
TODO: protests are filed at race level but also managed on league level
export class ProtestDTO {
@ApiProperty()
@IsString()
id: string;
raceId: string;
protestingDriverId: string;
accusedDriverId: string;
/** Format: date-time */
submittedAt: string;
description: string;
enum: string;
}

View File

@@ -5,6 +5,7 @@
*/
export interface QuickPenaltyCommandDTO {
enum: string;
required: string;
raceId: string;
driverId: string;
adminId: string;
}

View File

@@ -4,6 +4,6 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueSettingsDTO {
nullable: string;
export interface RaceActionParamsDTO {
raceId: string;
}

View File

@@ -5,6 +5,7 @@
*/
export interface RaceDTO {
leagueName?: string;
nullable: string;
id: string;
name: string;
date: string;
}

View File

@@ -1,13 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RaceDetailDTO {
nullable: true })
race!: RaceDetailRaceDTO null;
type: [RaceDetailEntryDTO] })
entryList!: RaceDetailEntryDTO[];
required: string;
}

View File

@@ -5,5 +5,8 @@
*/
export interface RaceDetailEntryDTO {
nullable: string;
id: string;
name: string;
country: string;
avatarUrl: string;
}

View File

@@ -5,6 +5,10 @@
*/
export interface RaceDetailLeagueDTO {
maxDrivers: number;
qualifyingFormat: string;
id: string;
name: string;
description: string;
settings: Record<string, unknown>;
maxDrivers?: number;
qualifyingFormat?: string;
}

View File

@@ -5,6 +5,11 @@
*/
export interface RaceDetailRaceDTO {
nullable: string;
required: string;
id: string;
leagueId: string;
track: string;
car: string;
scheduledAt: string;
sessionType: string;
status: string;
}

View File

@@ -0,0 +1,10 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RaceDetailRegistrationDTO {
isUserRegistered: boolean;
canRegister: boolean;
}

View File

@@ -5,5 +5,11 @@
*/
export interface RaceDetailUserResultDTO {
nullable: string;
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
}

View File

@@ -1,10 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RacePenaltiesDTO {
type: [RacePenaltyDTO] })
penalties!: RacePenaltyDTO[];
}

View File

@@ -5,6 +5,11 @@
*/
export interface RacePenaltyDTO {
notes?: string;
nullable: string;
id: string;
driverId: string;
type: string;
value: number;
reason: string;
issuedBy: string;
issuedAt: string;
}

View File

@@ -5,6 +5,10 @@
*/
export interface RaceProtestDTO {
id: string;
protestingDriverId: string;
accusedDriverId: string;
incident: Record<string, unknown>;
lap: number;
description: string;
}

View File

@@ -1,10 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RaceProtestsDTO {
type: [RaceProtestDto] })
protests!: RaceProtestDto[];
}

View File

@@ -0,0 +1,18 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RaceResultDTO {
driverId: string;
driverName: string;
avatarUrl: string;
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
}

View File

@@ -5,6 +5,6 @@
*/
export interface RaceResultsDetailDTO {
type: [RaceResultDto] })
results!: RaceResultDto[];
raceId: string;
track: string;
}

View File

@@ -4,6 +4,6 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface AllRacesPageDTO {
type: string[];
export interface RaceStatsDTO {
totalRaces: number;
}

View File

@@ -5,5 +5,6 @@
*/
export interface RaceWithSOFDTO {
nullable: string;
id: string;
track: string;
}

View File

@@ -1,10 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RacesPageDataDTO {
type: [RacesPageDataRaceDto] })
races!: RacesPageDataRaceDto[];
}

View File

@@ -5,5 +5,11 @@
*/
export interface RacesPageDataRaceDTO {
nullable: string;
id: string;
track: string;
car: string;
scheduledAt: string;
status: string;
leagueId: string;
leagueName: string;
}

View File

@@ -4,7 +4,7 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface LeagueConfigFormModelDropPolicyDTO {
enum: string;
required: string;
export interface RecordEngagementOutputDTO {
eventId: string;
engagementWeight: number;
}

View File

@@ -4,7 +4,6 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RecordPageViewInputDTO {
enum: string;
required: string;
export interface RecordPageViewOutputDTO {
pageViewId: string;
}

View File

@@ -0,0 +1,11 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RegisterForRaceParamsDTO {
raceId: string;
leagueId: string;
driverId: string;
}

View File

@@ -6,5 +6,4 @@
export interface RejectJoinRequestOutputDTO {
success: boolean;
required: string;
}

View File

@@ -1,11 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RequestAvatarGenerationOutputDTO {
avatarUrls?: string[];
type: string;
required: string;
}

View File

@@ -0,0 +1,10 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface RequestProtestDefenseCommandDTO {
protestId: string;
stewardId: string;
}

View File

@@ -8,7 +8,4 @@ export interface SeasonDTO {
seasonId: string;
name: string;
leagueId: string;
required: string;
enum: string;
isPrimary: boolean;
}

View File

@@ -5,11 +5,6 @@
*/
export interface SponsorDashboardDTO {
metrics: SponsorDashboardMetricsDTO;
sponsoredLeagues: SponsoredLeagueDTO[];
investment: SponsorDashboardInvestmentDTO;
sponsorId: string;
sponsorName: string;
type: SponsorDashboardMetricsDTO })
metrics: SponsorDashboardMetricsDTO;
}

View File

@@ -5,14 +5,6 @@
*/
export interface SponsorSponsorshipsDTO {
sponsorships: SponsorshipDetailDTO[];
sponsorId: string;
sponsorName: string;
type: [SponsorshipDetailDTO] })
sponsorships: SponsorshipDetailDTO[];
summary: string;
activeSponsorships: number;
totalInvestment: number;
totalPlatformFees: number;
currency: string;
}

View File

@@ -7,8 +7,4 @@
export interface SponsoredLeagueDTO {
id: string;
name: string;
enum: string;
drivers: number;
races: number;
impressions: number;
}

View File

@@ -5,20 +5,9 @@
*/
export interface SponsorshipDetailDTO {
createdAt: string;
id: string;
leagueId: string;
leagueName: string;
seasonId: string;
seasonName: string;
required: string;
enum: string;
pricing: string;
currency: string;
platformFee: string;
netAmount: string;
metrics: string;
races: number;
completedRaces: number;
impressions: number;
}

View File

@@ -1,29 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface TeamListItemViewModel {
id: string;
name: string;
tag: string;
description: string;
memberCount: number;
leagues: string;
specialization?: string;
region?: string;
languages?: string;
teams: string[];
totalCount: number;
ownerId: string;
createdAt?: string;
role: string;
joinedAt: string;
isActive: boolean;
team: string;
membership: string;
isOwner: boolean;
canManage: boolean;
success: boolean;
}

View File

@@ -5,42 +5,6 @@
*/
export interface TransactionDto {
payment: MemberPaymentDto;
fee: MembershipFeeDto;
payments: PaymentDto[];
prizes: PrizeDto[];
prize: PrizeDto;
wallet: WalletDto;
transactions: TransactionDto[];
transaction: TransactionDto;
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
type: PaymentDto })
payment: PaymentDto;
paymentId: string;
enabled: boolean;
updatedAt: string;
feeId: string;
driverId: string;
dueDate: string;
seasonId: string;
position: number;
name: string;
awarded: boolean;
prizeId: string;
success: boolean;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
currency: string;
walletId: string;
description: string;
}

View File

@@ -8,5 +8,4 @@ export interface UpdateLeagueMemberRoleInputDTO {
leagueId: string;
performerDriverId: string;
targetDriverId: string;
enum: string;
}

View File

@@ -6,5 +6,4 @@
export interface UpdatePaymentStatusInputDTO {
paymentId: string;
enum: string;
}

View File

@@ -1,11 +0,0 @@
/**
* Auto-generated DTO from OpenAPI spec
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface UpdatePaymentStatusOutputDTO {
payment: PaymentDTO;
type: PaymentDTO })
payment: PaymentDTO;
}

View File

@@ -5,42 +5,13 @@
*/
export interface WalletDto {
payment: MemberPaymentDto;
fee: MembershipFeeDto;
payments: PaymentDto[];
prizes: PrizeDto[];
prize: PrizeDto;
wallet: WalletDto;
transactions: TransactionDto[];
transaction: TransactionDto;
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
type: PaymentDto })
payment: PaymentDto;
paymentId: string;
enabled: boolean;
updatedAt: string;
feeId: string;
driverId: string;
dueDate: string;
seasonId: string;
position: number;
name: string;
awarded: boolean;
prizeId: string;
success: boolean;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
/** Format: date-time */
createdAt: string;
currency: string;
walletId: string;
description: string;
}

View File

@@ -4,7 +4,7 @@
* Do not edit manually - regenerate using: npm run api:sync-types
*/
export interface CreateDriverOutputDto {
success?: boolean;
driverId?: string;
export interface WithdrawFromRaceParamsDTO {
raceId: string;
driverId: string;
}

View File

@@ -0,0 +1,469 @@
/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export type paths = Record<string, never>;
export type webhooks = Record<string, never>;
export interface components {
schemas: {
SponsorshipPricingItemDTO: {
id: string;
level: string;
price: number;
currency: string;
};
SponsorshipDetailDTO: {
id: string;
leagueId: string;
leagueName: string;
seasonId: string;
seasonName: string;
};
SponsoredLeagueDTO: {
id: string;
name: string;
};
SponsorSponsorshipsDTO: {
sponsorId: string;
sponsorName: string;
};
SponsorDashboardMetricsDTO: {
impressions: number;
impressionsChange: number;
uniqueViewers: number;
viewersChange: number;
races: number;
drivers: number;
exposure: number;
exposureChange: number;
};
SponsorDashboardInvestmentDTO: {
activeSponsorships: number;
totalInvestment: number;
costPerThousandViews: number;
};
SponsorDashboardDTO: {
sponsorId: string;
sponsorName: string;
};
GetSponsorSponsorshipsQueryParamsDTO: {
sponsorId: string;
};
GetSponsorDashboardQueryParamsDTO: {
sponsorId: string;
};
CreateSponsorInputDTO: {
name: string;
contactEmail: string;
};
UpdatePaymentStatusInputDTO: {
paymentId: string;
};
PaymentDto: {
id: string;
};
MembershipFeeDto: {
id: string;
leagueId: string;
};
MemberPaymentDto: {
id: string;
feeId: string;
driverId: string;
amount: number;
platformFee: number;
netAmount: number;
};
PrizeDto: {
id: string;
leagueId: string;
seasonId: string;
position: number;
name: string;
amount: number;
};
WalletDto: {
id: string;
leagueId: string;
balance: number;
totalRevenue: number;
totalPlatformFees: number;
totalWithdrawn: number;
/** Format: date-time */
createdAt: string;
currency: string;
};
TransactionDto: {
id: string;
walletId: string;
};
PaymentDTO: {
id: string;
};
WithdrawFromRaceParamsDTO: {
raceId: string;
driverId: string;
};
RequestProtestDefenseCommandDTO: {
protestId: string;
stewardId: string;
};
RegisterForRaceParamsDTO: {
raceId: string;
leagueId: string;
driverId: string;
};
RacesPageDataRaceDTO: {
id: string;
track: string;
car: string;
scheduledAt: string;
status: string;
leagueId: string;
leagueName: string;
};
RaceWithSOFDTO: {
id: string;
track: string;
};
RaceStatsDTO: {
totalRaces: number;
};
RaceResultsDetailDTO: {
raceId: string;
track: string;
};
RaceResultDTO: {
driverId: string;
driverName: string;
avatarUrl: string;
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
};
RaceProtestDTO: {
id: string;
protestingDriverId: string;
accusedDriverId: string;
incident: Record<string, never>;
lap: number;
description: string;
};
RacePenaltyDTO: {
id: string;
driverId: string;
type: string;
value: number;
reason: string;
issuedBy: string;
issuedAt: string;
};
RaceDetailUserResultDTO: {
position: number;
startPosition: number;
incidents: number;
fastestLap: number;
positionChange: number;
isPodium: boolean;
isClean: boolean;
};
RaceDetailRegistrationDTO: {
isUserRegistered: boolean;
canRegister: boolean;
};
RaceDetailRaceDTO: {
id: string;
leagueId: string;
track: string;
car: string;
scheduledAt: string;
sessionType: string;
status: string;
};
RaceDetailLeagueDTO: {
id: string;
name: string;
description: string;
settings: Record<string, never>;
maxDrivers?: number;
qualifyingFormat?: string;
};
RaceDetailEntryDTO: {
id: string;
name: string;
country: string;
avatarUrl: string;
};
RaceDTO: {
id: string;
name: string;
date: string;
};
RaceActionParamsDTO: {
raceId: string;
};
QuickPenaltyCommandDTO: {
raceId: string;
driverId: string;
adminId: string;
};
ImportRaceResultsDTO: {
raceId: string;
resultsFileContent: string;
};
GetRaceDetailParamsDTODTO: {
raceId: string;
driverId: string;
};
FileProtestCommandDTO: {
raceId: string;
protestingDriverId: string;
accusedDriverId: string;
incident: Record<string, never>;
lap: number;
description: string;
timeInRace?: number;
};
DashboardRecentResultDTO: {
raceId: string;
raceName: string;
leagueId: string;
leagueName: string;
finishedAt: string;
position: number;
incidents: number;
};
DashboardRaceSummaryDTO: {
id: string;
leagueId: string;
leagueName: string;
track: string;
car: string;
scheduledAt: string;
};
DashboardLeagueStandingSummaryDTO: {
leagueId: string;
leagueName: string;
position: number;
totalDrivers: number;
points: number;
};
DashboardFriendSummaryDTO: {
id: string;
name: string;
country: string;
avatarUrl: string;
};
DashboardFeedSummaryDTO: {
notificationCount: number;
};
DashboardFeedItemSummaryDTO: {
id: string;
enum: string;
};
DashboardDriverSummaryDTO: {
id: string;
name: string;
country: string;
avatarUrl: string;
};
ApplyPenaltyCommandDTO: {
raceId: string;
driverId: string;
stewardId: string;
enum: string;
};
RequestAvatarGenerationInputDTO: {
userId: string;
facePhotoData: string;
suitColor: string;
};
UpdateLeagueMemberRoleOutputDTO: {
success: boolean;
};
UpdateLeagueMemberRoleInputDTO: {
leagueId: string;
performerDriverId: string;
targetDriverId: string;
};
SeasonDTO: {
seasonId: string;
name: string;
leagueId: string;
};
RemoveLeagueMemberOutputDTO: {
success: boolean;
};
RemoveLeagueMemberInputDTO: {
leagueId: string;
performerDriverId: string;
targetDriverId: string;
};
RejectJoinRequestOutputDTO: {
success: boolean;
};
RejectJoinRequestInputDTO: {
requestId: string;
leagueId: string;
};
ProtestDTO: {
id: string;
raceId: string;
protestingDriverId: string;
accusedDriverId: string;
/** Format: date-time */
submittedAt: string;
description: string;
};
LeagueWithCapacityDTO: {
id: string;
name: string;
};
LeagueSummaryDTO: {
id: string;
name: string;
};
LeagueStatsDTO: {
totalMembers: number;
totalRaces: number;
averageRating: number;
};
LeagueStandingDTO: {
driverId: string;
};
LeagueSeasonSummaryDTO: {
seasonId: string;
name: string;
status: string;
};
LeagueMemberDTO: {
driverId: string;
};
LeagueJoinRequestDTO: {
id: string;
leagueId: string;
driverId: string;
/** Format: date-time */
requestedAt: string;
};
LeagueConfigFormModelTimingsDTO: {
raceDayOfWeek: string;
raceTimeHour: number;
raceTimeMinute: number;
};
LeagueConfigFormModelStructureDTO: {
mode: string;
};
LeagueConfigFormModelScoringDTO: {
type: string;
points: number;
};
LeagueConfigFormModelDTO: {
leagueId: string;
};
LeagueConfigFormModelBasicsDTO: {
name: string;
description: string;
};
LeagueAdminPermissionsDTO: {
canRemoveMember: boolean;
canUpdateRoles: boolean;
};
GetLeagueSeasonsQueryDTO: {
leagueId: string;
};
GetLeagueProtestsQueryDTO: {
leagueId: string;
};
GetLeagueOwnerSummaryQueryDTO: {
ownerId: string;
leagueId: string;
};
GetLeagueJoinRequestsQueryDTO: {
leagueId: string;
};
GetLeagueAdminPermissionsInputDTO: {
leagueId: string;
performerDriverId: string;
};
GetLeagueAdminConfigQueryDTO: {
leagueId: string;
};
CreateLeagueOutputDTO: {
leagueId: string;
success: boolean;
};
CreateLeagueInputDTO: {
name: string;
description: string;
};
ApproveJoinRequestOutputDTO: {
success: boolean;
};
ApproveJoinRequestInputDTO: {
requestId: string;
leagueId: string;
};
GetDriverRegistrationStatusQueryDTO: {
raceId: string;
driverId: string;
};
DriverStatsDTO: {
totalDrivers: number;
};
DriverRegistrationStatusDTO: {
isRegistered: boolean;
raceId: string;
driverId: string;
};
DriverLeaderboardItemDTO: {
id: string;
name: string;
rating: number;
skillLevel: string;
nationality: string;
racesCompleted: number;
wins: number;
podiums: number;
isActive: boolean;
rank: number;
};
CompleteOnboardingOutputDTO: {
success: boolean;
};
CompleteOnboardingInputDTO: {
firstName: string;
lastName: string;
displayName: string;
country: string;
};
AuthenticatedUserDTO: {
userId: string;
email: string;
displayName: string;
};
AuthSessionDTO: {
token: string;
user: components["schemas"]["AuthenticatedUserDTO"];
};
RecordPageViewOutputDTO: {
pageViewId: string;
};
RecordEngagementOutputDTO: {
eventId: string;
engagementWeight: number;
};
};
responses: never;
parameters: never;
requestBodies: never;
headers: never;
pathItems: never;
}
export type $defs = Record<string, never>;
export type operations = Record<string, never>;

View File

@@ -0,0 +1,99 @@
/**
* Auto-generated DTO type exports
* This file is generated by scripts/generate-api-types.ts
* Do not edit manually - regenerate using: npm run api:sync-types
*/
// Re-export all schema types from the generated OpenAPI types
export type { components, paths, operations } from './api';
// Re-export individual DTO types
export type { SponsorshipPricingItemDTO } from './SponsorshipPricingItemDTO';
export type { SponsorshipDetailDTO } from './SponsorshipDetailDTO';
export type { SponsoredLeagueDTO } from './SponsoredLeagueDTO';
export type { SponsorSponsorshipsDTO } from './SponsorSponsorshipsDTO';
export type { SponsorDashboardMetricsDTO } from './SponsorDashboardMetricsDTO';
export type { SponsorDashboardInvestmentDTO } from './SponsorDashboardInvestmentDTO';
export type { SponsorDashboardDTO } from './SponsorDashboardDTO';
export type { GetSponsorSponsorshipsQueryParamsDTO } from './GetSponsorSponsorshipsQueryParamsDTO';
export type { GetSponsorDashboardQueryParamsDTO } from './GetSponsorDashboardQueryParamsDTO';
export type { CreateSponsorInputDTO } from './CreateSponsorInputDTO';
export type { UpdatePaymentStatusInputDTO } from './UpdatePaymentStatusInputDTO';
export type { PaymentDto } from './PaymentDto';
export type { MembershipFeeDto } from './MembershipFeeDto';
export type { MemberPaymentDto } from './MemberPaymentDto';
export type { PrizeDto } from './PrizeDto';
export type { WalletDto } from './WalletDto';
export type { TransactionDto } from './TransactionDto';
export type { PaymentDTO } from './PaymentDTO';
export type { WithdrawFromRaceParamsDTO } from './WithdrawFromRaceParamsDTO';
export type { RequestProtestDefenseCommandDTO } from './RequestProtestDefenseCommandDTO';
export type { RegisterForRaceParamsDTO } from './RegisterForRaceParamsDTO';
export type { RacesPageDataRaceDTO } from './RacesPageDataRaceDTO';
export type { RaceWithSOFDTO } from './RaceWithSOFDTO';
export type { RaceStatsDTO } from './RaceStatsDTO';
export type { RaceResultsDetailDTO } from './RaceResultsDetailDTO';
export type { RaceResultDTO } from './RaceResultDTO';
export type { RaceProtestDTO } from './RaceProtestDTO';
export type { RacePenaltyDTO } from './RacePenaltyDTO';
export type { RaceDetailUserResultDTO } from './RaceDetailUserResultDTO';
export type { RaceDetailRegistrationDTO } from './RaceDetailRegistrationDTO';
export type { RaceDetailRaceDTO } from './RaceDetailRaceDTO';
export type { RaceDetailLeagueDTO } from './RaceDetailLeagueDTO';
export type { RaceDetailEntryDTO } from './RaceDetailEntryDTO';
export type { RaceDTO } from './RaceDTO';
export type { RaceActionParamsDTO } from './RaceActionParamsDTO';
export type { QuickPenaltyCommandDTO } from './QuickPenaltyCommandDTO';
export type { ImportRaceResultsDTO } from './ImportRaceResultsDTO';
export type { GetRaceDetailParamsDTODTO } from './GetRaceDetailParamsDTODTO';
export type { FileProtestCommandDTO } from './FileProtestCommandDTO';
export type { DashboardRecentResultDTO } from './DashboardRecentResultDTO';
export type { DashboardRaceSummaryDTO } from './DashboardRaceSummaryDTO';
export type { DashboardLeagueStandingSummaryDTO } from './DashboardLeagueStandingSummaryDTO';
export type { DashboardFriendSummaryDTO } from './DashboardFriendSummaryDTO';
export type { DashboardFeedSummaryDTO } from './DashboardFeedSummaryDTO';
export type { DashboardFeedItemSummaryDTO } from './DashboardFeedItemSummaryDTO';
export type { DashboardDriverSummaryDTO } from './DashboardDriverSummaryDTO';
export type { ApplyPenaltyCommandDTO } from './ApplyPenaltyCommandDTO';
export type { RequestAvatarGenerationInputDTO } from './RequestAvatarGenerationInputDTO';
export type { UpdateLeagueMemberRoleOutputDTO } from './UpdateLeagueMemberRoleOutputDTO';
export type { UpdateLeagueMemberRoleInputDTO } from './UpdateLeagueMemberRoleInputDTO';
export type { SeasonDTO } from './SeasonDTO';
export type { RemoveLeagueMemberOutputDTO } from './RemoveLeagueMemberOutputDTO';
export type { RemoveLeagueMemberInputDTO } from './RemoveLeagueMemberInputDTO';
export type { RejectJoinRequestOutputDTO } from './RejectJoinRequestOutputDTO';
export type { RejectJoinRequestInputDTO } from './RejectJoinRequestInputDTO';
export type { ProtestDTO } from './ProtestDTO';
export type { LeagueWithCapacityDTO } from './LeagueWithCapacityDTO';
export type { LeagueSummaryDTO } from './LeagueSummaryDTO';
export type { LeagueStatsDTO } from './LeagueStatsDTO';
export type { LeagueStandingDTO } from './LeagueStandingDTO';
export type { LeagueSeasonSummaryDTO } from './LeagueSeasonSummaryDTO';
export type { LeagueMemberDTO } from './LeagueMemberDTO';
export type { LeagueJoinRequestDTO } from './LeagueJoinRequestDTO';
export type { LeagueConfigFormModelTimingsDTO } from './LeagueConfigFormModelTimingsDTO';
export type { LeagueConfigFormModelStructureDTO } from './LeagueConfigFormModelStructureDTO';
export type { LeagueConfigFormModelScoringDTO } from './LeagueConfigFormModelScoringDTO';
export type { LeagueConfigFormModelDTO } from './LeagueConfigFormModelDTO';
export type { LeagueConfigFormModelBasicsDTO } from './LeagueConfigFormModelBasicsDTO';
export type { LeagueAdminPermissionsDTO } from './LeagueAdminPermissionsDTO';
export type { GetLeagueSeasonsQueryDTO } from './GetLeagueSeasonsQueryDTO';
export type { GetLeagueProtestsQueryDTO } from './GetLeagueProtestsQueryDTO';
export type { GetLeagueOwnerSummaryQueryDTO } from './GetLeagueOwnerSummaryQueryDTO';
export type { GetLeagueJoinRequestsQueryDTO } from './GetLeagueJoinRequestsQueryDTO';
export type { GetLeagueAdminPermissionsInputDTO } from './GetLeagueAdminPermissionsInputDTO';
export type { GetLeagueAdminConfigQueryDTO } from './GetLeagueAdminConfigQueryDTO';
export type { CreateLeagueOutputDTO } from './CreateLeagueOutputDTO';
export type { CreateLeagueInputDTO } from './CreateLeagueInputDTO';
export type { ApproveJoinRequestOutputDTO } from './ApproveJoinRequestOutputDTO';
export type { ApproveJoinRequestInputDTO } from './ApproveJoinRequestInputDTO';
export type { GetDriverRegistrationStatusQueryDTO } from './GetDriverRegistrationStatusQueryDTO';
export type { DriverStatsDTO } from './DriverStatsDTO';
export type { DriverRegistrationStatusDTO } from './DriverRegistrationStatusDTO';
export type { DriverLeaderboardItemDTO } from './DriverLeaderboardItemDTO';
export type { CompleteOnboardingOutputDTO } from './CompleteOnboardingOutputDTO';
export type { CompleteOnboardingInputDTO } from './CompleteOnboardingInputDTO';
export type { AuthenticatedUserDTO } from './AuthenticatedUserDTO';
export type { AuthSessionDTO } from './AuthSessionDTO';
export type { RecordPageViewOutputDTO } from './RecordPageViewOutputDTO';
export type { RecordEngagementOutputDTO } from './RecordEngagementOutputDTO';