{ "openapi": "3.0.0", "info": { "title": "GridPilot API", "description": "GridPilot API documentation", "version": "1.0.0" }, "paths": {}, "components": { "schemas": { "SponsorshipPricingItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "level": { "type": "string" }, "price": { "type": "number" }, "currency": { "type": "string" } }, "required": [ "id", "level", "price", "currency" ] }, "SponsorshipDetailDTO": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date-time" }, "id": { "type": "string" }, "leagueId": { "type": "string" }, "leagueName": { "type": "string" }, "seasonId": { "type": "string" }, "seasonName": { "type": "string" }, "required": { "type": "string" }, "enum": { "type": "string" }, "pricing": { "type": "string" }, "currency": { "type": "string" }, "platformFee": { "type": "string" }, "netAmount": { "type": "string" }, "metrics": { "type": "string" }, "races": { "type": "number" }, "completedRaces": { "type": "number" }, "impressions": { "type": "number" } }, "required": [ "createdAt", "id", "leagueId", "leagueName", "seasonId", "seasonName", "required", "enum", "pricing", "currency", "platformFee", "netAmount", "metrics", "races", "completedRaces", "impressions" ] }, "SponsoredLeagueDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "enum": { "type": "string" }, "drivers": { "type": "number" }, "races": { "type": "number" }, "impressions": { "type": "number" } }, "required": [ "id", "name", "enum", "drivers", "races", "impressions" ] }, "SponsorSponsorshipsDTO": { "type": "object", "properties": { "sponsorships": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipDetailDTO" } }, "sponsorId": { "type": "string" }, "sponsorName": { "type": "string" }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[SponsorshipDetailDTO] })\n sponsorships: SponsorshipDetailDTO" } }, "summary": { "type": "string" }, "activeSponsorships": { "type": "number" }, "totalInvestment": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "currency": { "type": "string" } }, "required": [ "sponsorships", "sponsorId", "sponsorName", "type", "summary", "activeSponsorships", "totalInvestment", "totalPlatformFees", "currency" ] }, "SponsorDashboardMetricsDTO": { "type": "object", "properties": { "impressions": { "type": "number" }, "impressionsChange": { "type": "number" }, "uniqueViewers": { "type": "number" }, "viewersChange": { "type": "number" }, "races": { "type": "number" }, "drivers": { "type": "number" }, "exposure": { "type": "number" }, "exposureChange": { "type": "number" } }, "required": [ "impressions", "impressionsChange", "uniqueViewers", "viewersChange", "races", "drivers", "exposure", "exposureChange" ] }, "SponsorDashboardInvestmentDTO": { "type": "object", "properties": { "activeSponsorships": { "type": "number" }, "totalInvestment": { "type": "number" }, "costPerThousandViews": { "type": "number" } }, "required": [ "activeSponsorships", "totalInvestment", "costPerThousandViews" ] }, "SponsorDashboardDTO": { "type": "object", "properties": { "metrics": { "$ref": "#/components/schemas/SponsorDashboardMetricsDTO" }, "sponsoredLeagues": { "type": "array", "items": { "$ref": "#/components/schemas/SponsoredLeagueDTO" } }, "investment": { "$ref": "#/components/schemas/SponsorDashboardInvestmentDTO" }, "sponsorId": { "type": "string" }, "sponsorName": { "type": "string" }, "type": { "$ref": "#/components/schemas/SponsorDashboardMetricsDTO })\n metrics: SponsorDashboardMetricsDTO" } }, "required": [ "metrics", "sponsoredLeagues", "investment", "sponsorId", "sponsorName", "type" ] }, "GetSponsorsOutputDTO": { "type": "object", "properties": { "sponsors": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorDTO" } }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[SponsorDTO] })\n sponsors: SponsorDTO" } } }, "required": [ "sponsors", "type" ] }, "GetSponsorSponsorshipsQueryParamsDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" } }, "required": [ "sponsorId" ] }, "GetSponsorDashboardQueryParamsDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" } }, "required": [ "sponsorId" ] }, "GetEntitySponsorshipPricingResultDTO": { "type": "object", "properties": { "pricing": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipPricingItemDTO" } }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[SponsorshipPricingItemDTO] })\n pricing: SponsorshipPricingItemDTO" } } }, "required": [ "pricing", "type" ] }, "CreateSponsorOutputDTO": { "type": "object", "properties": { "sponsor": { "$ref": "#/components/schemas/SponsorDTO" }, "type": { "$ref": "#/components/schemas/SponsorDTO })\n sponsor: SponsorDTO" } }, "required": [ "sponsor", "type" ] }, "CreateSponsorInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "contactEmail": { "type": "string" }, "required": { "type": "string" } }, "required": [ "name", "contactEmail", "required" ] }, "RacesPageDataRaceDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "RacesPageDataDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RacesPageDataRaceDto] })\n races!: RacesPageDataRaceDto" } } }, "required": [ "type" ] }, "RaceWithSOFDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "RaceResultsDetailDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RaceResultDto] })\n results!: RaceResultDto" } } }, "required": [ "type" ] }, "RaceProtestsDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RaceProtestDto] })\n protests!: RaceProtestDto" } } }, "required": [ "type" ] }, "RaceProtestDTO": { "type": "object", "properties": { "lap": { "type": "number" }, "description": { "type": "string" } }, "required": [ "lap", "description" ] }, "RacePenaltyDTO": { "type": "object", "properties": { "notes": { "type": "string" }, "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "RacePenaltiesDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RacePenaltyDTO] })\n penalties!: RacePenaltyDTO" } } }, "required": [ "type" ] }, "RaceDetailUserResultDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "RaceDetailRaceDTO": { "type": "object", "properties": { "nullable": { "type": "string" }, "required": { "type": "string" } }, "required": [ "nullable", "required" ] }, "RaceDetailLeagueDTO": { "type": "object", "properties": { "maxDrivers": { "type": "number" }, "qualifyingFormat": { "type": "string" } }, "required": [ "maxDrivers", "qualifyingFormat" ] }, "RaceDetailEntryDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "RaceDetailDTO": { "type": "object", "properties": { "nullable": { "$ref": "#/components/schemas/true })\n race!: RaceDetailRaceDTO null" }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RaceDetailEntryDTO] })\n entryList!: RaceDetailEntryDTO" } }, "required": { "type": "string" } }, "required": [ "nullable", "type", "required" ] }, "RaceDTO": { "type": "object", "properties": { "leagueName": { "type": "string" }, "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "QuickPenaltyCommandDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] }, "ImportRaceResultsSummaryDTO": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "string" } }, "type": { "type": "array", "items": { "type": "string" } } }, "required": [ "type" ] }, "FileProtestCommandDTO": { "type": "object", "properties": { "lap": { "type": "number" }, "description": { "type": "string" }, "timeInRace": { "type": "number" }, "required": { "type": "string" } }, "required": [ "lap", "description", "timeInRace", "required" ] }, "DashboardRaceSummaryDTO": { "type": "object", "properties": { "enum": { "type": "string" } }, "required": [ "enum" ] }, "DashboardOverviewDTO": { "type": "object", "properties": { "nullable": { "$ref": "#/components/schemas/true })\n currentDriver!: DashboardDriverSummaryDTO null" }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[DashboardRaceSummaryDTO] })\n myUpcomingRaces!: DashboardRaceSummaryDTO" } } }, "required": [ "nullable", "type" ] }, "DashboardFeedSummaryDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[DashboardFeedItemSummaryDTO] })\n items!: DashboardFeedItemSummaryDTO" } } }, "required": [ "type" ] }, "DashboardFeedItemSummaryDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] }, "DashboardDriverSummaryDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "ApplyPenaltyCommandDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] }, "AllRacesPageDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "type": "string" } } }, "required": [ "type" ] }, "UpdatePaymentStatusOutputDTO": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/PaymentDTO" }, "type": { "$ref": "#/components/schemas/PaymentDTO })\n payment: PaymentDTO" } }, "required": [ "payment", "type" ] }, "UpdatePaymentStatusInputDTO": { "type": "object", "properties": { "paymentId": { "type": "string" }, "enum": { "type": "string" } }, "required": [ "paymentId", "enum" ] }, "PaymentDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "MembershipFeeDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "MemberPaymentDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "PrizeDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "WalletDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "TransactionDto": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDto" }, "fee": { "$ref": "#/components/schemas/MembershipFeeDto" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/PaymentDto" } }, "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDto" } }, "prize": { "$ref": "#/components/schemas/PrizeDto" }, "wallet": { "$ref": "#/components/schemas/WalletDto" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDto" } }, "transaction": { "$ref": "#/components/schemas/TransactionDto" }, "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "type": { "$ref": "#/components/schemas/PaymentDto })\n payment: PaymentDto" }, "paymentId": { "type": "string" }, "enabled": { "type": "boolean" }, "updatedAt": { "type": "string", "format": "date-time" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "awarded": { "type": "boolean" }, "prizeId": { "type": "string" }, "success": { "type": "boolean" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "currency": { "type": "string" }, "walletId": { "type": "string" }, "description": { "type": "string" } }, "required": [ "payment", "payment", "payments", "fee", "payment", "payments", "prizes", "prize", "prize", "wallet", "transactions", "wallet", "transaction", "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt", "type", "paymentId", "enabled", "updatedAt", "feeId", "driverId", "dueDate", "seasonId", "position", "name", "awarded", "prizeId", "success", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "currency", "walletId", "description" ] }, "PaymentDTO": { "type": "object", "properties": { "id": { "type": "string" }, "enum": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "enum", "amount", "platformFee", "netAmount", "payerId", "leagueId", "required", "createdAt" ] }, "CreatePaymentOutputDTO": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/PaymentDTO" }, "type": { "$ref": "#/components/schemas/PaymentDTO })\n payment: PaymentDTO" } }, "required": [ "payment", "type" ] }, "CreatePaymentInputDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "amount": { "type": "number" }, "payerId": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "amount", "payerId", "leagueId", "required" ] }, "RequestAvatarGenerationOutputDTO": { "type": "object", "properties": { "avatarUrls": { "type": "array", "items": { "type": "string" } }, "type": { "type": "string" }, "required": { "type": "string" } }, "required": [ "type", "required" ] }, "RequestAvatarGenerationInputDTO": { "type": "object", "properties": { "userId": { "type": "string" }, "facePhotoData": { "type": "string" }, "suitColor": { "type": "string" } }, "required": [ "userId", "facePhotoData", "suitColor" ] }, "GetDriverRegistrationStatusQueryDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "raceId", "driverId" ] }, "DriversLeaderboardDTO": { "type": "object", "properties": { "drivers": { "type": "array", "items": { "$ref": "#/components/schemas/DriverLeaderboardItemDTO" } }, "totalRaces": { "type": "number" }, "totalWins": { "type": "number" }, "activeCount": { "type": "number" }, "type": { "type": "array", "items": { "$ref": "#/components/schemas/[DriverLeaderboardItemDTO] })\n drivers: DriverLeaderboardItemDTO" } } }, "required": [ "drivers", "totalRaces", "totalWins", "activeCount", "type" ] }, "DriverStatsDTO": { "type": "object", "properties": { "totalDrivers": { "type": "number" } }, "required": [ "totalDrivers" ] }, "DriverLeaderboardItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "rating": { "type": "number" }, "skillLevel": { "type": "string" }, "nationality": { "type": "string" }, "racesCompleted": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "isActive": { "type": "boolean" }, "rank": { "type": "number" }, "avatarUrl": { "type": "string" }, "nullable": { "type": "string" } }, "required": [ "id", "name", "rating", "skillLevel", "nationality", "racesCompleted", "wins", "podiums", "isActive", "rank", "nullable" ] }, "CompleteOnboardingOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "required": { "type": "string" } }, "required": [ "success", "required" ] }, "CompleteOnboardingInputDTO": { "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "displayName": { "type": "string" }, "country": { "type": "string" }, "required": { "type": "string" } }, "required": [ "firstName", "lastName", "displayName", "country", "required" ] }, "UpdateLeagueMemberRoleOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "UpdateLeagueMemberRoleInputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "performerDriverId": { "type": "string" }, "targetDriverId": { "type": "string" }, "enum": { "type": "string" } }, "required": [ "leagueId", "performerDriverId", "targetDriverId", "enum" ] }, "SeasonDTO": { "type": "object", "properties": { "seasonId": { "type": "string" }, "name": { "type": "string" }, "leagueId": { "type": "string" }, "required": { "type": "string" }, "enum": { "type": "string" }, "isPrimary": { "type": "boolean" } }, "required": [ "seasonId", "name", "leagueId", "required", "enum", "isPrimary" ] }, "RemoveLeagueMemberOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "RemoveLeagueMemberInputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "performerDriverId": { "type": "string" }, "targetDriverId": { "type": "string" } }, "required": [ "leagueId", "performerDriverId", "targetDriverId" ] }, "RejectJoinRequestOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "required": { "type": "string" } }, "required": [ "success", "required" ] }, "RejectJoinRequestInputDTO": { "type": "object", "properties": { "requestId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "requestId", "leagueId" ] }, "ProtestDTO": { "type": "object", "properties": { "TODO": { "$ref": "#/components/schemas/protests are filed at race level but also managed on league level\n\nexport class ProtestDTO {\n @ApiProperty()\n @IsString()\n id: string" }, "raceId": { "type": "string" }, "protestingDriverId": { "type": "string" }, "accusedDriverId": { "type": "string" }, "submittedAt": { "type": "string", "format": "date-time" }, "description": { "type": "string" }, "enum": { "type": "string" } }, "required": [ "TODO", "raceId", "protestingDriverId", "accusedDriverId", "submittedAt", "description", "enum" ] }, "LeagueWithCapacityDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "nullable": { "type": "string" }, "ownerId": { "type": "string" }, "type": { "$ref": "#/components/schemas/() => LeagueSettingsDTO })\n @ValidateNested()\n @Type(() => LeagueSettingsDTO)\n settings: LeagueSettingsDTO" }, "createdAt": { "type": "string" }, "usedSlots": { "type": "number" }, "youtubeUrl": { "type": "string" }, "websiteUrl": { "type": "string" } }, "required": [ "id", "name", "nullable", "ownerId", "type", "createdAt", "usedSlots", "youtubeUrl", "websiteUrl" ] }, "LeagueSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "nullable": { "type": "string" }, "memberCount": { "type": "number" }, "maxMembers": { "type": "number" }, "isPublic": { "type": "boolean" }, "ownerId": { "type": "string" } }, "required": [ "id", "name", "nullable", "memberCount", "maxMembers", "isPublic", "ownerId" ] }, "LeagueStatsDTO": { "type": "object", "properties": { "totalMembers": { "type": "number" }, "totalRaces": { "type": "number" }, "averageRating": { "type": "number" } }, "required": [ "totalMembers", "totalRaces", "averageRating" ] }, "LeagueStandingsDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[LeagueStandingDTO] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => LeagueStandingDTO)\n standings: LeagueStandingDTO" } } }, "required": [ "type" ] }, "LeagueStandingDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "type": { "$ref": "#/components/schemas/() => DriverDto })\n @ValidateNested()\n @Type(() => DriverDto)\n driver: DriverDto" }, "points": { "type": "number" }, "rank": { "type": "number" } }, "required": [ "driverId", "type", "points", "rank" ] }, "LeagueSettingsDTO": { "type": "object", "properties": { "nullable": { "type": "string" } }, "required": [ "nullable" ] }, "LeagueSeasonSummaryDTO": { "type": "object", "properties": { "seasonId": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "required": { "type": "string" }, "isPrimary": { "type": "boolean" }, "isParallelActive": { "type": "boolean" } }, "required": [ "seasonId", "name", "status", "required", "isPrimary", "isParallelActive" ] }, "LeagueScheduleDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[RaceDto] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => RaceDto)\n races: RaceDto" } } }, "required": [ "type" ] }, "LeagueOwnerSummaryDTO": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/() => DriverDto })\n @ValidateNested()\n @Type(() => DriverDto)\n driver: DriverDto" }, "nullable": { "type": "string" } }, "required": [ "type", "nullable" ] }, "LeagueMembershipsDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[LeagueMemberDTO] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => LeagueMemberDTO)\n members: LeagueMemberDTO" } } }, "required": [ "type" ] }, "LeagueMemberDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "type": { "$ref": "#/components/schemas/() => DriverDto })\n @ValidateNested()\n @Type(() => DriverDto)\n driver: DriverDto" }, "enum": { "type": "string" }, "joinedAt": { "type": "string", "format": "date-time" } }, "required": [ "driverId", "type", "enum", "joinedAt" ] }, "LeagueJoinRequestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" }, "requestedAt": { "type": "string", "format": "date-time" }, "required": { "type": "string" }, "type": { "$ref": "#/components/schemas/() => DriverDto, required: false })\n @IsOptional()\n @ValidateNested()\n @Type(() => DriverDto)\n driver?: DriverDto" } }, "required": [ "id", "leagueId", "driverId", "requestedAt", "required", "type" ] }, "LeagueConfigFormModelTimingsDTO": { "type": "object", "properties": { "raceDayOfWeek": { "type": "string" }, "raceTimeHour": { "type": "number" }, "raceTimeMinute": { "type": "number" } }, "required": [ "raceDayOfWeek", "raceTimeHour", "raceTimeMinute" ] }, "LeagueConfigFormModelStructureDTO": { "type": "object", "properties": { "mode": { "type": "string" } }, "required": [ "mode" ] }, "LeagueConfigFormModelStewardingDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" }, "requireDefense": { "type": "boolean" }, "defenseTimeLimit": { "type": "number" }, "voteTimeLimit": { "type": "number" }, "protestDeadlineHours": { "type": "number" }, "stewardingClosesHours": { "type": "number" }, "notifyAccusedOnProtest": { "type": "boolean" }, "notifyOnVoteRequired": { "type": "boolean" } }, "required": [ "enum", "required", "requireDefense", "defenseTimeLimit", "voteTimeLimit", "protestDeadlineHours", "stewardingClosesHours", "notifyAccusedOnProtest", "notifyOnVoteRequired" ] }, "LeagueConfigFormModelScoringDTO": { "type": "object", "properties": { "type": { "type": "string" }, "points": { "type": "number" } }, "required": [ "type", "points" ] }, "LeagueConfigFormModelDropPolicyDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] }, "LeagueConfigFormModelDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "type": { "$ref": "#/components/schemas/LeagueConfigFormModelBasicsDTO })\n @ValidateNested()\n @Type(() => LeagueConfigFormModelBasicsDTO)\n basics: LeagueConfigFormModelBasicsDTO" } }, "required": [ "leagueId", "type" ] }, "LeagueConfigFormModelBasicsDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "enum": { "type": "string" } }, "required": [ "name", "description", "enum" ] }, "LeagueAdminProtestsDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[ProtestDTO] }) \n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => ProtestDTO)\n protests: ProtestDTO" } } }, "required": [ "type" ] }, "LeagueAdminPermissionsDTO": { "type": "object", "properties": { "canRemoveMember": { "type": "boolean" }, "canUpdateRoles": { "type": "boolean" } }, "required": [ "canRemoveMember", "canUpdateRoles" ] }, "LeagueAdminDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[LeagueJoinRequestDTO] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => LeagueJoinRequestDTO)\n joinRequests: LeagueJoinRequestDTO" } } }, "required": [ "type" ] }, "LeagueAdminConfigDTO": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/() => LeagueConfigFormModelDTO, nullable: true })\n @IsOptional()\n @ValidateNested()\n @Type(() => LeagueConfigFormModelDTO)\n form: LeagueConfigFormModelDTO null" } }, "required": [ "type" ] }, "GetLeagueSeasonsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueProtestsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueOwnerSummaryQueryDTO": { "type": "object", "properties": { "ownerId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "ownerId", "leagueId" ] }, "GetLeagueJoinRequestsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueAdminPermissionsInputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "performerDriverId": { "type": "string" } }, "required": [ "leagueId", "performerDriverId" ] }, "GetLeagueAdminConfigQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueAdminConfigOutputDTO": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/() => LeagueConfigFormModelDTO, nullable: true })\n @IsOptional()\n @ValidateNested()\n @Type(() => LeagueConfigFormModelDTO)\n form: LeagueConfigFormModelDTO null" } }, "required": [ "type" ] }, "CreateLeagueOutputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "success": { "type": "boolean" } }, "required": [ "leagueId", "success" ] }, "CreateLeagueInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "enum": { "type": "string" }, "ownerId": { "type": "string" } }, "required": [ "name", "description", "enum", "ownerId" ] }, "ApproveJoinRequestOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "required": { "type": "string" } }, "required": [ "success", "required" ] }, "ApproveJoinRequestInputDTO": { "type": "object", "properties": { "requestId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "requestId", "leagueId" ] }, "AllLeaguesWithCapacityDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[LeagueWithCapacityDTO] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => LeagueWithCapacityDTO)\n leagues: LeagueWithCapacityDTO" } }, "totalCount": { "type": "number" } }, "required": [ "type", "totalCount" ] }, "AllLeaguesWithCapacityAndScoringDTO": { "type": "object", "properties": { "type": { "type": "array", "items": { "$ref": "#/components/schemas/[LeagueSummaryDTO] })\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => LeagueSummaryDTO)\n leagues: LeagueSummaryDTO" } }, "totalCount": { "type": "number" } }, "required": [ "type", "totalCount" ] }, "AuthenticatedUserDTO": { "type": "object", "properties": { "iracingCustomerId": { "type": "string" }, "primaryDriverId": { "type": "string" }, "avatarUrl": { "type": "string" }, "returnTo": { "type": "string" }, "required": { "type": "string" } }, "required": [ "required" ] }, "AuthSessionDTO": { "type": "object", "properties": { "iracingCustomerId": { "type": "string" }, "primaryDriverId": { "type": "string" }, "avatarUrl": { "type": "string" }, "returnTo": { "type": "string" }, "required": { "type": "string" } }, "required": [ "required" ] }, "RecordPageViewInputDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] }, "RecordEngagementInputDTO": { "type": "object", "properties": { "enum": { "type": "string" }, "required": { "type": "string" } }, "required": [ "enum", "required" ] } } } }