5743 lines
124 KiB
JSON
5743 lines
124 KiB
JSON
{
|
|
"openapi": "3.0.0",
|
|
"info": {
|
|
"title": "GridPilot API",
|
|
"description": "GridPilot API documentation",
|
|
"version": "1.0.0"
|
|
},
|
|
"paths": {},
|
|
"components": {
|
|
"schemas": {
|
|
"UpdateTeamOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"UpdateTeamInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"TeamMembershipDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"joinedAt": {
|
|
"type": "string"
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"joinedAt",
|
|
"isActive"
|
|
]
|
|
},
|
|
"TeamMemberDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"driverName": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"joinedAt": {
|
|
"type": "string"
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId",
|
|
"driverName",
|
|
"role",
|
|
"joinedAt",
|
|
"isActive",
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"tag",
|
|
"description",
|
|
"memberCount",
|
|
"leagues"
|
|
]
|
|
},
|
|
"TeamLeaderboardItemDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"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",
|
|
"memberCount",
|
|
"totalWins",
|
|
"totalRaces",
|
|
"performanceLevel",
|
|
"isRecruiting",
|
|
"createdAt"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"requestId",
|
|
"driverId",
|
|
"driverName",
|
|
"teamId",
|
|
"status",
|
|
"requestedAt",
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"tag",
|
|
"description",
|
|
"ownerId",
|
|
"leagues"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetTeamJoinRequestsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"requests": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TeamJoinRequestDTO"
|
|
}
|
|
},
|
|
"pendingCount": {
|
|
"type": "number"
|
|
},
|
|
"totalCount": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"requests",
|
|
"pendingCount",
|
|
"totalCount"
|
|
]
|
|
},
|
|
"GetTeamDetailsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"team": {
|
|
"$ref": "#/components/schemas/TeamDTO"
|
|
},
|
|
"membership": {
|
|
"$ref": "#/components/schemas/TeamMembershipDTO"
|
|
},
|
|
"canManage": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"team",
|
|
"canManage"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetAllTeamsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"teams": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TeamListItemDTO"
|
|
}
|
|
},
|
|
"totalCount": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"teams",
|
|
"totalCount"
|
|
]
|
|
},
|
|
"CreateTeamOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"success": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"success"
|
|
]
|
|
},
|
|
"CreateTeamInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"tag": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"tag"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"SponsorshipPricingItemDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"type": "string"
|
|
},
|
|
"price": {
|
|
"type": "number"
|
|
},
|
|
"currency": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"level",
|
|
"price",
|
|
"currency"
|
|
]
|
|
},
|
|
"SponsorshipDetailDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"SponsorDashboardMetricsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"impressions": {
|
|
"type": "number"
|
|
},
|
|
"impressionsChange": {
|
|
"type": "number"
|
|
},
|
|
"uniqueViewers": {
|
|
"type": "number"
|
|
},
|
|
"viewersChange": {
|
|
"type": "number"
|
|
},
|
|
"races": {
|
|
"type": "number"
|
|
},
|
|
"drivers": {
|
|
"type": "number"
|
|
},
|
|
"exposure": {
|
|
"type": "number"
|
|
},
|
|
"exposureChange": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"impressions",
|
|
"impressionsChange",
|
|
"uniqueViewers",
|
|
"viewersChange",
|
|
"races",
|
|
"drivers",
|
|
"exposure",
|
|
"exposureChange"
|
|
]
|
|
},
|
|
"SponsorDashboardInvestmentDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"activeSponsorships": {
|
|
"type": "number"
|
|
},
|
|
"totalInvestment": {
|
|
"type": "number"
|
|
},
|
|
"costPerThousandViews": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"activeSponsorships",
|
|
"totalInvestment",
|
|
"costPerThousandViews"
|
|
]
|
|
},
|
|
"SponsorDashboardDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"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"
|
|
]
|
|
},
|
|
"SponsorDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"contactEmail": {
|
|
"type": "string"
|
|
},
|
|
"logoUrl": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RejectSponsorshipRequestInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"respondedBy": {
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"respondedBy"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"PrivacySettingsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"publicProfile": {
|
|
"type": "boolean"
|
|
},
|
|
"showStats": {
|
|
"type": "boolean"
|
|
},
|
|
"showActiveSponsorships": {
|
|
"type": "boolean"
|
|
},
|
|
"allowDirectContact": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"publicProfile",
|
|
"showStats",
|
|
"showActiveSponsorships",
|
|
"allowDirectContact"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetSponsorsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsors": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SponsorDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsors"
|
|
]
|
|
},
|
|
"GetSponsorSponsorshipsQueryParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsorId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsorId"
|
|
]
|
|
},
|
|
"GetSponsorOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsor": {
|
|
"$ref": "#/components/schemas/SponsorDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsor"
|
|
]
|
|
},
|
|
"GetSponsorDashboardQueryParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsorId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsorId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetEntitySponsorshipPricingResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"entityType": {
|
|
"type": "string"
|
|
},
|
|
"entityId": {
|
|
"type": "string"
|
|
},
|
|
"pricing": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SponsorshipPricingItemDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"entityType",
|
|
"entityId",
|
|
"pricing"
|
|
]
|
|
},
|
|
"CreateSponsorOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsor": {
|
|
"$ref": "#/components/schemas/SponsorDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsor"
|
|
]
|
|
},
|
|
"CreateSponsorInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"contactEmail": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string"
|
|
},
|
|
"logoUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"contactEmail"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"ActivityItemDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"time": {
|
|
"type": "string"
|
|
},
|
|
"impressions": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"type",
|
|
"message",
|
|
"time"
|
|
]
|
|
},
|
|
"AcceptSponsorshipRequestInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"respondedBy": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"respondedBy"
|
|
]
|
|
},
|
|
"WithdrawFromRaceParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"driverId"
|
|
]
|
|
},
|
|
"ReviewProtestCommandDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protestId": {
|
|
"type": "string"
|
|
},
|
|
"stewardId": {
|
|
"type": "string"
|
|
},
|
|
"enum": {
|
|
"type": "string"
|
|
},
|
|
"decision": {
|
|
"type": "string"
|
|
},
|
|
"decisionNotes": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"protestId",
|
|
"stewardId",
|
|
"enum",
|
|
"decision",
|
|
"decisionNotes"
|
|
]
|
|
},
|
|
"RequestProtestDefenseCommandDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protestId": {
|
|
"type": "string"
|
|
},
|
|
"stewardId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"protestId",
|
|
"stewardId"
|
|
]
|
|
},
|
|
"RegisterForRaceParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"leagueId",
|
|
"driverId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RacesPageDataDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"races": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RacesPageDataRaceDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"races"
|
|
]
|
|
},
|
|
"RaceWithSOFDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"track": {
|
|
"type": "string"
|
|
},
|
|
"strengthOfField": {
|
|
"type": "number",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"track"
|
|
]
|
|
},
|
|
"RaceStatsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalRaces": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalRaces"
|
|
]
|
|
},
|
|
"RaceResultsDetailDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"track": {
|
|
"type": "string"
|
|
},
|
|
"results": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RaceResultDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"track",
|
|
"results"
|
|
]
|
|
},
|
|
"RaceResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"driverName": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "number"
|
|
},
|
|
"startPosition": {
|
|
"type": "number"
|
|
},
|
|
"incidents": {
|
|
"type": "number"
|
|
},
|
|
"fastestLap": {
|
|
"type": "number"
|
|
},
|
|
"positionChange": {
|
|
"type": "number"
|
|
},
|
|
"isPodium": {
|
|
"type": "boolean"
|
|
},
|
|
"isClean": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId",
|
|
"driverName",
|
|
"avatarUrl",
|
|
"position",
|
|
"startPosition",
|
|
"incidents",
|
|
"fastestLap",
|
|
"positionChange",
|
|
"isPodium",
|
|
"isClean"
|
|
]
|
|
},
|
|
"RaceProtestsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"protests": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RaceProtestDTO"
|
|
}
|
|
},
|
|
"driverMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"protests",
|
|
"driverMap"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RacePenaltiesDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"penalties": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RacePenaltyDTO"
|
|
}
|
|
},
|
|
"driverMap": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"penalties",
|
|
"driverMap"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RaceDetailRegistrationDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isUserRegistered": {
|
|
"type": "boolean"
|
|
},
|
|
"canRegister": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isUserRegistered",
|
|
"canRegister"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RaceDetailEntryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"nullable": true
|
|
},
|
|
"isCurrentUser": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"country",
|
|
"avatarUrl",
|
|
"isCurrentUser"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RaceDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"leagueName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"date"
|
|
]
|
|
},
|
|
"RaceActionParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"ProtestIncidentDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lap": {
|
|
"type": "number"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"timeInRace": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"lap",
|
|
"description"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"ImportRaceResultsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"resultsFileContent": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"resultsFileContent"
|
|
]
|
|
},
|
|
"GetRaceDetailParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"driverId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DriverSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DashboardRecentResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"raceName": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"leagueName": {
|
|
"type": "string"
|
|
},
|
|
"finishedAt": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "number"
|
|
},
|
|
"incidents": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"raceName",
|
|
"leagueId",
|
|
"leagueName",
|
|
"finishedAt",
|
|
"position",
|
|
"incidents"
|
|
]
|
|
},
|
|
"DashboardRaceSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"leagueName": {
|
|
"type": "string"
|
|
},
|
|
"track": {
|
|
"type": "string"
|
|
},
|
|
"car": {
|
|
"type": "string"
|
|
},
|
|
"scheduledAt": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"isMyLeague": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"leagueId",
|
|
"leagueName",
|
|
"track",
|
|
"car",
|
|
"scheduledAt",
|
|
"status",
|
|
"isMyLeague"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DashboardFriendSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"country",
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"DashboardFeedSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"notificationCount": {
|
|
"type": "number"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DashboardFeedItemSummaryDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"notificationCount",
|
|
"items"
|
|
]
|
|
},
|
|
"DashboardFeedItemSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"enum": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"headline": {
|
|
"type": "string"
|
|
},
|
|
"body": {
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"type": "string"
|
|
},
|
|
"ctaLabel": {
|
|
"type": "string"
|
|
},
|
|
"ctaHref": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"enum",
|
|
"type",
|
|
"headline",
|
|
"timestamp"
|
|
]
|
|
},
|
|
"DashboardDriverSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
},
|
|
"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",
|
|
"avatarUrl",
|
|
"totalRaces",
|
|
"wins",
|
|
"podiums"
|
|
]
|
|
},
|
|
"ApplyPenaltyCommandDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"stewardId": {
|
|
"type": "string"
|
|
},
|
|
"enum": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"type": "number"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
},
|
|
"protestId": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"driverId",
|
|
"stewardId",
|
|
"enum",
|
|
"type",
|
|
"reason"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"AllRacesStatusFilterDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value",
|
|
"label"
|
|
]
|
|
},
|
|
"AllRacesLeagueFilterDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name"
|
|
]
|
|
},
|
|
"AllRacesFilterOptionsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"statuses": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllRacesStatusFilterDTO"
|
|
}
|
|
},
|
|
"leagues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllRacesLeagueFilterDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"statuses",
|
|
"leagues"
|
|
]
|
|
},
|
|
"AllRacesPageDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"races": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllRacesListItemDTO"
|
|
}
|
|
},
|
|
"filters": {
|
|
"$ref": "#/components/schemas/AllRacesFilterOptionsDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"races",
|
|
"filters"
|
|
]
|
|
},
|
|
"UpsertMembershipFeeResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fee": {
|
|
"$ref": "#/components/schemas/MembershipFeeDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"fee"
|
|
]
|
|
},
|
|
"UpdatePaymentStatusOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"payment": {
|
|
"$ref": "#/components/schemas/PaymentDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"payment"
|
|
]
|
|
},
|
|
"UpdatePaymentStatusInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"paymentId": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"paymentId",
|
|
"status"
|
|
]
|
|
},
|
|
"UpdateMemberPaymentResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"payment": {
|
|
"$ref": "#/components/schemas/MemberPaymentDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"payment"
|
|
]
|
|
},
|
|
"ProcessWalletTransactionResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wallet": {
|
|
"$ref": "#/components/schemas/WalletDTO"
|
|
},
|
|
"transaction": {
|
|
"$ref": "#/components/schemas/TransactionDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"wallet",
|
|
"transaction"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetWalletResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wallet": {
|
|
"$ref": "#/components/schemas/WalletDTO"
|
|
},
|
|
"transactions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/TransactionDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"wallet",
|
|
"transactions"
|
|
]
|
|
},
|
|
"GetPrizesResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prizes": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PrizeDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"prizes"
|
|
]
|
|
},
|
|
"GetMembershipFeesResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fee": {
|
|
"$ref": "#/components/schemas/MembershipFeeDTO"
|
|
},
|
|
"payments": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemberPaymentDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"payments"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DeletePrizeResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"CreatePrizeResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prize": {
|
|
"$ref": "#/components/schemas/PrizeDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"prize"
|
|
]
|
|
},
|
|
"CreatePaymentOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"payment": {
|
|
"$ref": "#/components/schemas/PaymentDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"payment"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"AwardPrizeResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"prize": {
|
|
"$ref": "#/components/schemas/PrizeDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"prize"
|
|
]
|
|
},
|
|
"ValidateFaceOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isValid": {
|
|
"type": "boolean"
|
|
},
|
|
"errorMessage": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"isValid"
|
|
]
|
|
},
|
|
"ValidateFaceInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"imageData": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"imageData"
|
|
]
|
|
},
|
|
"UploadMediaOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"mediaId": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"UploadMediaInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "object"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file",
|
|
"type"
|
|
]
|
|
},
|
|
"UpdateAvatarOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"UpdateAvatarInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId",
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"RequestAvatarGenerationOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"errorMessage": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"RequestAvatarGenerationInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "string"
|
|
},
|
|
"facePhotoData": {
|
|
"type": "string"
|
|
},
|
|
"suitColor": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"userId",
|
|
"facePhotoData",
|
|
"suitColor"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetAvatarOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"DeleteMediaOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"AvatarDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId"
|
|
]
|
|
},
|
|
"WizardStepDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"WizardErrorsBasicsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"WizardErrorsScoringDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"patternId": {
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"WithdrawFromLeagueWalletOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"WithdrawFromLeagueWalletInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"amount": {
|
|
"type": "number"
|
|
},
|
|
"currency": {
|
|
"type": "string"
|
|
},
|
|
"seasonId": {
|
|
"type": "string"
|
|
},
|
|
"destinationAccount": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"amount",
|
|
"currency",
|
|
"seasonId",
|
|
"destinationAccount"
|
|
]
|
|
},
|
|
"UpdateLeagueMemberRoleOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"UpdateLeagueMemberRoleInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"performerDriverId": {
|
|
"type": "string"
|
|
},
|
|
"targetDriverId": {
|
|
"type": "string"
|
|
},
|
|
"newRole": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId",
|
|
"performerDriverId",
|
|
"targetDriverId",
|
|
"newRole"
|
|
]
|
|
},
|
|
"TotalLeaguesDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalLeagues": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalLeagues"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RemoveLeagueMemberOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"error": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"RemoveLeagueMemberInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"performerDriverId": {
|
|
"type": "string"
|
|
},
|
|
"targetDriverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId",
|
|
"performerDriverId",
|
|
"targetDriverId"
|
|
]
|
|
},
|
|
"RejectJoinRequestOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"RejectJoinRequestInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"requestId",
|
|
"leagueId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"MembershipStatusDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"MembershipRoleDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"LeagueWithCapacityDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"ownerId": {
|
|
"type": "string"
|
|
},
|
|
"settings": {
|
|
"$ref": "#/components/schemas/LeagueSettingsDTO"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
},
|
|
"usedSlots": {
|
|
"type": "number"
|
|
},
|
|
"socialLinks": {
|
|
"type": "object"
|
|
},
|
|
"discordUrl": {
|
|
"type": "string"
|
|
},
|
|
"youtubeUrl": {
|
|
"type": "string"
|
|
},
|
|
"websiteUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"ownerId",
|
|
"settings",
|
|
"createdAt",
|
|
"usedSlots"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueStatsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalMembers": {
|
|
"type": "number"
|
|
},
|
|
"totalRaces": {
|
|
"type": "number"
|
|
},
|
|
"averageRating": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalMembers",
|
|
"totalRaces",
|
|
"averageRating"
|
|
]
|
|
},
|
|
"LeagueStandingsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"standings": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LeagueStandingDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"standings"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId",
|
|
"driver",
|
|
"points",
|
|
"position",
|
|
"wins",
|
|
"podiums",
|
|
"races"
|
|
]
|
|
},
|
|
"LeagueSettingsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"maxDrivers": {
|
|
"type": "number",
|
|
"nullable": true
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"seasonId",
|
|
"name",
|
|
"status",
|
|
"isPrimary",
|
|
"isParallelActive"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"description",
|
|
"primaryChampionshipType",
|
|
"sessionSummary",
|
|
"bonusSummary",
|
|
"dropPolicySummary"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueScheduleDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"races": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RaceDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"races"
|
|
]
|
|
},
|
|
"LeagueRoleDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"LeagueOwnerSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driver": {
|
|
"$ref": "#/components/schemas/DriverDTO"
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"nullable": true
|
|
},
|
|
"rank": {
|
|
"type": "number",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"driver"
|
|
]
|
|
},
|
|
"LeagueMembershipsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"members": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LeagueMemberDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"members"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueMemberDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"driver": {
|
|
"$ref": "#/components/schemas/DriverDTO"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
},
|
|
"joinedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"driverId",
|
|
"driver",
|
|
"role",
|
|
"joinedAt"
|
|
]
|
|
},
|
|
"LeagueJoinRequestDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"requestedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"required": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"driver": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"leagueId",
|
|
"driverId",
|
|
"requestedAt",
|
|
"required",
|
|
"type"
|
|
]
|
|
},
|
|
"LeagueConfigFormModelTimingsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceDayOfWeek": {
|
|
"type": "string"
|
|
},
|
|
"raceTimeHour": {
|
|
"type": "number"
|
|
},
|
|
"raceTimeMinute": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceDayOfWeek",
|
|
"raceTimeHour",
|
|
"raceTimeMinute"
|
|
]
|
|
},
|
|
"LeagueConfigFormModelStructureDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"mode"
|
|
]
|
|
},
|
|
"LeagueConfigFormModelStewardingDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueConfigFormModelScoringDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"points": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"points"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueConfigFormModelBasicsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"description",
|
|
"visibility"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueAdminPermissionsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"canRemoveMember": {
|
|
"type": "boolean"
|
|
},
|
|
"canUpdateRoles": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"canRemoveMember",
|
|
"canUpdateRoles"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LeagueAdminConfigDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"form": {
|
|
"$ref": "#/components/schemas/LeagueConfigFormModelDTO"
|
|
}
|
|
}
|
|
},
|
|
"GetSeasonSponsorshipsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sponsorships": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/SponsorshipDetailDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"sponsorships"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetLeagueSeasonsQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId"
|
|
]
|
|
},
|
|
"GetLeagueRacesOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"races": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RaceDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"races"
|
|
]
|
|
},
|
|
"GetLeagueProtestsQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId"
|
|
]
|
|
},
|
|
"GetLeagueOwnerSummaryQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ownerId": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"ownerId",
|
|
"leagueId"
|
|
]
|
|
},
|
|
"GetLeagueJoinRequestsQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId"
|
|
]
|
|
},
|
|
"GetLeagueAdminPermissionsInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"performerDriverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId",
|
|
"performerDriverId"
|
|
]
|
|
},
|
|
"GetLeagueAdminConfigQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId"
|
|
]
|
|
},
|
|
"GetLeagueAdminConfigOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"form": {
|
|
"$ref": "#/components/schemas/LeagueConfigFormModelDTO"
|
|
}
|
|
}
|
|
},
|
|
"CreateLeagueOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagueId": {
|
|
"type": "string"
|
|
},
|
|
"success": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagueId",
|
|
"success"
|
|
]
|
|
},
|
|
"CreateLeagueInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"visibility": {
|
|
"type": "string"
|
|
},
|
|
"ownerId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"description",
|
|
"visibility",
|
|
"ownerId"
|
|
]
|
|
},
|
|
"ApproveJoinRequestOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"ApproveJoinRequestInputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"leagueId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"requestId",
|
|
"leagueId"
|
|
]
|
|
},
|
|
"AllLeaguesWithCapacityDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LeagueWithCapacityDTO"
|
|
}
|
|
},
|
|
"totalCount": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagues",
|
|
"totalCount"
|
|
]
|
|
},
|
|
"AllLeaguesWithCapacityAndScoringDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"leagues": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/LeagueSummaryDTO"
|
|
}
|
|
},
|
|
"totalCount": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"leagues",
|
|
"totalCount"
|
|
]
|
|
},
|
|
"GetDriverRegistrationStatusQueryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"raceId",
|
|
"driverId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetDriverOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"iracingId": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"bio": {
|
|
"type": "string"
|
|
},
|
|
"joinedAt": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"iracingId",
|
|
"name",
|
|
"country",
|
|
"joinedAt"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DriverRegistrationStatusDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isRegistered": {
|
|
"type": "boolean"
|
|
},
|
|
"raceId": {
|
|
"type": "string"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"isRegistered",
|
|
"raceId",
|
|
"driverId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DriverProfileSocialSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"friendsCount": {
|
|
"type": "number"
|
|
},
|
|
"friends": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DriverProfileSocialFriendSummaryDTO"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"friendsCount",
|
|
"friends"
|
|
]
|
|
},
|
|
"DriverProfileSocialHandleDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"platform": {
|
|
"type": "string"
|
|
},
|
|
"handle": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"platform",
|
|
"handle",
|
|
"url"
|
|
]
|
|
},
|
|
"DriverProfileSocialFriendSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"country",
|
|
"avatarUrl"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DriverProfileDriverSummaryDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
},
|
|
"iracingId": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"joinedAt": {
|
|
"type": "string"
|
|
},
|
|
"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",
|
|
"avatarUrl",
|
|
"joinedAt"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"DriverLeaderboardItemDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"type": "number"
|
|
},
|
|
"skillLevel": {
|
|
"type": "string"
|
|
},
|
|
"nationality": {
|
|
"type": "string"
|
|
},
|
|
"racesCompleted": {
|
|
"type": "number"
|
|
},
|
|
"wins": {
|
|
"type": "number"
|
|
},
|
|
"podiums": {
|
|
"type": "number"
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
},
|
|
"rank": {
|
|
"type": "number"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"rating",
|
|
"skillLevel",
|
|
"nationality",
|
|
"racesCompleted",
|
|
"wins",
|
|
"podiums",
|
|
"isActive",
|
|
"rank"
|
|
]
|
|
},
|
|
"DriverDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"iracingId": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"country": {
|
|
"type": "string"
|
|
},
|
|
"bio": {
|
|
"type": "string"
|
|
},
|
|
"joinedAt": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"iracingId",
|
|
"name",
|
|
"country",
|
|
"joinedAt"
|
|
]
|
|
},
|
|
"CompleteOnboardingOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"driverId": {
|
|
"type": "string"
|
|
},
|
|
"errorMessage": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"AuthenticatedUserDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"userId": {
|
|
"type": "string"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"displayName": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"userId",
|
|
"email",
|
|
"displayName"
|
|
]
|
|
},
|
|
"AuthSessionDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/AuthenticatedUserDTO"
|
|
}
|
|
},
|
|
"required": [
|
|
"token",
|
|
"user"
|
|
]
|
|
},
|
|
"SignupParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
},
|
|
"displayName": {
|
|
"type": "string"
|
|
},
|
|
"iracingCustomerId": {
|
|
"type": "string"
|
|
},
|
|
"primaryDriverId": {
|
|
"type": "string"
|
|
},
|
|
"avatarUrl": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"password",
|
|
"displayName"
|
|
]
|
|
},
|
|
"LoginParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
]
|
|
},
|
|
"IracingAuthRedirectResultDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"redirectUrl": {
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"redirectUrl",
|
|
"state"
|
|
]
|
|
},
|
|
"LoginWithIracingCallbackParamsDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"type": "string"
|
|
},
|
|
"returnTo": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"state"
|
|
]
|
|
},
|
|
"RecordPageViewOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pageViewId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pageViewId"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"RecordEngagementOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"eventId": {
|
|
"type": "string"
|
|
},
|
|
"engagementWeight": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"eventId",
|
|
"engagementWeight"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetDashboardDataOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalUsers": {
|
|
"type": "number"
|
|
},
|
|
"activeUsers": {
|
|
"type": "number"
|
|
},
|
|
"totalRaces": {
|
|
"type": "number"
|
|
},
|
|
"totalLeagues": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalUsers",
|
|
"activeUsers",
|
|
"totalRaces",
|
|
"totalLeagues"
|
|
]
|
|
},
|
|
"GetAnalyticsMetricsOutputDTO": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pageViews": {
|
|
"type": "number"
|
|
},
|
|
"uniqueVisitors": {
|
|
"type": "number"
|
|
},
|
|
"averageSessionDuration": {
|
|
"type": "number"
|
|
},
|
|
"bounceRate": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"pageViews",
|
|
"uniqueVisitors",
|
|
"averageSessionDuration",
|
|
"bounceRate"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
} |