{ "openapi": "3.0.0", "info": { "title": "GridPilot API", "description": "GridPilot API documentation", "version": "1.0.0" }, "paths": { "/admin/dashboard/stats": { "get": { "responses": { "200": { "description": "OK" } } } }, "/admin/users": { "get": { "responses": { "200": { "description": "OK" } } } }, "/analytics/dashboard": { "get": { "responses": { "200": { "description": "OK" } } } }, "/analytics/engagement": { "post": { "responses": { "200": { "description": "OK" } } } }, "/analytics/metrics": { "get": { "responses": { "200": { "description": "OK" } } } }, "/analytics/page-view": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/forgot-password": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/iracing/callback": { "get": { "responses": { "200": { "description": "OK" } } } }, "/auth/iracing/start": { "get": { "responses": { "200": { "description": "OK" } } } }, "/auth/login": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/logout": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/reset-password": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/session": { "get": { "responses": { "200": { "description": "OK" } } } }, "/auth/signup": { "post": { "responses": { "200": { "description": "OK" } } } }, "/auth/signup-sponsor": { "post": { "responses": { "200": { "description": "OK" } } } }, "/dashboard/overview": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/{driverId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/{driverId}/liveries": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/{driverId}/profile": { "get": { "responses": { "200": { "description": "OK" } } }, "put": { "responses": { "200": { "description": "OK" } } } }, "/drivers/{driverId}/races/{raceId}/registration-status": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/complete-onboarding": { "post": { "responses": { "200": { "description": "OK" } } } }, "/drivers/current": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/leaderboard": { "get": { "responses": { "200": { "description": "OK" } } } }, "/drivers/total-drivers": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/join-requests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/join-requests/{joinRequestId}/approve": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/join-requests/{joinRequestId}/reject": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/members": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/members/{targetDriverId}/remove": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/admin/roster/members/{targetDriverId}/role": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/config": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/join": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/join-requests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/join-requests/approve": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/join-requests/reject": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/members/{targetDriverId}/remove": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/members/{targetDriverId}/role": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/memberships": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/owner-summary/{ownerId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/permissions/{performerDriverId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/protests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/protests/{protestId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/races": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/schedule": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/scoring-config": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/seasons": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/seasons/{seasonId}/schedule/publish": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/seasons/{seasonId}/schedule/races": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/seasons/{seasonId}/schedule/races/{raceId}": { "patch": { "responses": { "200": { "description": "OK" } } }, "delete": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/seasons/{seasonId}/schedule/unpublish": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/standings": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/stats": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/transfer-ownership": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/wallet": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/{leagueId}/wallet/withdraw": { "post": { "responses": { "200": { "description": "OK" } } } }, "/leagues/all": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/all-with-capacity": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/all-with-capacity-and-scoring": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/available": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/scoring-presets": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/seasons/{seasonId}/sponsorships": { "get": { "responses": { "200": { "description": "OK" } } } }, "/leagues/total-leagues": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/{mediaId}": { "get": { "responses": { "200": { "description": "OK" } } }, "delete": { "responses": { "200": { "description": "OK" } } } }, "/media/avatar/{driverId}": { "get": { "responses": { "200": { "description": "OK" } } }, "put": { "responses": { "200": { "description": "OK" } } } }, "/media/avatar/{driverId}/details": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/avatar/generate": { "post": { "responses": { "200": { "description": "OK" } } } }, "/media/avatar/validate-face": { "post": { "responses": { "200": { "description": "OK" } } } }, "/media/debug/resolve": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/default/{variant}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/generated/{type}/{id}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/leagues/{leagueId}/cover": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/leagues/{leagueId}/logo": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/teams/{teamId}/logo": { "get": { "responses": { "200": { "description": "OK" } } } }, "/media/upload": { "post": { "responses": { "200": { "description": "OK" } } } }, "/media/uploaded/{mediaId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/notifications/all": { "get": { "responses": { "200": { "description": "OK" } } } }, "/notifications/read/{notificationId}": { "post": { "responses": { "200": { "description": "OK" } } } }, "/notifications/unread": { "get": { "responses": { "200": { "description": "OK" } } } }, "/payments": { "get": { "responses": { "200": { "description": "OK" } } }, "post": { "responses": { "200": { "description": "OK" } } } }, "/payments/membership-fees": { "get": { "responses": { "200": { "description": "OK" } } }, "post": { "responses": { "200": { "description": "OK" } } } }, "/payments/membership-fees/member-payment": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/payments/prizes": { "get": { "responses": { "200": { "description": "OK" } } }, "post": { "responses": { "200": { "description": "OK" } } }, "delete": { "responses": { "200": { "description": "OK" } } } }, "/payments/prizes/award": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/payments/status": { "patch": { "responses": { "200": { "description": "OK" } } } }, "/payments/wallets": { "get": { "responses": { "200": { "description": "OK" } } } }, "/payments/wallets/transactions": { "post": { "responses": { "200": { "description": "OK" } } } }, "/policy/snapshot": { "get": { "responses": { "200": { "description": "OK" } } } }, "/protests/{protestId}/review": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/cancel": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/complete": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/import-results": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/penalties": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/protests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/register": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/reopen": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/results": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/sof": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/{raceId}/withdraw": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/all": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/all/page-data": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/page-data": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/penalties/apply": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/penalties/quick": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/protests/defense/request": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/protests/file": { "post": { "responses": { "200": { "description": "OK" } } } }, "/races/reference/penalty-types": { "get": { "responses": { "200": { "description": "OK" } } } }, "/races/total-races": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors": { "get": { "responses": { "200": { "description": "OK" } } }, "post": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/{sponsorId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/{sponsorId}/sponsorships": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/billing/{sponsorId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/dashboard/{sponsorId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/leagues/{leagueId}/detail": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/leagues/available": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/pricing": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/requests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/requests/{requestId}/accept": { "post": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/requests/{requestId}/reject": { "post": { "responses": { "200": { "description": "OK" } } } }, "/sponsors/settings/{sponsorId}": { "get": { "responses": { "200": { "description": "OK" } } }, "put": { "responses": { "200": { "description": "OK" } } } }, "/teams": { "post": { "responses": { "200": { "description": "OK" } } } }, "/teams/{teamId}": { "get": { "responses": { "200": { "description": "OK" } } }, "patch": { "responses": { "200": { "description": "OK" } } } }, "/teams/{teamId}/join": { "post": { "responses": { "200": { "description": "OK" } } } }, "/teams/{teamId}/join-requests": { "get": { "responses": { "200": { "description": "OK" } } } }, "/teams/{teamId}/members": { "get": { "responses": { "200": { "description": "OK" } } } }, "/teams/{teamId}/members/{driverId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/teams/all": { "get": { "responses": { "200": { "description": "OK" } } } }, "/teams/driver/{driverId}": { "get": { "responses": { "200": { "description": "OK" } } } }, "/teams/leaderboard": { "get": { "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "AcceptSponsorshipRequestInputDTO": { "type": "object", "properties": { "respondedBy": { "type": "string" } }, "required": [ "respondedBy" ] }, "ActivityItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "message": { "type": "string" }, "time": { "type": "string" }, "impressions": { "type": "number" } }, "required": [ "id", "type", "message", "time" ] }, "AllLeaguesWithCapacityAndScoringDTO": { "type": "object", "properties": { "leagues": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueWithCapacityAndScoringDTO" } }, "totalCount": { "type": "number" } }, "required": [ "leagues", "totalCount" ] }, "AllLeaguesWithCapacityDTO": { "type": "object", "properties": { "leagues": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueWithCapacityDTO" } }, "totalCount": { "type": "number" } }, "required": [ "leagues", "totalCount" ] }, "AllRacesFilterOptionsDTO": { "type": "object", "properties": { "statuses": { "type": "array", "items": { "$ref": "#/components/schemas/AllRacesStatusFilterDTO" } }, "leagues": { "type": "array", "items": { "$ref": "#/components/schemas/AllRacesLeagueFilterDTO" } } }, "required": [ "statuses", "leagues" ] }, "AllRacesLeagueFilterDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "name" ] }, "AllRacesListItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "track": { "type": "string" }, "car": { "type": "string" }, "scheduledAt": { "type": "string" }, "status": { "type": "string" }, "leagueId": { "type": "string" }, "leagueName": { "type": "string" }, "strengthOfField": { "type": "number", "nullable": true } }, "required": [ "id", "track", "car", "scheduledAt", "status", "leagueId", "leagueName" ] }, "AllRacesPageDTO": { "type": "object", "properties": { "races": { "type": "array", "items": { "$ref": "#/components/schemas/AllRacesListItemDTO" } }, "filters": { "$ref": "#/components/schemas/AllRacesFilterOptionsDTO" } }, "required": [ "races", "filters" ] }, "AllRacesStatusFilterDTO": { "type": "object", "properties": { "value": { "type": "string" }, "label": { "type": "string" } }, "required": [ "value", "label" ] }, "ApplyPenaltyCommandDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" }, "stewardId": { "type": "string" }, "type": { "type": "string" }, "value": { "type": "number" }, "reason": { "type": "string" }, "protestId": { "type": "string" }, "notes": { "type": "string" } }, "required": [ "raceId", "driverId", "stewardId", "type", "reason" ] }, "ApproveJoinRequestInputDTO": { "type": "object", "properties": { "requestId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "requestId", "leagueId" ] }, "ApproveJoinRequestOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "success" ] }, "AuthenticatedUserDTO": { "type": "object", "properties": { "userId": { "type": "string" }, "email": { "type": "string" }, "displayName": { "type": "string" }, "primaryDriverId": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "companyId": { "type": "string" }, "role": { "type": "string" } }, "required": [ "userId", "email", "displayName" ] }, "AuthSessionDTO": { "type": "object", "properties": { "token": { "type": "string" }, "user": { "$ref": "#/components/schemas/AuthenticatedUserDTO" } }, "required": [ "token", "user" ] }, "AvailableLeagueDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "game": { "type": "string" }, "drivers": { "type": "number" }, "avgViewsPerRace": { "type": "number" }, "mainSponsorSlot": { "type": "object" }, "available": { "type": "number" }, "price": { "type": "number" }, "secondarySlots": { "type": "object" }, "total": { "type": "number" }, "rating": { "type": "number" }, "tier": { "type": "string" }, "nextRace": { "type": "string" }, "seasonStatus": { "type": "string" }, "description": { "type": "string" } }, "required": [ "id", "name", "game", "drivers", "avgViewsPerRace", "mainSponsorSlot", "available", "price", "secondarySlots", "available", "total", "price", "rating", "tier", "seasonStatus", "description" ] }, "AvatarDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "avatarUrl": { "type": "string" } }, "required": [ "driverId" ] }, "AwardPrizeResultDTO": { "type": "object", "properties": { "prize": { "$ref": "#/components/schemas/PrizeDTO" } }, "required": [ "prize" ] }, "BillingStatsDTO": { "type": "object", "properties": { "totalSpent": { "type": "number" }, "pendingAmount": { "type": "number" }, "nextPaymentDate": { "type": "string" }, "nextPaymentAmount": { "type": "number" }, "activeSponsorships": { "type": "number" }, "averageMonthlySpend": { "type": "number" } }, "required": [ "totalSpent", "pendingAmount", "nextPaymentDate", "nextPaymentAmount", "activeSponsorships", "averageMonthlySpend" ] }, "CompleteOnboardingInputDTO": { "type": "object", "properties": { "firstName": { "type": "string" }, "lastName": { "type": "string" }, "displayName": { "type": "string" }, "country": { "type": "string" }, "timezone": { "type": "string" }, "bio": { "type": "string" } }, "required": [ "firstName", "lastName", "displayName", "country" ] }, "CompleteOnboardingOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "driverId": { "type": "string" }, "errorMessage": { "type": "string" } }, "required": [ "success" ] }, "CreateLeagueInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "visibility": { "type": "string" }, "ownerId": { "type": "string" } }, "required": [ "name", "description", "visibility", "ownerId" ] }, "CreateLeagueOutputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "success": { "type": "boolean" } }, "required": [ "leagueId", "success" ] }, "CreateLeagueScheduleRaceInputDTO": { "type": "object", "properties": { "track": { "type": "string" }, "car": { "type": "string" }, "example": { "type": "string" }, "scheduledAtIso": { "type": "string" } }, "required": [ "track", "car", "example", "scheduledAtIso" ] }, "CreateLeagueScheduleRaceOutputDTO": { "type": "object", "properties": { "raceId": { "type": "string" } }, "required": [ "raceId" ] }, "CreatePaymentInputDTO": { "type": "object", "properties": { "type": { "type": "string" }, "amount": { "type": "number" }, "payerId": { "type": "string" }, "payerType": { "type": "string" }, "leagueId": { "type": "string" }, "seasonId": { "type": "string" } }, "required": [ "type", "amount", "payerId", "payerType", "leagueId" ] }, "CreatePaymentOutputDTO": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/PaymentDTO" } }, "required": [ "payment" ] }, "CreatePrizeResultDTO": { "type": "object", "properties": { "prize": { "$ref": "#/components/schemas/PrizeDTO" } }, "required": [ "prize" ] }, "CreateSponsorInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "contactEmail": { "type": "string" }, "websiteUrl": { "type": "string" }, "logoUrl": { "type": "string" } }, "required": [ "name", "contactEmail" ] }, "CreateSponsorOutputDTO": { "type": "object", "properties": { "sponsor": { "$ref": "#/components/schemas/SponsorDTO" } }, "required": [ "sponsor" ] }, "CreateTeamInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "tag": { "type": "string" }, "description": { "type": "string" } }, "required": [ "name", "tag" ] }, "CreateTeamOutputDTO": { "type": "object", "properties": { "id": { "type": "string" }, "success": { "type": "boolean" } }, "required": [ "id", "success" ] }, "DashboardDriverSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "category": { "type": "string", "nullable": true }, "rating": { "type": "number", "nullable": true }, "globalRank": { "type": "number", "nullable": true }, "totalRaces": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "consistency": { "type": "number", "nullable": true } }, "required": [ "id", "name", "country", "totalRaces", "wins", "podiums" ] }, "DashboardFeedItemSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "headline": { "type": "string" }, "body": { "type": "string" }, "timestamp": { "type": "string" }, "ctaLabel": { "type": "string" }, "ctaHref": { "type": "string" } }, "required": [ "id", "type", "headline", "timestamp" ] }, "DashboardFeedSummaryDTO": { "type": "object", "properties": { "notificationCount": { "type": "number" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardFeedItemSummaryDTO" } } }, "required": [ "notificationCount", "items" ] }, "DashboardFriendSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "id", "name", "country" ] }, "DashboardLeagueStandingSummaryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "leagueName": { "type": "string" }, "position": { "type": "number" }, "totalDrivers": { "type": "number" }, "points": { "type": "number" } }, "required": [ "leagueId", "leagueName", "position", "totalDrivers", "points" ] }, "DashboardOverviewDTO": { "type": "object", "properties": { "currentDriver": { "$ref": "#/components/schemas/DashboardDriverSummaryDTO", "nullable": true }, "myUpcomingRaces": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardRaceSummaryDTO" } }, "otherUpcomingRaces": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardRaceSummaryDTO" } }, "upcomingRaces": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardRaceSummaryDTO" } }, "activeLeaguesCount": { "type": "number" }, "nextRace": { "$ref": "#/components/schemas/DashboardRaceSummaryDTO", "nullable": true }, "recentResults": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardRecentResultDTO" } }, "leagueStandingsSummaries": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardLeagueStandingSummaryDTO" } }, "feedSummary": { "$ref": "#/components/schemas/DashboardFeedSummaryDTO" }, "friends": { "type": "array", "items": { "$ref": "#/components/schemas/DashboardFriendSummaryDTO" } } }, "required": [ "myUpcomingRaces", "otherUpcomingRaces", "upcomingRaces", "activeLeaguesCount", "recentResults", "leagueStandingsSummaries", "feedSummary", "friends" ] }, "DashboardRaceSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string", "nullable": true }, "leagueName": { "type": "string", "nullable": true }, "track": { "type": "string" }, "car": { "type": "string" }, "scheduledAt": { "type": "string" }, "status": { "type": "string" }, "isMyLeague": { "type": "boolean" } }, "required": [ "id", "track", "car", "scheduledAt", "status", "isMyLeague" ] }, "DashboardRecentResultDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "raceName": { "type": "string" }, "leagueId": { "type": "string", "nullable": true }, "leagueName": { "type": "string", "nullable": true }, "finishedAt": { "type": "string" }, "position": { "type": "number" }, "incidents": { "type": "number" } }, "required": [ "raceId", "raceName", "finishedAt", "position", "incidents" ] }, "DashboardStatsResponseDTO": { "type": "object", "properties": { "totalUsers": { "type": "number" }, "activeUsers": { "type": "number" }, "suspendedUsers": { "type": "number" }, "deletedUsers": { "type": "number" }, "systemAdmins": { "type": "number" }, "recentLogins": { "type": "number" }, "newUsersToday": { "type": "number" } }, "required": [ "totalUsers", "activeUsers", "suspendedUsers", "deletedUsers", "systemAdmins", "recentLogins", "newUsersToday" ] }, "DeleteMediaOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success" ] }, "DeletePrizeResultDTO": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "DriverDTO": { "type": "object", "properties": { "id": { "type": "string" }, "iracingId": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "bio": { "type": "string" }, "joinedAt": { "type": "string" }, "category": { "type": "string" } }, "required": [ "id", "iracingId", "name", "country", "joinedAt" ] }, "DriverLeaderboardItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "rating": { "type": "number" }, "skillLevel": { "type": "string" }, "category": { "type": "string" }, "nationality": { "type": "string" }, "racesCompleted": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "isActive": { "type": "boolean" }, "rank": { "type": "number" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "id", "name", "rating", "skillLevel", "nationality", "racesCompleted", "wins", "podiums", "isActive", "rank" ] }, "DriverProfileAchievementDTO": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "icon": { "type": "string" }, "rarity": { "type": "string" }, "earnedAt": { "type": "string" } }, "required": [ "id", "title", "description", "icon", "rarity", "earnedAt" ] }, "DriverProfileDriverSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "iracingId": { "type": "string", "nullable": true }, "joinedAt": { "type": "string" }, "category": { "type": "string", "nullable": true }, "rating": { "type": "number", "nullable": true }, "globalRank": { "type": "number", "nullable": true }, "consistency": { "type": "number", "nullable": true }, "bio": { "type": "string", "nullable": true }, "totalDrivers": { "type": "number", "nullable": true } }, "required": [ "id", "name", "country", "joinedAt" ] }, "DriverProfileExtendedProfileDTO": { "type": "object", "properties": { "socialHandles": { "type": "array", "items": { "$ref": "#/components/schemas/DriverProfileSocialHandleDTO" } }, "achievements": { "type": "array", "items": { "$ref": "#/components/schemas/DriverProfileAchievementDTO" } }, "racingStyle": { "type": "string" }, "favoriteTrack": { "type": "string" }, "favoriteCar": { "type": "string" }, "timezone": { "type": "string" }, "availableHours": { "type": "string" }, "lookingForTeam": { "type": "boolean" }, "openToRequests": { "type": "boolean" } }, "required": [ "socialHandles", "achievements", "racingStyle", "favoriteTrack", "favoriteCar", "timezone", "availableHours", "lookingForTeam", "openToRequests" ] }, "DriverProfileFinishDistributionDTO": { "type": "object", "properties": { "totalRaces": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "topTen": { "type": "number" }, "dnfs": { "type": "number" }, "other": { "type": "number" } }, "required": [ "totalRaces", "wins", "podiums", "topTen", "dnfs", "other" ] }, "DriverProfileSocialFriendSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "id", "name", "country" ] }, "DriverProfileSocialHandleDTO": { "type": "object", "properties": { "platform": { "type": "string" }, "handle": { "type": "string" }, "url": { "type": "string" } }, "required": [ "platform", "handle", "url" ] }, "DriverProfileSocialSummaryDTO": { "type": "object", "properties": { "friendsCount": { "type": "number" }, "friends": { "type": "array", "items": { "$ref": "#/components/schemas/DriverProfileSocialFriendSummaryDTO" } } }, "required": [ "friendsCount", "friends" ] }, "DriverProfileStatsDTO": { "type": "object", "properties": { "totalRaces": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "dnfs": { "type": "number" }, "avgFinish": { "type": "number", "nullable": true }, "bestFinish": { "type": "number", "nullable": true }, "worstFinish": { "type": "number", "nullable": true }, "finishRate": { "type": "number", "nullable": true }, "winRate": { "type": "number", "nullable": true }, "podiumRate": { "type": "number", "nullable": true }, "percentile": { "type": "number", "nullable": true }, "rating": { "type": "number", "nullable": true }, "consistency": { "type": "number", "nullable": true }, "overallRank": { "type": "number", "nullable": true } }, "required": [ "totalRaces", "wins", "podiums", "dnfs" ] }, "DriverProfileTeamMembershipDTO": { "type": "object", "properties": { "teamId": { "type": "string" }, "teamName": { "type": "string" }, "teamTag": { "type": "string", "nullable": true }, "role": { "type": "string" }, "joinedAt": { "type": "string" }, "isCurrent": { "type": "boolean" } }, "required": [ "teamId", "teamName", "role", "joinedAt", "isCurrent" ] }, "DriverRegistrationStatusDTO": { "type": "object", "properties": { "isRegistered": { "type": "boolean" }, "raceId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "isRegistered", "raceId", "driverId" ] }, "DriversLeaderboardDTO": { "type": "object", "properties": { "drivers": { "type": "array", "items": { "$ref": "#/components/schemas/DriverLeaderboardItemDTO" } }, "totalRaces": { "type": "number" }, "totalWins": { "type": "number" }, "activeCount": { "type": "number" } }, "required": [ "drivers", "totalRaces", "totalWins", "activeCount" ] }, "DriverStatsDTO": { "type": "object", "properties": { "totalDrivers": { "type": "number" } }, "required": [ "totalDrivers" ] }, "DriverSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "rating": { "type": "number", "nullable": true }, "globalRank": { "type": "number", "nullable": true }, "totalRaces": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "consistency": { "type": "number", "nullable": true } }, "required": [ "id", "name" ] }, "FileProtestCommandDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "protestingDriverId": { "type": "string" }, "accusedDriverId": { "type": "string" }, "incident": { "$ref": "#/components/schemas/ProtestIncidentDTO" }, "comment": { "type": "string" }, "proofVideoUrl": { "type": "string" } }, "required": [ "raceId", "protestingDriverId", "accusedDriverId", "incident" ] }, "ForgotPasswordDTO": { "type": "object", "properties": { "email": { "type": "string" } }, "required": [ "email" ] }, "FullTransactionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "walletId": { "type": "string" }, "type": { "type": "string" }, "amount": { "type": "number" }, "description": { "type": "string" }, "referenceId": { "type": "string" }, "referenceType": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" }, "sponsorId": { "type": "string" } }, "required": [ "id", "walletId", "type", "amount", "description", "createdAt" ] }, "GetAllTeamsOutputDTO": { "type": "object", "properties": { "teams": { "type": "array", "items": { "$ref": "#/components/schemas/TeamListItemDTO" } }, "totalCount": { "type": "number" } }, "required": [ "teams", "totalCount" ] }, "GetAnalyticsMetricsOutputDTO": { "type": "object", "properties": { "pageViews": { "type": "number" }, "uniqueVisitors": { "type": "number" }, "averageSessionDuration": { "type": "number" }, "bounceRate": { "type": "number" } }, "required": [ "pageViews", "uniqueVisitors", "averageSessionDuration", "bounceRate" ] }, "GetAvatarOutputDTO": { "type": "object", "properties": { "avatarUrl": { "type": "string", "nullable": true } } }, "GetDashboardDataOutputDTO": { "type": "object", "properties": { "totalUsers": { "type": "number" }, "activeUsers": { "type": "number" }, "totalRaces": { "type": "number" }, "totalLeagues": { "type": "number" } }, "required": [ "totalUsers", "activeUsers", "totalRaces", "totalLeagues" ] }, "GetDriverLiveriesOutputDTO": { "type": "object", "properties": { "liveries": { "type": "array", "items": { "$ref": "#/components/schemas/LiveryDTO" } } }, "required": [ "liveries" ] }, "GetDriverOutputDTO": { "type": "object", "properties": { "id": { "type": "string" }, "iracingId": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "bio": { "type": "string" }, "joinedAt": { "type": "string" }, "category": { "type": "string" }, "rating": { "type": "number" }, "experienceLevel": { "type": "string" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "totalRaces": { "type": "number" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "id", "iracingId", "name", "country", "joinedAt" ] }, "GetDriverProfileOutputDTO": { "type": "object", "properties": { "currentDriver": { "$ref": "#/components/schemas/DriverProfileDriverSummaryDTO" }, "stats": { "$ref": "#/components/schemas/DriverProfileStatsDTO" }, "finishDistribution": { "$ref": "#/components/schemas/DriverProfileFinishDistributionDTO" }, "teamMemberships": { "type": "array", "items": { "$ref": "#/components/schemas/DriverProfileTeamMembershipDTO" } }, "socialSummary": { "$ref": "#/components/schemas/DriverProfileSocialSummaryDTO" }, "extendedProfile": { "$ref": "#/components/schemas/DriverProfileExtendedProfileDTO" } }, "required": [ "teamMemberships", "socialSummary" ] }, "GetDriverRegistrationStatusQueryDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "raceId", "driverId" ] }, "GetDriverTeamOutputDTO": { "type": "object", "properties": { "team": { "$ref": "#/components/schemas/TeamDTO" }, "membership": { "$ref": "#/components/schemas/TeamMembershipDTO" }, "isOwner": { "type": "boolean" }, "canManage": { "type": "boolean" } }, "required": [ "team", "membership", "isOwner", "canManage" ] }, "GetEntitySponsorshipPricingResultDTO": { "type": "object", "properties": { "entityType": { "type": "string" }, "entityId": { "type": "string" }, "pricing": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipPricingItemDTO" } } }, "required": [ "entityType", "entityId", "pricing" ] }, "GetLeagueAdminConfigOutputDTO": { "type": "object", "properties": { "form": { "$ref": "#/components/schemas/LeagueConfigFormModelDTO" } } }, "GetLeagueAdminConfigQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueAdminPermissionsInputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueJoinRequestsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueOwnerSummaryQueryDTO": { "type": "object", "properties": { "ownerId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "ownerId", "leagueId" ] }, "GetLeagueProtestsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueRacesOutputDTO": { "type": "object", "properties": { "races": { "type": "array", "items": { "$ref": "#/components/schemas/RaceDTO" } } }, "required": [ "races" ] }, "GetLeagueScheduleQueryDTO": { "type": "object", "properties": { "seasonId": { "type": "string" } } }, "GetLeagueSeasonsQueryDTO": { "type": "object", "properties": { "leagueId": { "type": "string" } }, "required": [ "leagueId" ] }, "GetLeagueWalletOutputDTO": { "type": "object", "properties": { "balance": { "type": "number" }, "currency": { "type": "string" }, "totalRevenue": { "type": "number" }, "totalFees": { "type": "number" }, "totalWithdrawals": { "type": "number" }, "pendingPayouts": { "type": "number" }, "canWithdraw": { "type": "boolean" }, "withdrawalBlockReason": { "type": "string" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/WalletTransactionDTO" } } }, "required": [ "balance", "currency", "totalRevenue", "totalFees", "totalWithdrawals", "pendingPayouts", "canWithdraw", "transactions" ] }, "GetMediaOutputDTO": { "type": "object", "properties": { "id": { "type": "string" }, "url": { "type": "string" }, "type": { "type": "string" }, "category": { "type": "string" }, "uploadedAt": { "type": "string", "format": "date-time" }, "size": { "type": "number" } }, "required": [ "id", "url", "type", "uploadedAt" ] }, "GetMembershipFeesResultDTO": { "type": "object", "properties": { "fee": { "$ref": "#/components/schemas/MembershipFeeDTO" }, "payments": { "type": "array", "items": { "$ref": "#/components/schemas/MemberPaymentDTO" } } }, "required": [ "payments" ] }, "GetPendingSponsorshipRequestsOutputDTO": { "type": "object", "properties": { "entityType": { "type": "string" }, "entityId": { "type": "string" }, "requests": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipRequestDTO" } }, "totalCount": { "type": "number" } }, "required": [ "entityType", "entityId", "requests", "totalCount" ] }, "GetPrizesResultDTO": { "type": "object", "properties": { "prizes": { "type": "array", "items": { "$ref": "#/components/schemas/PrizeDTO" } } }, "required": [ "prizes" ] }, "GetRaceDetailParamsDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "raceId" ] }, "GetSeasonSponsorshipsOutputDTO": { "type": "object", "properties": { "sponsorships": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipDetailDTO" } } }, "required": [ "sponsorships" ] }, "GetSponsorDashboardQueryParamsDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" } }, "required": [ "sponsorId" ] }, "GetSponsorOutputDTO": { "type": "object", "properties": { "sponsor": { "$ref": "#/components/schemas/SponsorDTO" } }, "required": [ "sponsor" ] }, "GetSponsorsOutputDTO": { "type": "object", "properties": { "sponsors": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorDTO" } } }, "required": [ "sponsors" ] }, "GetSponsorSponsorshipsQueryParamsDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" } }, "required": [ "sponsorId" ] }, "GetTeamDetailsOutputDTO": { "type": "object", "properties": { "team": { "$ref": "#/components/schemas/TeamDTO" }, "membership": { "$ref": "#/components/schemas/TeamMembershipDTO" }, "canManage": { "type": "boolean" } }, "required": [ "team", "canManage" ] }, "GetTeamJoinRequestsOutputDTO": { "type": "object", "properties": { "requests": { "type": "array", "items": { "$ref": "#/components/schemas/TeamJoinRequestDTO" } }, "pendingCount": { "type": "number" }, "totalCount": { "type": "number" } }, "required": [ "requests", "pendingCount", "totalCount" ] }, "GetTeamMembershipOutputDTO": { "type": "object", "properties": { "role": { "type": "string" }, "joinedAt": { "type": "string" }, "isActive": { "type": "boolean" } }, "required": [ "role", "joinedAt", "isActive" ] }, "GetTeamMembersOutputDTO": { "type": "object", "properties": { "members": { "type": "array", "items": { "$ref": "#/components/schemas/TeamMemberDTO" } }, "totalCount": { "type": "number" }, "ownerCount": { "type": "number" }, "managerCount": { "type": "number" }, "memberCount": { "type": "number" } }, "required": [ "members", "totalCount", "ownerCount", "managerCount", "memberCount" ] }, "GetTeamsLeaderboardOutputDTO": { "type": "object", "properties": { "teams": { "type": "array", "items": { "$ref": "#/components/schemas/TeamLeaderboardItemDTO" } }, "recruitingCount": { "type": "number" }, "groupsBySkillLevel": { "type": "string" }, "topTeams": { "type": "array", "items": { "$ref": "#/components/schemas/TeamLeaderboardItemDTO" } } }, "required": [ "teams", "recruitingCount", "groupsBySkillLevel", "topTeams" ] }, "GetWalletResultDTO": { "type": "object", "properties": { "wallet": { "$ref": "#/components/schemas/WalletDTO" }, "transactions": { "type": "array", "items": { "$ref": "#/components/schemas/TransactionDTO" } } }, "required": [ "wallet", "transactions" ] }, "ImportRaceResultsDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "resultsFileContent": { "type": "string" } }, "required": [ "raceId", "resultsFileContent" ] }, "ImportRaceResultsSummaryDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "raceId": { "type": "string" }, "driversProcessed": { "type": "number" }, "resultsRecorded": { "type": "number" }, "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "success", "raceId", "driversProcessed", "resultsRecorded" ] }, "InvoiceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "invoiceNumber": { "type": "string" }, "date": { "type": "string" }, "dueDate": { "type": "string" }, "amount": { "type": "number" }, "vatAmount": { "type": "number" }, "totalAmount": { "type": "number" }, "status": { "type": "string" }, "description": { "type": "string" }, "sponsorshipType": { "type": "string" }, "pdfUrl": { "type": "string" } }, "required": [ "id", "invoiceNumber", "date", "dueDate", "amount", "vatAmount", "totalAmount", "status", "description", "sponsorshipType", "pdfUrl" ] }, "IracingAuthRedirectResultDTO": { "type": "object", "properties": { "redirectUrl": { "type": "string" }, "state": { "type": "string" } }, "required": [ "redirectUrl", "state" ] }, "LeagueAdminConfigDTO": { "type": "object", "properties": { "form": { "$ref": "#/components/schemas/LeagueConfigFormModelDTO" } } }, "LeagueAdminDTO": { "type": "object", "properties": { "joinRequests": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueJoinRequestDTO" } }, "ownerSummary": { "$ref": "#/components/schemas/LeagueOwnerSummaryDTO" }, "config": { "$ref": "#/components/schemas/LeagueAdminConfigDTO" }, "protests": { "$ref": "#/components/schemas/LeagueAdminProtestsDTO" }, "seasons": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueSeasonSummaryDTO" } } }, "required": [ "joinRequests", "config", "protests", "seasons" ] }, "LeagueAdminPermissionsDTO": { "type": "object", "properties": { "canRemoveMember": { "type": "boolean" }, "canUpdateRoles": { "type": "boolean" } }, "required": [ "canRemoveMember", "canUpdateRoles" ] }, "LeagueAdminProtestsDTO": { "type": "object", "properties": { "protests": { "type": "array", "items": { "$ref": "#/components/schemas/ProtestDTO" } }, "racesById": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/RaceDTO" } }, "driversById": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/DriverDTO" } } }, "required": [ "protests", "racesById", "driversById" ] }, "LeagueCapacityAndScoringSettingsDTO": { "type": "object", "properties": { "maxDrivers": { "type": "number" }, "sessionDuration": { "type": "number", "nullable": true }, "qualifyingFormat": { "type": "string", "nullable": true } }, "required": [ "maxDrivers" ] }, "LeagueCapacityAndScoringSocialLinksDTO": { "type": "object", "properties": { "discordUrl": { "type": "string", "nullable": true }, "youtubeUrl": { "type": "string", "nullable": true }, "websiteUrl": { "type": "string", "nullable": true } } }, "LeagueCapacityAndScoringSummaryScoringDTO": { "type": "object", "properties": { "gameId": { "type": "string" }, "gameName": { "type": "string" }, "primaryChampionshipType": { "type": "string" }, "scoringPresetId": { "type": "string" }, "scoringPresetName": { "type": "string" }, "dropPolicySummary": { "type": "string" }, "scoringPatternSummary": { "type": "string" } }, "required": [ "gameId", "gameName", "primaryChampionshipType", "scoringPresetId", "scoringPresetName", "dropPolicySummary", "scoringPatternSummary" ] }, "LeagueConfigFormModelBasicsDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "visibility": { "type": "string" } }, "required": [ "name", "description", "visibility" ] }, "LeagueConfigFormModelDropPolicyDTO": { "type": "object", "properties": { "strategy": { "type": "string" }, "n": { "type": "number" } }, "required": [ "strategy" ] }, "LeagueConfigFormModelDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "basics": { "$ref": "#/components/schemas/LeagueConfigFormModelBasicsDTO" }, "structure": { "$ref": "#/components/schemas/LeagueConfigFormModelStructureDTO" }, "championships": { "type": "array", "items": { "type": "object" } }, "scoring": { "$ref": "#/components/schemas/LeagueConfigFormModelScoringDTO" }, "dropPolicy": { "$ref": "#/components/schemas/LeagueConfigFormModelDropPolicyDTO" }, "timings": { "$ref": "#/components/schemas/LeagueConfigFormModelTimingsDTO" }, "stewarding": { "$ref": "#/components/schemas/LeagueConfigFormModelStewardingDTO" } }, "required": [ "leagueId", "basics", "structure", "championships", "scoring", "dropPolicy", "timings", "stewarding" ] }, "LeagueConfigFormModelScoringDTO": { "type": "object", "properties": { "type": { "type": "string" }, "points": { "type": "number" } }, "required": [ "type", "points" ] }, "LeagueConfigFormModelStewardingDTO": { "type": "object", "properties": { "decisionMode": { "type": "string" }, "requiredVotes": { "type": "number" }, "requireDefense": { "type": "boolean" }, "defenseTimeLimit": { "type": "number" }, "voteTimeLimit": { "type": "number" }, "protestDeadlineHours": { "type": "number" }, "stewardingClosesHours": { "type": "number" }, "notifyAccusedOnProtest": { "type": "boolean" }, "notifyOnVoteRequired": { "type": "boolean" } }, "required": [ "decisionMode", "requireDefense", "defenseTimeLimit", "voteTimeLimit", "protestDeadlineHours", "stewardingClosesHours", "notifyAccusedOnProtest", "notifyOnVoteRequired" ] }, "LeagueConfigFormModelStructureDTO": { "type": "object", "properties": { "mode": { "type": "string" } }, "required": [ "mode" ] }, "LeagueConfigFormModelTimingsDTO": { "type": "object", "properties": { "raceDayOfWeek": { "type": "string" }, "raceTimeHour": { "type": "number" }, "raceTimeMinute": { "type": "number" } }, "required": [ "raceDayOfWeek", "raceTimeHour", "raceTimeMinute" ] }, "LeagueDetailDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "game": { "type": "string" }, "tier": { "type": "string" }, "season": { "type": "string" }, "description": { "type": "string" }, "drivers": { "type": "number" }, "races": { "type": "number" }, "completedRaces": { "type": "number" }, "totalImpressions": { "type": "number" }, "avgViewsPerRace": { "type": "number" }, "engagement": { "type": "number" }, "rating": { "type": "number" }, "seasonStatus": { "type": "string" }, "seasonDates": { "type": "object" }, "start": { "type": "string" }, "end": { "type": "string" }, "nextRace": { "type": "object" }, "date": { "type": "string" }, "sponsorSlots": { "type": "object" }, "main": { "type": "object" }, "available": { "type": "number" }, "price": { "type": "number" }, "benefits": { "type": "array", "items": { "type": "string" } }, "secondary": { "type": "object" }, "total": { "type": "number" } }, "required": [ "id", "name", "game", "tier", "season", "description", "drivers", "races", "completedRaces", "totalImpressions", "avgViewsPerRace", "engagement", "rating", "seasonStatus", "seasonDates", "start", "end", "name", "date", "sponsorSlots", "main", "available", "price", "benefits", "secondary", "available", "total", "price", "benefits", "main", "secondary" ] }, "LeagueJoinRequestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" }, "requestedAt": { "type": "string", "format": "date-time" }, "message": { "type": "string" }, "driver": { "type": "string" } }, "required": [ "id", "leagueId", "driverId", "requestedAt" ] }, "LeagueMemberDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "driver": { "$ref": "#/components/schemas/DriverDTO" }, "role": { "type": "string" }, "joinedAt": { "type": "string" } }, "required": [ "driverId", "driver", "role", "joinedAt" ] }, "LeagueMembershipDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" }, "role": { "type": "string" }, "status": { "type": "string" }, "joinedAt": { "type": "string" } }, "required": [ "id", "leagueId", "driverId", "role", "status", "joinedAt" ] }, "LeagueMembershipsDTO": { "type": "object", "properties": { "members": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueMemberDTO" } } }, "required": [ "members" ] }, "LeagueOwnerSummaryDTO": { "type": "object", "properties": { "driver": { "$ref": "#/components/schemas/DriverDTO" }, "rating": { "type": "number", "nullable": true }, "rank": { "type": "number", "nullable": true } }, "required": [ "driver" ] }, "LeagueRoleDTO": { "type": "object", "properties": { "value": { "type": "string" } }, "required": [ "value" ] }, "LeagueRosterJoinRequestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" }, "requestedAt": { "type": "string" }, "message": { "type": "string" }, "driver": { "$ref": "#/components/schemas/LeagueRosterJoinRequestDriverDTO" } }, "required": [ "id", "leagueId", "driverId", "requestedAt", "driver" ] }, "LeagueRosterMemberDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "driver": { "$ref": "#/components/schemas/DriverDTO" }, "role": { "type": "string" }, "joinedAt": { "type": "string" } }, "required": [ "driverId", "driver", "role", "joinedAt" ] }, "LeagueScheduleDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "seasonId": { "type": "string" }, "published": { "type": "boolean" }, "races": { "type": "array", "items": { "$ref": "#/components/schemas/RaceDTO" } } }, "required": [ "seasonId", "published", "races" ] }, "LeagueScheduleRaceMutationSuccessDTO": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "LeagueScoringChampionshipDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "sessionTypes": { "type": "array", "items": { "type": "string" } }, "pointsPreview": { "type": "array", "items": { "type": "object" } }, "bonusSummary": { "type": "array", "items": { "type": "string" } }, "dropPolicyDescription": { "type": "string" } }, "required": [ "id", "name", "type", "sessionTypes", "pointsPreview", "bonusSummary", "dropPolicyDescription" ] }, "LeagueScoringConfigDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "seasonId": { "type": "string" }, "gameId": { "type": "string" }, "gameName": { "type": "string" }, "scoringPresetId": { "type": "string" }, "scoringPresetName": { "type": "string" }, "dropPolicySummary": { "type": "string" }, "championships": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueScoringChampionshipDTO" } } }, "required": [ "leagueId", "seasonId", "gameId", "gameName", "dropPolicySummary", "championships" ] }, "LeagueScoringPresetDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "primaryChampionshipType": { "type": "string" }, "sessionSummary": { "type": "string" }, "bonusSummary": { "type": "string" }, "dropPolicySummary": { "type": "string" }, "defaultTimings": { "$ref": "#/components/schemas/LeagueScoringPresetTimingDefaultsDTO" } }, "required": [ "id", "name", "description", "primaryChampionshipType", "sessionSummary", "bonusSummary", "dropPolicySummary", "defaultTimings" ] }, "LeagueScoringPresetsDTO": { "type": "object", "properties": { "presets": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueScoringPresetDTO" } }, "totalCount": { "type": "number" } }, "required": [ "presets", "totalCount" ] }, "LeagueScoringPresetTimingDefaultsDTO": { "type": "object", "properties": { "practiceMinutes": { "type": "number" }, "qualifyingMinutes": { "type": "number" }, "sprintRaceMinutes": { "type": "number" }, "mainRaceMinutes": { "type": "number" }, "sessionCount": { "type": "number" } }, "required": [ "practiceMinutes", "qualifyingMinutes", "sprintRaceMinutes", "mainRaceMinutes", "sessionCount" ] }, "LeagueSeasonSchedulePublishOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "published": { "type": "boolean" } }, "required": [ "success", "published" ] }, "LeagueSeasonSummaryDTO": { "type": "object", "properties": { "seasonId": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "startDate": { "type": "string", "format": "date-time" }, "endDate": { "type": "string", "format": "date-time" }, "isPrimary": { "type": "boolean" }, "isParallelActive": { "type": "boolean" }, "totalRaces": { "type": "number" }, "completedRaces": { "type": "number" }, "nextRaceAt": { "type": "string", "format": "date-time" } }, "required": [ "seasonId", "name", "status", "isPrimary", "isParallelActive", "totalRaces", "completedRaces" ] }, "LeagueSettingsDTO": { "type": "object", "properties": { "maxDrivers": { "type": "number", "nullable": true } } }, "LeagueStandingDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "driver": { "$ref": "#/components/schemas/DriverDTO" }, "points": { "type": "number" }, "position": { "type": "number" }, "wins": { "type": "number" }, "podiums": { "type": "number" }, "races": { "type": "number" }, "positionChange": { "type": "number" }, "lastRacePoints": { "type": "number" }, "droppedRaceIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "driverId", "driver", "points", "position", "wins", "podiums", "races", "positionChange", "lastRacePoints", "droppedRaceIds" ] }, "LeagueStandingsDTO": { "type": "object", "properties": { "standings": { "type": "array", "items": { "$ref": "#/components/schemas/LeagueStandingDTO" } } }, "required": [ "standings" ] }, "LeagueStatsDTO": { "type": "object", "properties": { "totalMembers": { "type": "number" }, "totalRaces": { "type": "number" }, "averageRating": { "type": "number" } }, "required": [ "totalMembers", "totalRaces", "averageRating" ] }, "LeagueSummaryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "nullable": true }, "coverImage": { "type": "string", "nullable": true }, "memberCount": { "type": "number" }, "maxMembers": { "type": "number" }, "isPublic": { "type": "boolean" }, "ownerId": { "type": "string" }, "ownerName": { "type": "string", "nullable": true }, "scoringType": { "type": "string", "nullable": true }, "status": { "type": "string", "nullable": true } }, "required": [ "id", "name", "memberCount", "maxMembers", "isPublic", "ownerId" ] }, "LeagueWithCapacityAndScoringDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "ownerId": { "type": "string" }, "createdAt": { "type": "string" }, "settings": { "$ref": "#/components/schemas/LeagueCapacityAndScoringSettingsDTO" }, "usedSlots": { "type": "number" }, "category": { "type": "string", "nullable": true }, "socialLinks": { "$ref": "#/components/schemas/LeagueCapacityAndScoringSocialLinksDTO", "nullable": true }, "scoring": { "$ref": "#/components/schemas/LeagueCapacityAndScoringSummaryScoringDTO", "nullable": true }, "timingSummary": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "nullable": true }, "pendingJoinRequestsCount": { "type": "number" }, "pendingProtestsCount": { "type": "number" }, "walletBalance": { "type": "number" } }, "required": [ "id", "name", "description", "ownerId", "createdAt", "settings", "usedSlots" ] }, "LeagueWithCapacityDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "ownerId": { "type": "string" }, "settings": { "type": "string" }, "createdAt": { "type": "string" }, "socialLinks": { "type": "string", "nullable": true }, "usedSlots": { "type": "number" } }, "required": [ "id", "name", "description", "ownerId", "settings", "createdAt", "usedSlots" ] }, "ListUsersRequestDTO": { "type": "object", "properties": { "role": { "type": "string" }, "status": { "type": "string" }, "email": { "type": "string" }, "search": { "type": "string" }, "page": { "type": "number" }, "limit": { "type": "number" }, "sortBy": { "type": "string" }, "sortDirection": { "type": "string" } } }, "LoginParamsDTO": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "rememberMe": { "type": "boolean" } }, "required": [ "email", "password" ] }, "LoginWithIracingCallbackParamsDTO": { "type": "object", "properties": { "code": { "type": "string" }, "state": { "type": "string" }, "returnTo": { "type": "string" } }, "required": [ "code", "state" ] }, "MemberPaymentDTO": { "type": "object", "properties": { "id": { "type": "string" }, "feeId": { "type": "string" }, "driverId": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "status": { "type": "string" }, "dueDate": { "type": "string", "format": "date-time" }, "paidAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "feeId", "driverId", "amount", "platformFee", "netAmount", "status", "dueDate" ] }, "MembershipFeeDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "seasonId": { "type": "string" }, "type": { "type": "string" }, "amount": { "type": "number" }, "enabled": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "leagueId", "type", "amount", "enabled", "createdAt", "updatedAt" ] }, "MembershipRoleDTO": { "type": "object", "properties": { "value": { "type": "string" } }, "required": [ "value" ] }, "MembershipStatusDTO": { "type": "object", "properties": { "value": { "type": "string" } }, "required": [ "value" ] }, "NotificationSettingsDTO": { "type": "object", "properties": { "emailNewSponsorships": { "type": "boolean" }, "emailWeeklyReport": { "type": "boolean" }, "emailRaceAlerts": { "type": "boolean" }, "emailPaymentAlerts": { "type": "boolean" }, "emailNewOpportunities": { "type": "boolean" }, "emailContractExpiry": { "type": "boolean" } }, "required": [ "emailNewSponsorships", "emailWeeklyReport", "emailRaceAlerts", "emailPaymentAlerts", "emailNewOpportunities", "emailContractExpiry" ] }, "PaymentDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "amount": { "type": "number" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" }, "payerId": { "type": "string" }, "payerType": { "type": "string" }, "leagueId": { "type": "string" }, "seasonId": { "type": "string" }, "status": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "completedAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "type", "amount", "platformFee", "netAmount", "payerId", "payerType", "leagueId", "status", "createdAt" ] }, "PaymentMethodDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "last4": { "type": "string" }, "brand": { "type": "string" }, "isDefault": { "type": "boolean" }, "expiryMonth": { "type": "number" }, "expiryYear": { "type": "number" }, "bankName": { "type": "string" } }, "required": [ "id", "type", "last4", "isDefault" ] }, "PenaltyDefaultReasonsDTO": { "type": "object", "properties": { "upheld": { "type": "string" }, "dismissed": { "type": "string" } }, "required": [ "upheld", "dismissed" ] }, "PenaltyTypeReferenceDTO": { "type": "object", "properties": { "type": { "type": "string" }, "requiresValue": { "type": "boolean" }, "valueKind": { "$ref": "#/components/schemas/PenaltyValueKindDTO" } }, "required": [ "type", "requiresValue", "valueKind" ] }, "PenaltyTypesReferenceDTO": { "type": "object", "properties": { "penaltyTypes": { "type": "array", "items": { "$ref": "#/components/schemas/PenaltyTypeReferenceDTO" } }, "defaultReasons": { "$ref": "#/components/schemas/PenaltyDefaultReasonsDTO" } }, "required": [ "penaltyTypes", "defaultReasons" ] }, "PrivacySettingsDTO": { "type": "object", "properties": { "publicProfile": { "type": "boolean" }, "showStats": { "type": "boolean" }, "showActiveSponsorships": { "type": "boolean" }, "allowDirectContact": { "type": "boolean" } }, "required": [ "publicProfile", "showStats", "showActiveSponsorships", "allowDirectContact" ] }, "PrizeDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "seasonId": { "type": "string" }, "position": { "type": "number" }, "name": { "type": "string" }, "amount": { "type": "number" }, "type": { "type": "string" }, "description": { "type": "string" }, "awarded": { "type": "boolean" }, "awardedTo": { "type": "string" }, "awardedAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "leagueId", "seasonId", "position", "name", "amount", "type", "awarded", "createdAt" ] }, "ProcessWalletTransactionResultDTO": { "type": "object", "properties": { "wallet": { "$ref": "#/components/schemas/WalletDTO" }, "transaction": { "$ref": "#/components/schemas/TransactionDTO" } }, "required": [ "wallet", "transaction" ] }, "ProtestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "raceId": { "type": "string" }, "protestingDriverId": { "type": "string" }, "accusedDriverId": { "type": "string" }, "submittedAt": { "type": "string", "format": "date-time" }, "description": { "type": "string" }, "status": { "type": "string" } }, "required": [ "id", "leagueId", "raceId", "protestingDriverId", "accusedDriverId", "submittedAt", "description", "status" ] }, "ProtestIncidentDTO": { "type": "object", "properties": { "lap": { "type": "number" }, "description": { "type": "string" }, "timeInRace": { "type": "number" } }, "required": [ "lap", "description" ] }, "QuickPenaltyCommandDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" }, "adminId": { "type": "string" }, "infractionType": { "type": "string" }, "severity": { "type": "string" }, "notes": { "type": "string" } }, "required": [ "raceId", "driverId", "adminId", "infractionType", "severity" ] }, "RaceActionParamsDTO": { "type": "object", "properties": { "raceId": { "type": "string" } }, "required": [ "raceId" ] }, "RaceDetailDTO": { "type": "object", "properties": { "race": { "$ref": "#/components/schemas/RaceDetailRaceDTO", "nullable": true }, "league": { "$ref": "#/components/schemas/RaceDetailLeagueDTO", "nullable": true }, "entryList": { "type": "array", "items": { "$ref": "#/components/schemas/RaceDetailEntryDTO" } }, "registration": { "$ref": "#/components/schemas/RaceDetailRegistrationDTO" }, "userResult": { "$ref": "#/components/schemas/RaceDetailUserResultDTO", "nullable": true }, "error": { "type": "string" } }, "required": [ "entryList", "registration" ] }, "RaceDetailEntryDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "rating": { "type": "number", "nullable": true }, "isCurrentUser": { "type": "boolean" } }, "required": [ "id", "name", "country", "isCurrentUser" ] }, "RaceDetailLeagueDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "settings": { "type": "object" }, "maxDrivers": { "type": "number" }, "qualifyingFormat": { "type": "string" } }, "required": [ "id", "name", "description", "settings" ] }, "RaceDetailRaceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "track": { "type": "string" }, "car": { "type": "string" }, "scheduledAt": { "type": "string" }, "sessionType": { "type": "string" }, "status": { "type": "string" }, "strengthOfField": { "type": "number", "nullable": true }, "registeredCount": { "type": "number" }, "maxParticipants": { "type": "number" } }, "required": [ "id", "leagueId", "track", "car", "scheduledAt", "sessionType", "status" ] }, "RaceDetailRegistrationDTO": { "type": "object", "properties": { "isUserRegistered": { "type": "boolean" }, "canRegister": { "type": "boolean" } }, "required": [ "isUserRegistered", "canRegister" ] }, "RaceDetailUserResultDTO": { "type": "object", "properties": { "position": { "type": "number" }, "startPosition": { "type": "number" }, "incidents": { "type": "number" }, "fastestLap": { "type": "number" }, "positionChange": { "type": "number" }, "isPodium": { "type": "boolean" }, "isClean": { "type": "boolean" }, "ratingChange": { "type": "number", "nullable": true } }, "required": [ "position", "startPosition", "incidents", "fastestLap", "positionChange", "isPodium", "isClean" ] }, "RaceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "date": { "type": "string" }, "leagueName": { "type": "string" }, "track": { "type": "string" }, "car": { "type": "string" }, "sessionType": { "type": "string" }, "leagueId": { "type": "string" }, "strengthOfField": { "type": "number" }, "isUpcoming": { "type": "boolean" }, "isLive": { "type": "boolean" }, "isPast": { "type": "boolean" }, "status": { "type": "string" } }, "required": [ "id", "name", "date" ] }, "RacePenaltiesDTO": { "type": "object", "properties": { "penalties": { "type": "array", "items": { "$ref": "#/components/schemas/RacePenaltyDTO" } }, "driverMap": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "penalties", "driverMap" ] }, "RacePenaltyDTO": { "type": "object", "properties": { "id": { "type": "string" }, "driverId": { "type": "string" }, "type": { "type": "string" }, "value": { "type": "number" }, "reason": { "type": "string" }, "issuedBy": { "type": "string" }, "issuedAt": { "type": "string" }, "notes": { "type": "string", "nullable": true } }, "required": [ "id", "driverId", "type", "value", "reason", "issuedBy", "issuedAt" ] }, "RaceProtestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "protestingDriverId": { "type": "string" }, "accusedDriverId": { "type": "string" }, "incident": { "type": "object" }, "lap": { "type": "number" }, "description": { "type": "string" }, "status": { "type": "string" }, "filedAt": { "type": "string" } }, "required": [ "id", "protestingDriverId", "accusedDriverId", "incident", "lap", "description", "status", "filedAt" ] }, "RaceProtestsDTO": { "type": "object", "properties": { "protests": { "type": "array", "items": { "$ref": "#/components/schemas/RaceProtestDTO" } }, "driverMap": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "protests", "driverMap" ] }, "RaceResultDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "driverName": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true }, "position": { "type": "number" }, "startPosition": { "type": "number" }, "incidents": { "type": "number" }, "fastestLap": { "type": "number" }, "positionChange": { "type": "number" }, "isPodium": { "type": "boolean" }, "isClean": { "type": "boolean" } }, "required": [ "driverId", "driverName", "position", "startPosition", "incidents", "fastestLap", "positionChange", "isPodium", "isClean" ] }, "RaceResultsDetailDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "track": { "type": "string" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/RaceResultDTO" } } }, "required": [ "raceId", "track", "results" ] }, "RacesPageDataDTO": { "type": "object", "properties": { "races": { "type": "array", "items": { "$ref": "#/components/schemas/RacesPageDataRaceDTO" } } }, "required": [ "races" ] }, "RacesPageDataRaceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "track": { "type": "string" }, "car": { "type": "string" }, "scheduledAt": { "type": "string" }, "status": { "type": "string" }, "leagueId": { "type": "string" }, "leagueName": { "type": "string" }, "strengthOfField": { "type": "number", "nullable": true }, "isUpcoming": { "type": "boolean" }, "isLive": { "type": "boolean" }, "isPast": { "type": "boolean" } }, "required": [ "id", "track", "car", "scheduledAt", "status", "leagueId", "leagueName", "isUpcoming", "isLive", "isPast" ] }, "RaceStatsDTO": { "type": "object", "properties": { "totalRaces": { "type": "number" } }, "required": [ "totalRaces" ] }, "RaceWithSOFDTO": { "type": "object", "properties": { "id": { "type": "string" }, "track": { "type": "string" }, "strengthOfField": { "type": "number", "nullable": true } }, "required": [ "id", "track" ] }, "RecordEngagementInputDTO": { "type": "object", "properties": { "action": { "type": "string" }, "entityType": { "type": "string" }, "entityId": { "type": "string" }, "actorId": { "type": "string" }, "actorType": { "type": "string" }, "sessionId": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "action", "entityType", "entityId", "actorType", "sessionId" ] }, "RecordEngagementOutputDTO": { "type": "object", "properties": { "eventId": { "type": "string" }, "engagementWeight": { "type": "number" } }, "required": [ "eventId", "engagementWeight" ] }, "RecordPageViewInputDTO": { "type": "object", "properties": { "entityType": { "type": "string" }, "entityId": { "type": "string" }, "visitorId": { "type": "string" }, "visitorType": { "type": "string" }, "sessionId": { "type": "string" }, "referrer": { "type": "string" }, "userAgent": { "type": "string" }, "country": { "type": "string" } }, "required": [ "entityType", "entityId", "visitorType", "sessionId" ] }, "RecordPageViewOutputDTO": { "type": "object", "properties": { "pageViewId": { "type": "string" } }, "required": [ "pageViewId" ] }, "RegisterForRaceParamsDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "leagueId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "raceId", "leagueId", "driverId" ] }, "RejectJoinRequestInputDTO": { "type": "object", "properties": { "requestId": { "type": "string" }, "leagueId": { "type": "string" } }, "required": [ "requestId", "leagueId" ] }, "RejectJoinRequestOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "success" ] }, "RejectSponsorshipRequestInputDTO": { "type": "object", "properties": { "respondedBy": { "type": "string" }, "reason": { "type": "string" } }, "required": [ "respondedBy" ] }, "RemoveLeagueMemberInputDTO": { "type": "object", "properties": { "leagueId": { "type": "string" }, "targetDriverId": { "type": "string" } }, "required": [ "leagueId", "targetDriverId" ] }, "RemoveLeagueMemberOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success" ] }, "RenewalAlertDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "renewDate": { "type": "string" }, "price": { "type": "number" } }, "required": [ "id", "name", "type", "renewDate", "price" ] }, "RequestAvatarGenerationInputDTO": { "type": "object", "properties": { "userId": { "type": "string" }, "facePhotoData": { "type": "string" }, "suitColor": { "type": "string" } }, "required": [ "userId", "facePhotoData", "suitColor" ] }, "RequestAvatarGenerationOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "requestId": { "type": "string" }, "avatarUrls": { "type": "array", "items": { "type": "string" } }, "errorMessage": { "type": "string" } }, "required": [ "success" ] }, "RequestProtestDefenseCommandDTO": { "type": "object", "properties": { "protestId": { "type": "string" }, "stewardId": { "type": "string" } }, "required": [ "protestId", "stewardId" ] }, "ResetPasswordDTO": { "type": "object", "properties": { "token": { "type": "string" }, "newPassword": { "type": "string" } }, "required": [ "token", "newPassword" ] }, "ReviewProtestCommandDTO": { "type": "object", "properties": { "protestId": { "type": "string" }, "stewardId": { "type": "string" }, "decision": { "type": "string" }, "decisionNotes": { "type": "string" } }, "required": [ "protestId", "stewardId", "decision", "decisionNotes" ] }, "SeasonDTO": { "type": "object", "properties": { "seasonId": { "type": "string" }, "name": { "type": "string" }, "leagueId": { "type": "string" }, "startDate": { "type": "string", "format": "date-time" }, "endDate": { "type": "string", "format": "date-time" }, "status": { "type": "string" }, "isPrimary": { "type": "boolean" }, "seasonGroupId": { "type": "string" } }, "required": [ "seasonId", "name", "leagueId", "status", "isPrimary" ] }, "SignupParamsDTO": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "displayName": { "type": "string" }, "username": { "type": "string" }, "iracingCustomerId": { "type": "string" }, "primaryDriverId": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "email", "password", "displayName" ] }, "SignupSponsorParamsDTO": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "displayName": { "type": "string" }, "companyName": { "type": "string" } }, "required": [ "email", "password", "displayName", "companyName" ] }, "SponsorDashboardDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" }, "sponsorName": { "type": "string" }, "metrics": { "$ref": "#/components/schemas/SponsorDashboardMetricsDTO" }, "sponsoredLeagues": { "type": "array", "items": { "$ref": "#/components/schemas/SponsoredLeagueDTO" } }, "investment": { "$ref": "#/components/schemas/SponsorDashboardInvestmentDTO" }, "sponsorships": { "type": "object" }, "leagues": { "type": "string" }, "teams": { "type": "string" }, "drivers": { "type": "string" }, "races": { "type": "string" }, "platform": { "type": "array", "items": { "type": "string" } }, "recentActivity": { "type": "array", "items": { "$ref": "#/components/schemas/ActivityItemDTO" } }, "upcomingRenewals": { "type": "array", "items": { "$ref": "#/components/schemas/RenewalAlertDTO" } } }, "required": [ "sponsorId", "sponsorName", "metrics", "sponsoredLeagues", "investment", "sponsorships", "leagues", "teams", "drivers", "races", "platform", "leagues", "teams", "drivers", "races", "platform", "recentActivity", "upcomingRenewals" ] }, "SponsorDashboardInvestmentDTO": { "type": "object", "properties": { "activeSponsorships": { "type": "number" }, "totalInvestment": { "type": "number" }, "costPerThousandViews": { "type": "number" } }, "required": [ "activeSponsorships", "totalInvestment", "costPerThousandViews" ] }, "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" ] }, "SponsorDriverDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "country": { "type": "string" }, "position": { "type": "number" }, "races": { "type": "number" }, "impressions": { "type": "number" }, "team": { "type": "string" } }, "required": [ "id", "name", "country", "position", "races", "impressions", "team" ] }, "SponsorDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "contactEmail": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true }, "websiteUrl": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "name" ] }, "SponsoredLeagueDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tier": { "type": "string" }, "drivers": { "type": "number" }, "races": { "type": "number" }, "impressions": { "type": "number" }, "status": { "type": "string" } }, "required": [ "id", "name", "tier", "drivers", "races", "impressions", "status" ] }, "SponsorProfileDTO": { "type": "object", "properties": { "companyName": { "type": "string" }, "contactName": { "type": "string" }, "contactEmail": { "type": "string" }, "contactPhone": { "type": "string" }, "website": { "type": "string" }, "description": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true }, "industry": { "type": "string" }, "address": { "type": "object" }, "street": { "type": "string" }, "city": { "type": "string" }, "country": { "type": "string" }, "postalCode": { "type": "string" }, "taxId": { "type": "string" }, "socialLinks": { "type": "object" }, "twitter": { "type": "string" }, "linkedin": { "type": "string" }, "instagram": { "type": "string" } }, "required": [ "companyName", "contactName", "contactEmail", "contactPhone", "website", "description", "industry", "address", "street", "city", "country", "postalCode", "taxId", "socialLinks", "twitter", "linkedin", "instagram" ] }, "SponsorRaceDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "date": { "type": "string" }, "views": { "type": "number" }, "status": { "type": "string" } }, "required": [ "id", "name", "date", "views", "status" ] }, "SponsorshipDetailDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "leagueName": { "type": "string" }, "seasonId": { "type": "string" }, "seasonName": { "type": "string" }, "seasonStartDate": { "type": "string", "format": "date-time" }, "seasonEndDate": { "type": "string", "format": "date-time" }, "tier": { "type": "string" }, "status": { "type": "string" }, "pricing": { "type": "object" }, "amount": { "type": "number" }, "currency": { "type": "string" }, "platformFee": { "type": "object" }, "netAmount": { "type": "object" }, "metrics": { "type": "object" }, "drivers": { "type": "number" }, "races": { "type": "number" }, "completedRaces": { "type": "number" }, "impressions": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time" }, "activatedAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "leagueId", "leagueName", "seasonId", "seasonName", "tier", "status", "pricing", "amount", "currency", "platformFee", "amount", "currency", "netAmount", "amount", "currency", "metrics", "drivers", "races", "completedRaces", "impressions", "createdAt" ] }, "SponsorshipDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "entityId": { "type": "string" }, "entityName": { "type": "string" }, "tier": { "type": "string" }, "status": { "type": "string" }, "applicationDate": { "type": "string" }, "approvalDate": { "type": "string" }, "rejectionReason": { "type": "string" }, "startDate": { "type": "string" }, "endDate": { "type": "string" }, "price": { "type": "number" }, "impressions": { "type": "number" }, "impressionsChange": { "type": "number" }, "engagement": { "type": "number" }, "details": { "type": "string" }, "entityOwner": { "type": "string" }, "applicationMessage": { "type": "string" } }, "required": [ "id", "type", "entityId", "entityName", "status", "startDate", "endDate", "price", "impressions" ] }, "SponsorshipPricingItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "level": { "type": "string" }, "price": { "type": "number" }, "currency": { "type": "string" } }, "required": [ "id", "level", "price", "currency" ] }, "SponsorshipRequestDTO": { "type": "object", "properties": { "id": { "type": "string" }, "sponsorId": { "type": "string" }, "sponsorName": { "type": "string" }, "sponsorLogo": { "type": "string" }, "tier": { "type": "string" }, "offeredAmount": { "type": "number" }, "currency": { "type": "string" }, "formattedAmount": { "type": "string" }, "message": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "platformFee": { "type": "number" }, "netAmount": { "type": "number" } }, "required": [ "id", "sponsorId", "sponsorName", "tier", "offeredAmount", "currency", "formattedAmount", "createdAt", "platformFee", "netAmount" ] }, "SponsorSponsorshipsDTO": { "type": "object", "properties": { "sponsorId": { "type": "string" }, "sponsorName": { "type": "string" }, "sponsorships": { "type": "array", "items": { "$ref": "#/components/schemas/SponsorshipDetailDTO" } }, "summary": { "type": "object" }, "totalSponsorships": { "type": "string" }, "activeSponsorships": { "type": "string" }, "totalInvestment": { "type": "string" }, "totalPlatformFees": { "type": "string" }, "currency": { "type": "string" } }, "required": [ "sponsorId", "sponsorName", "sponsorships", "summary", "totalSponsorships", "activeSponsorships", "totalInvestment", "totalPlatformFees", "currency", "totalSponsorships", "activeSponsorships", "totalInvestment", "totalPlatformFees", "currency" ] }, "TeamDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" }, "description": { "type": "string" }, "ownerId": { "type": "string" }, "leagues": { "type": "array", "items": { "type": "string" } }, "category": { "type": "string" }, "isRecruiting": { "type": "boolean" }, "createdAt": { "type": "string" } }, "required": [ "id", "name", "tag", "description", "ownerId", "leagues", "isRecruiting" ] }, "TeamJoinRequestDTO": { "type": "object", "properties": { "requestId": { "type": "string" }, "driverId": { "type": "string" }, "driverName": { "type": "string" }, "teamId": { "type": "string" }, "status": { "type": "string" }, "requestedAt": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "requestId", "driverId", "driverName", "teamId", "status", "requestedAt" ] }, "TeamLeaderboardItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true }, "memberCount": { "type": "number" }, "rating": { "type": "number", "nullable": true }, "totalWins": { "type": "number" }, "totalRaces": { "type": "number" }, "performanceLevel": { "type": "string" }, "isRecruiting": { "type": "boolean" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "specialization": { "type": "string" }, "region": { "type": "string" }, "languages": { "type": "array", "items": { "type": "string" } } }, "required": [ "id", "name", "tag", "memberCount", "totalWins", "totalRaces", "performanceLevel", "isRecruiting", "createdAt" ] }, "TeamListItemDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "tag": { "type": "string" }, "description": { "type": "string" }, "memberCount": { "type": "number" }, "leagues": { "type": "array", "items": { "type": "string" } }, "specialization": { "type": "string" }, "region": { "type": "string" }, "languages": { "type": "array", "items": { "type": "string" } }, "totalWins": { "type": "number" }, "totalRaces": { "type": "number" }, "performanceLevel": { "type": "string" }, "category": { "type": "string" }, "logoUrl": { "type": "string", "nullable": true }, "rating": { "type": "number" }, "isRecruiting": { "type": "boolean" } }, "required": [ "id", "name", "tag", "description", "memberCount", "leagues", "isRecruiting" ] }, "TeamMemberDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "driverName": { "type": "string" }, "role": { "type": "string" }, "joinedAt": { "type": "string" }, "isActive": { "type": "boolean" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "driverId", "driverName", "role", "joinedAt", "isActive" ] }, "TeamMembershipDTO": { "type": "object", "properties": { "role": { "type": "string" }, "joinedAt": { "type": "string" }, "isActive": { "type": "boolean" } }, "required": [ "role", "joinedAt", "isActive" ] }, "TotalLeaguesDTO": { "type": "object", "properties": { "totalLeagues": { "type": "number" } }, "required": [ "totalLeagues" ] }, "TransactionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "walletId": { "type": "string" }, "type": { "type": "string" }, "amount": { "type": "number" }, "description": { "type": "string" }, "referenceId": { "type": "string" }, "referenceType": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "walletId", "type", "amount", "description", "createdAt" ] }, "TransferLeagueOwnershipInputDTO": { "type": "object", "properties": { "newOwnerId": { "type": "string" } }, "required": [ "newOwnerId" ] }, "UpdateAvatarInputDTO": { "type": "object", "properties": { "driverId": { "type": "string" }, "avatarUrl": { "type": "string", "nullable": true } }, "required": [ "driverId" ] }, "UpdateAvatarOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success" ] }, "UpdateLeagueMemberRoleInputDTO": { "type": "object", "properties": { "newRole": { "type": "string" } }, "required": [ "newRole" ] }, "UpdateLeagueMemberRoleOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "success" ] }, "UpdateLeagueScheduleRaceInputDTO": { "type": "object", "properties": { "track": { "type": "string" }, "car": { "type": "string" }, "example": { "type": "string" }, "scheduledAtIso": { "type": "string" } }, "required": [ "example" ] }, "UpdateMemberPaymentResultDTO": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/MemberPaymentDTO" } }, "required": [ "payment" ] }, "UpdatePaymentStatusInputDTO": { "type": "object", "properties": { "paymentId": { "type": "string" }, "status": { "type": "string" } }, "required": [ "paymentId", "status" ] }, "UpdatePaymentStatusOutputDTO": { "type": "object", "properties": { "payment": { "$ref": "#/components/schemas/PaymentDTO" } }, "required": [ "payment" ] }, "UpdateTeamInputDTO": { "type": "object", "properties": { "name": { "type": "string" }, "tag": { "type": "string" }, "description": { "type": "string" } } }, "UpdateTeamOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "UploadMediaInputDTO": { "type": "object", "properties": { "file": { "type": "object" }, "type": { "type": "string" }, "category": { "type": "string" } }, "required": [ "file", "type" ] }, "UploadMediaOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "mediaId": { "type": "string" }, "url": { "type": "string" }, "error": { "type": "string" } }, "required": [ "success" ] }, "UpsertMembershipFeeResultDTO": { "type": "object", "properties": { "fee": { "$ref": "#/components/schemas/MembershipFeeDTO" } }, "required": [ "fee" ] }, "UserListResponseDTO": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserResponseDTO" } }, "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" }, "totalPages": { "type": "number" } }, "required": [ "users", "total", "page", "limit", "totalPages" ] }, "UserResponseDTO": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "displayName": { "type": "string" }, "roles": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string" }, "isSystemAdmin": { "type": "boolean" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "lastLoginAt": { "type": "string", "format": "date-time" }, "primaryDriverId": { "type": "string" } }, "required": [ "id", "email", "displayName", "roles", "status", "isSystemAdmin", "createdAt", "updatedAt" ] }, "ValidateFaceInputDTO": { "type": "object", "properties": { "imageData": { "type": "string" } }, "required": [ "imageData" ] }, "ValidateFaceOutputDTO": { "type": "object", "properties": { "isValid": { "type": "boolean" }, "errorMessage": { "type": "string" } }, "required": [ "isValid" ] }, "WalletDTO": { "type": "object", "properties": { "id": { "type": "string" }, "leagueId": { "type": "string" }, "balance": { "type": "number" }, "totalRevenue": { "type": "number" }, "totalPlatformFees": { "type": "number" }, "totalWithdrawn": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time" }, "currency": { "type": "string" } }, "required": [ "id", "leagueId", "balance", "totalRevenue", "totalPlatformFees", "totalWithdrawn", "createdAt", "currency" ] }, "WalletTransactionDTO": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "description": { "type": "string" }, "amount": { "type": "number" }, "fee": { "type": "number" }, "netAmount": { "type": "number" }, "date": { "type": "string" }, "status": { "type": "string" }, "reference": { "type": "string" } }, "required": [ "id", "type", "description", "amount", "fee", "netAmount", "date", "status" ] }, "WithdrawFromLeagueWalletInputDTO": { "type": "object", "properties": { "amount": { "type": "number" }, "currency": { "type": "string" }, "seasonId": { "type": "string" }, "destinationAccount": { "type": "string" } }, "required": [ "amount", "currency", "seasonId", "destinationAccount" ] }, "WithdrawFromLeagueWalletOutputDTO": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "success" ] }, "WithdrawFromRaceParamsDTO": { "type": "object", "properties": { "raceId": { "type": "string" }, "driverId": { "type": "string" } }, "required": [ "raceId", "driverId" ] }, "WizardErrorsBasicsDTO": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "visibility": { "type": "string" } } }, "WizardErrorsDTO": { "type": "object", "properties": { "basics": { "$ref": "#/components/schemas/WizardErrorsBasicsDTO" }, "structure": { "$ref": "#/components/schemas/WizardErrorsStructureDTO" }, "timings": { "$ref": "#/components/schemas/WizardErrorsTimingsDTO" }, "scoring": { "$ref": "#/components/schemas/WizardErrorsScoringDTO" }, "submit": { "type": "string" } } }, "WizardErrorsScoringDTO": { "type": "object", "properties": { "patternId": { "type": "string" } } }, "WizardErrorsStructureDTO": { "type": "object", "properties": { "maxDrivers": { "type": "string" }, "maxTeams": { "type": "string" }, "driversPerTeam": { "type": "string" } } }, "WizardErrorsTimingsDTO": { "type": "object", "properties": { "qualifyingMinutes": { "type": "string" }, "mainRaceMinutes": { "type": "string" }, "roundsPlanned": { "type": "string" } } }, "WizardStepDTO": { "type": "object", "properties": { "value": { "type": "string" } }, "required": [ "value" ] } } } }