services refactor

This commit is contained in:
2025-12-17 22:37:21 +01:00
parent 055a7f67b5
commit 6123264353
117 changed files with 5617 additions and 117 deletions
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -8,7 +8,8 @@
"start:dev": "ts-node-dev --respawn --inspect=0.0.0.0:9229 src/main.ts",
"start:prod": "node dist/main",
"test": "vitest run",
"test:watch": "vitest"
"test:watch": "vitest",
"generate:openapi": "GENERATE_OPENAPI=true ts-node src/main.ts --exit"
},
"keywords": [],
"author": "",
+31
View File
@@ -2,10 +2,41 @@
import 'reflect-metadata'; // For NestJS DI (before any other imports)
import { NestFactory } from '@nestjs/core';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { writeFileSync } from 'fs';
import { join } from 'path';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// Swagger/OpenAPI configuration
const config = new DocumentBuilder()
.setTitle('GridPilot API')
.setDescription('GridPilot API documentation')
.setVersion('1.0')
.addTag('races', 'Race management endpoints')
.addTag('leagues', 'League management endpoints')
.addTag('teams', 'Team management endpoints')
.addTag('drivers', 'Driver management endpoints')
.addTag('sponsors', 'Sponsor management endpoints')
.addTag('payments', 'Payment and billing endpoints')
.addTag('media', 'Media and file management endpoints')
.addTag('analytics', 'Analytics and reporting endpoints')
.build();
const document = SwaggerModule.createDocument(app, config);
// Serve Swagger UI at /api/docs
SwaggerModule.setup('api/docs', app, document);
// Export OpenAPI spec as JSON file when GENERATE_OPENAPI env var is set
if (process.env.GENERATE_OPENAPI) {
const outputPath = join(__dirname, '../openapi.json');
writeFileSync(outputPath, JSON.stringify(document, null, 2));
console.log(`✅ OpenAPI spec generated at: ${outputPath}`);
}
await app.listen(3000);
}
bootstrap();
@@ -1,11 +1,10 @@
import { BaseApiClient } from '../base/BaseApiClient';
import type {
DriversLeaderboardDto,
CompleteOnboardingInputDto,
CompleteOnboardingOutputDto,
DriverDto,
DriverRegistrationStatusDto,
} from '../../dtos';
// Import generated types
import type { DriverDTO, CompleteOnboardingInputDTO, CompleteOnboardingOutputDTO } from '../../types/api-helpers';
/**
* Drivers API Client
@@ -19,12 +18,12 @@ export class DriversApiClient extends BaseApiClient {
}
/** Complete driver onboarding */
completeOnboarding(input: CompleteOnboardingInputDto): Promise<CompleteOnboardingOutputDto> {
completeOnboarding(input: CompleteOnboardingInputDTO): Promise<CompleteOnboardingOutputDTO> {
return this.post<CompleteOnboardingOutputDto>('/drivers/complete-onboarding', input);
}
/** Get current driver (based on session) */
getCurrent(): Promise<DriverDto | null> {
getCurrent(): Promise<DriverDTO | null> {
return this.get<DriverDto | null>('/drivers/current');
}
@@ -5,7 +5,8 @@ import type { CompleteOnboardingPresenter } from '../../presenters/CompleteOnboa
import type { DriverLeaderboardViewModel } from '../../view-models';
import type { DriverViewModel } from '../../view-models/DriverViewModel';
import type { CompleteOnboardingViewModel } from '../../view-models/CompleteOnboardingViewModel';
import type { CompleteOnboardingInputDto } from '../../dtos';
// Import generated types instead of manual DTOs
import type { CompleteOnboardingInputDTO } from '../../types/api-helpers';
/**
* Driver Service
@@ -32,7 +33,7 @@ export class DriverService {
/**
* Complete driver onboarding with presentation transformation
*/
async completeDriverOnboarding(input: CompleteOnboardingInputDto): Promise<CompleteOnboardingViewModel> {
async completeDriverOnboarding(input: CompleteOnboardingInputDTO): Promise<CompleteOnboardingViewModel> {
const dto = await this.apiClient.completeOnboarding(input);
return this.onboardingPresenter.present(dto);
}
@@ -0,0 +1,14 @@
/**
* 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;
}
@@ -0,0 +1,14 @@
/**
* 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;
}
@@ -0,0 +1,9 @@
/**
* 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 AllRacesPageDTO {
type: string[];
}
@@ -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 ApplyPenaltyCommandDTO {
enum: string;
required: string;
}
@@ -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 ApproveJoinRequestInputDTO {
requestId: string;
leagueId: string;
}
@@ -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 ApproveJoinRequestOutputDTO {
success: boolean;
required: string;
}
@@ -0,0 +1,13 @@
/**
* 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 AuthSessionDTO {
iracingCustomerId?: string;
primaryDriverId?: string;
avatarUrl?: string;
returnTo?: string;
required: string;
}
@@ -0,0 +1,13 @@
/**
* 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 AuthenticatedUserDTO {
iracingCustomerId?: string;
primaryDriverId?: string;
avatarUrl?: string;
returnTo?: string;
required: string;
}
@@ -0,0 +1,13 @@
/**
* 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 CompleteOnboardingInputDTO {
firstName: string;
lastName: string;
displayName: string;
country: string;
required: string;
}
@@ -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 CompleteOnboardingOutputDTO {
success: boolean;
required: string;
}
@@ -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 CreateDriverOutputDto {
success?: boolean;
driverId?: string;
}
@@ -0,0 +1,12 @@
/**
* 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 CreateLeagueInputDTO {
name: string;
description: string;
enum: string;
ownerId: string;
}
@@ -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 CreateLeagueOutputDTO {
leagueId: string;
success: boolean;
}
@@ -0,0 +1,13 @@
/**
* 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 CreatePaymentInputDTO {
enum: string;
amount: number;
payerId: string;
leagueId: string;
required: string;
}
@@ -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 CreatePaymentOutputDTO {
payment: PaymentDTO;
type: PaymentDTO })
payment: PaymentDTO;
}
@@ -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 CreateSponsorInputDTO {
name: string;
contactEmail: string;
required: string;
}
@@ -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 CreateSponsorOutputDTO {
sponsor: SponsorDTO;
type: SponsorDTO })
sponsor: SponsorDTO;
}
@@ -0,0 +1,9 @@
/**
* 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 DashboardDriverSummaryDTO {
nullable: string;
}
@@ -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 DashboardFeedItemSummaryDTO {
enum: string;
required: string;
}
@@ -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 DashboardFeedSummaryDTO {
type: [DashboardFeedItemSummaryDTO] })
items!: DashboardFeedItemSummaryDTO[];
}
@@ -0,0 +1,12 @@
/**
* 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[];
}
@@ -0,0 +1,9 @@
/**
* 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 DashboardRaceSummaryDTO {
enum: string;
}
@@ -0,0 +1,13 @@
/**
* 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 DriverDto {
id: string;
name: string;
avatarUrl?: string;
iracingId?: string;
rating?: number;
}
@@ -0,0 +1,20 @@
/**
* 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 DriverLeaderboardItemDTO {
id: string;
name: string;
rating: number;
skillLevel: string;
nationality: string;
racesCompleted: number;
wins: number;
podiums: number;
isActive: boolean;
rank: number;
avatarUrl?: string;
nullable: string;
}
@@ -0,0 +1,9 @@
/**
* 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 DriverStatsDTO {
totalDrivers: number;
}
@@ -0,0 +1,14 @@
/**
* 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[];
}
@@ -0,0 +1,12 @@
/**
* 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 FileProtestCommandDTO {
lap: number;
description: string;
timeInRace: number;
required: string;
}
@@ -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 GetDriverRegistrationStatusQueryDTO {
raceId: string;
driverId: string;
}
@@ -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 GetEntitySponsorshipPricingResultDTO {
pricing: SponsorshipPricingItemDTO[];
type: [SponsorshipPricingItemDTO] })
pricing: SponsorshipPricingItemDTO[];
}
@@ -0,0 +1,13 @@
/**
* 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;
}
@@ -0,0 +1,9 @@
/**
* 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 GetLeagueAdminConfigQueryDTO {
leagueId: string;
}
@@ -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 GetLeagueAdminPermissionsInputDTO {
leagueId: string;
performerDriverId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 GetLeagueJoinRequestsQueryDTO {
leagueId: string;
}
@@ -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 GetLeagueOwnerSummaryQueryDTO {
ownerId: string;
leagueId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 GetLeagueProtestsQueryDTO {
leagueId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 GetLeagueSeasonsQueryDTO {
leagueId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 GetSponsorDashboardQueryParamsDTO {
sponsorId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 GetSponsorSponsorshipsQueryParamsDTO {
sponsorId: string;
}
@@ -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 GetSponsorsOutputDTO {
sponsors: SponsorDTO[];
type: [SponsorDTO] })
sponsors: SponsorDTO[];
}
@@ -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 ImportRaceResultsSummaryDTO {
errors?: string[];
type: string[];
}
@@ -0,0 +1,13 @@
/**
* 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;
}
@@ -0,0 +1,13 @@
/**
* 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[];
}
@@ -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 LeagueAdminPermissionsDTO {
canRemoveMember: boolean;
canUpdateRoles: boolean;
}
@@ -0,0 +1,13 @@
/**
* 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[];
}
@@ -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 LeagueConfigFormModelBasicsDTO {
name: string;
description: string;
enum: string;
}
@@ -0,0 +1,13 @@
/**
* 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 LeagueConfigFormModelDTO {
leagueId: string;
type: LeagueConfigFormModelBasicsDTO })
@ValidateNested()
@Type(() => LeagueConfigFormModelBasicsDTO)
basics: LeagueConfigFormModelBasicsDTO;
}
@@ -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 LeagueConfigFormModelDropPolicyDTO {
enum: string;
required: string;
}
@@ -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 LeagueConfigFormModelScoringDTO {
type: string;
points: number;
}
@@ -0,0 +1,17 @@
/**
* 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;
}
@@ -0,0 +1,9 @@
/**
* 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 LeagueConfigFormModelStructureDTO {
mode: string;
}
@@ -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 LeagueConfigFormModelTimingsDTO {
raceDayOfWeek: string;
raceTimeHour: number;
raceTimeMinute: number;
}
@@ -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 LeagueJoinRequestDTO {
id: string;
leagueId: string;
driverId: string;
requestedAt: string;
required: string;
type: () => DriverDto, required: false })
@IsOptional()
@ValidateNested()
@Type(() => DriverDto)
driver?: DriverDto;
}
@@ -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 LeagueMemberDTO {
driverId: string;
type: () => DriverDto })
@ValidateNested()
@Type(() => DriverDto)
driver: DriverDto;
enum: string;
joinedAt: string;
}
@@ -0,0 +1,13 @@
/**
* 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[];
}
@@ -0,0 +1,13 @@
/**
* 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;
}
@@ -0,0 +1,13 @@
/**
* 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[];
}
@@ -0,0 +1,14 @@
/**
* 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 LeagueSeasonSummaryDTO {
seasonId: string;
name: string;
status: string;
required: string;
isPrimary: boolean;
isParallelActive: boolean;
}
@@ -0,0 +1,9 @@
/**
* 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 LeagueSettingsDTO {
nullable: string;
}
@@ -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 LeagueStandingDTO {
driverId: string;
type: () => DriverDto })
@ValidateNested()
@Type(() => DriverDto)
driver: DriverDto;
points: number;
rank: number;
}
@@ -0,0 +1,13 @@
/**
* 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[];
}
@@ -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 LeagueStatsDTO {
totalMembers: number;
totalRaces: number;
averageRating: number;
}
@@ -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 LeagueSummaryDTO {
id: string;
name: string;
nullable: string;
memberCount: number;
maxMembers: number;
isPublic: boolean;
ownerId: string;
}
@@ -0,0 +1,20 @@
/**
* 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 LeagueWithCapacityDTO {
id: string;
name: string;
nullable: string;
ownerId: string;
type: () => LeagueSettingsDTO })
@ValidateNested()
@Type(() => LeagueSettingsDTO)
settings: LeagueSettingsDTO;
createdAt: string;
usedSlots: number;
youtubeUrl: string;
websiteUrl: string;
}
@@ -0,0 +1,46 @@
/**
* 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 MemberPaymentDto {
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;
}
@@ -0,0 +1,46 @@
/**
* 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 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;
}
@@ -0,0 +1,17 @@
/**
* 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 PaymentDTO {
id: string;
enum: string;
amount: number;
platformFee: number;
netAmount: number;
payerId: string;
leagueId: string;
required: string;
createdAt: string;
}
@@ -0,0 +1,46 @@
/**
* 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 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;
}
@@ -0,0 +1,20 @@
/**
* 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 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;
submittedAt: string;
description: string;
enum: string;
}
@@ -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 QuickPenaltyCommandDTO {
enum: string;
required: string;
}
@@ -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 RaceDTO {
leagueName?: string;
nullable: string;
}
@@ -0,0 +1,13 @@
/**
* 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;
}
@@ -0,0 +1,9 @@
/**
* 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 RaceDetailEntryDTO {
nullable: string;
}
@@ -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 RaceDetailLeagueDTO {
maxDrivers: number;
qualifyingFormat: string;
}
@@ -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 RaceDetailRaceDTO {
nullable: string;
required: string;
}
@@ -0,0 +1,9 @@
/**
* 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 RaceDetailUserResultDTO {
nullable: string;
}
@@ -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 RacePenaltiesDTO {
type: [RacePenaltyDTO] })
penalties!: RacePenaltyDTO[];
}
@@ -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 RacePenaltyDTO {
notes?: string;
nullable: string;
}
@@ -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 RaceProtestDTO {
lap: number;
description: string;
}
@@ -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 RaceProtestsDTO {
type: [RaceProtestDto] })
protests!: RaceProtestDto[];
}
@@ -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 RaceResultsDetailDTO {
type: [RaceResultDto] })
results!: RaceResultDto[];
}
@@ -0,0 +1,9 @@
/**
* 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 RaceWithSOFDTO {
nullable: string;
}
@@ -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 RacesPageDataDTO {
type: [RacesPageDataRaceDto] })
races!: RacesPageDataRaceDto[];
}
@@ -0,0 +1,9 @@
/**
* 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 RacesPageDataRaceDTO {
nullable: string;
}
@@ -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 RecordEngagementInputDTO {
enum: string;
required: string;
}
@@ -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 RecordPageViewInputDTO {
enum: string;
required: string;
}
@@ -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 RejectJoinRequestInputDTO {
requestId: string;
leagueId: string;
}
@@ -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 RejectJoinRequestOutputDTO {
success: boolean;
required: string;
}
@@ -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 RemoveLeagueMemberInputDTO {
leagueId: string;
performerDriverId: string;
targetDriverId: string;
}
@@ -0,0 +1,9 @@
/**
* 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 RemoveLeagueMemberOutputDTO {
success: boolean;
}
@@ -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 RequestAvatarGenerationInputDTO {
userId: string;
facePhotoData: string;
suitColor: string;
}
@@ -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 RequestAvatarGenerationOutputDTO {
avatarUrls?: string[];
type: string;
required: string;
}
@@ -0,0 +1,14 @@
/**
* 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 SeasonDTO {
seasonId: string;
name: string;
leagueId: string;
required: string;
enum: string;
isPrimary: boolean;
}
@@ -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 SponsorDashboardDTO {
metrics: SponsorDashboardMetricsDTO;
sponsoredLeagues: SponsoredLeagueDTO[];
investment: SponsorDashboardInvestmentDTO;
sponsorId: string;
sponsorName: string;
type: SponsorDashboardMetricsDTO })
metrics: SponsorDashboardMetricsDTO;
}
@@ -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 SponsorDashboardInvestmentDTO {
activeSponsorships: number;
totalInvestment: number;
costPerThousandViews: number;
}
@@ -0,0 +1,16 @@
/**
* 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 SponsorDashboardMetricsDTO {
impressions: number;
impressionsChange: number;
uniqueViewers: number;
viewersChange: number;
races: number;
drivers: number;
exposure: number;
exposureChange: number;
}

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