feat(games): support non-steam games
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 6.0.5 on 2026-05-24 22:51
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("games", "0003_game_path"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="game",
|
||||||
|
name="image",
|
||||||
|
field=models.URLField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="game",
|
||||||
|
name="steam_app_id",
|
||||||
|
field=models.PositiveIntegerField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -2,9 +2,10 @@ from django.db import models
|
|||||||
|
|
||||||
|
|
||||||
class Game(models.Model):
|
class Game(models.Model):
|
||||||
steam_app_id = models.PositiveIntegerField(unique=True)
|
steam_app_id = models.PositiveIntegerField(null=True, blank=True)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
path = models.CharField(max_length=100)
|
path = models.CharField(max_length=100)
|
||||||
|
image = models.URLField(null=True, blank=True)
|
||||||
enabled = models.BooleanField(default=True)
|
enabled = models.BooleanField(default=True)
|
||||||
|
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
@@ -14,4 +15,6 @@ class Game(models.Model):
|
|||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
|
if self.steam_app_id:
|
||||||
return f"{self.name} ({self.steam_app_id})"
|
return f"{self.name} ({self.steam_app_id})"
|
||||||
|
return self.name
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
from ninja import Schema
|
from ninja import Schema
|
||||||
|
|
||||||
|
|
||||||
class GameOut(Schema):
|
class GameOut(Schema):
|
||||||
steam_app_id: int
|
id: int
|
||||||
|
steam_app_id: Optional[int] = None
|
||||||
name: str
|
name: str
|
||||||
path: str
|
path: str
|
||||||
|
image: Optional[str] = None
|
||||||
|
|||||||
@@ -15,12 +15,18 @@ const games = ref<GamesApiListGamesResponse | undefined>();
|
|||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
const imageErrors = ref<Set<number>>(new Set());
|
const imageErrors = ref<Set<number>>(new Set());
|
||||||
|
|
||||||
const getHeaderImage = (appId: number) => {
|
const getHeaderImage = (game: GamesApiListGamesResponse[number]) => {
|
||||||
return `https://cdn.akamai.steamstatic.com/steam/apps/${appId}/header.jpg`;
|
if (game.image) {
|
||||||
|
return game.image;
|
||||||
|
}
|
||||||
|
if (game.steam_app_id) {
|
||||||
|
return `https://cdn.akamai.steamstatic.com/steam/apps/${game.steam_app_id}/header.jpg`;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onImageError = (appId: number) => {
|
const onImageError = (gameId: number) => {
|
||||||
imageErrors.value.add(appId);
|
imageErrors.value.add(gameId);
|
||||||
};
|
};
|
||||||
|
|
||||||
const navigate = (path: string) => {
|
const navigate = (path: string) => {
|
||||||
@@ -82,11 +88,11 @@ onMounted(async () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Game Cards -->
|
<!-- Game Cards -->
|
||||||
<div v-for="game in games" :key="game.steam_app_id" @click="navigate(game.path)"
|
<div v-for="game in games" :key="game.id" @click="navigate(game.path)"
|
||||||
class="card card-xl bg-base-200 shadow-xl hover:shadow-2xl transition-all cursor-pointer transform hover:-translate-y-2 hover:scale-[1.05] hover:bg-base-100 overflow-hidden">
|
class="card card-xl bg-base-200 shadow-xl hover:shadow-2xl transition-all cursor-pointer transform hover:-translate-y-2 hover:scale-[1.05] hover:bg-base-100 overflow-hidden">
|
||||||
<figure class="relative h-60 bg-base-300 overflow-hidden">
|
<figure class="relative h-60 bg-base-300 overflow-hidden">
|
||||||
<img v-if="!imageErrors.has(game.steam_app_id)" :src="getHeaderImage(game.steam_app_id)" :alt="game.name"
|
<img v-if="getHeaderImage(game) && !imageErrors.has(game.id)" :src="getHeaderImage(game)" :alt="game.name"
|
||||||
@error="onImageError(game.steam_app_id)" class="w-full h-full object-cover" />
|
@error="onImageError(game.id)" class="w-full h-full object-cover" />
|
||||||
<div v-else
|
<div v-else
|
||||||
class="w-full h-full bg-gradient-to-br from-blue-600 to-blue-400 flex items-center justify-center text-white">
|
class="w-full h-full bg-gradient-to-br from-blue-600 to-blue-400 flex items-center justify-center text-white">
|
||||||
<i class="mdi mdi-gamepad-variant text-5xl"></i>
|
<i class="mdi mdi-gamepad-variant text-5xl"></i>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// This file is auto-generated by @hey-api/openapi-ts
|
// This file is auto-generated by @hey-api/openapi-ts
|
||||||
|
|
||||||
export { animationsApiPuzzleResults, animationsApiResults, animationsApiTopSubmissions, gamesApiListGames, marketApiCloseMarket, marketApiCreateBet, marketApiListMarkets, marketApiListUserBets, marketApiResolveMarket, noitaApiGetLeaderboard, noitaApiGetResults, noitaApiSubmitLogFile, type Options, opusMagnumApiCreateSubmission, opusMagnumApiDeleteSubmission, opusMagnumApiGetCollection, opusMagnumApiGetStats, opusMagnumApiGetSubmission, opusMagnumApiListPuzzles, opusMagnumApiListResponsesNeedingValidation, opusMagnumApiListSubmissions, opusMagnumApiValidateAuto, opusMagnumApiValidateResponse, opusMagnumApiValidateSubmission, polylanSubmitterApiClearCache, polylanSubmitterApiGetUserInfo, polylanSubmitterApiHealthCheck } from './sdk.gen';
|
export { animationsApiPuzzleResults, animationsApiResults, animationsApiTopSubmissions, gamesApiListGames, noitaApiGetLeaderboard, noitaApiGetResults, noitaApiSubmitLogFile, type Options, opusMagnumApiCreateSubmission, opusMagnumApiDeleteSubmission, opusMagnumApiGetCollection, opusMagnumApiGetStats, opusMagnumApiGetSubmission, opusMagnumApiListPuzzles, opusMagnumApiListResponsesNeedingValidation, opusMagnumApiListSubmissions, opusMagnumApiValidateAuto, opusMagnumApiValidateResponse, opusMagnumApiValidateSubmission, polylanSubmitterApiClearCache, polylanSubmitterApiGetUserInfo, polylanSubmitterApiHealthCheck } from './sdk.gen';
|
||||||
export type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, AnimationsApiTopSubmissionsResponses, ClientOptions, GameOut, GamesApiListGamesData, GamesApiListGamesResponse, GamesApiListGamesResponses, Input, LeaderboardEntryOut, LeaderboardOut, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponse, MarketApiCreateBetResponses, MarketApiListMarketsData, MarketApiListMarketsResponse, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponse, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponse, MarketApiResolveMarketResponses, MarketListSchema, MarketOptionSchema, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponse, NoitaApiSubmitLogFileResponses, NoitaSubmissionOut, ObjectivResultOut, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponse, OpusMagnumApiValidateSubmissionResponses, PagedSubmissionOut, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, PuzzlePointsFactorOut, PuzzleResponseIn, PuzzleResponseOut, PuzzleResponseRankingOut, PuzzleResultsOut, PuzzleSubmissionsOut, PuzzleSubmissionWithRankOut, RankingSchema, ResolveMarketSchema, ResultsOut, SteamCollectionItemOut, SteamCollectionOut, SubmissionFileOut, SubmissionIn, SubmissionOut, TournamentPuzzleResultsOut, TournamentSubmissionsOut, UserBetCreateSchema, UserBetSchema, UserDisplayOut, UserInfoOut, ValidationIn, WinnerFileOut, WinnerResponseOut } from './types.gen';
|
export type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponse, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponse, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponse, AnimationsApiTopSubmissionsResponses, ClientOptions, GameOut, GamesApiListGamesData, GamesApiListGamesResponse, GamesApiListGamesResponses, Input, LeaderboardEntryOut, LeaderboardOut, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponse, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponse, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileError, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponse, NoitaApiSubmitLogFileResponses, NoitaSubmissionOut, ObjectivResultOut, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponse, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponse, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponse, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponse, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponse, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponse, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponse, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponse, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponse, OpusMagnumApiValidateSubmissionResponses, PagedSubmissionOut, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponse, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, PuzzlePointsFactorOut, PuzzleResponseIn, PuzzleResponseOut, PuzzleResponseRankingOut, PuzzleResultsOut, PuzzleSubmissionsOut, PuzzleSubmissionWithRankOut, RankingSchema, ResultsOut, SteamCollectionItemOut, SteamCollectionOut, SubmissionFileOut, SubmissionIn, SubmissionOut, TournamentPuzzleResultsOut, TournamentSubmissionsOut, UserDisplayOut, UserInfoOut, ValidationIn, WinnerFileOut, WinnerResponseOut } from './types.gen';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import { type Client, formDataBodySerializer, type Options as Options2, type TDataShape } from './client';
|
import { type Client, formDataBodySerializer, type Options as Options2, type TDataShape } from './client';
|
||||||
import { client } from './client.gen';
|
import { client } from './client.gen';
|
||||||
import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponses, GamesApiListGamesData, GamesApiListGamesResponses, MarketApiCloseMarketData, MarketApiCloseMarketResponses, MarketApiCreateBetData, MarketApiCreateBetResponses, MarketApiListMarketsData, MarketApiListMarketsResponses, MarketApiListUserBetsData, MarketApiListUserBetsResponses, MarketApiResolveMarketData, MarketApiResolveMarketResponses, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponses, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponses, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses } from './types.gen';
|
import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponses, GamesApiListGamesData, GamesApiListGamesResponses, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponses, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponses, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses } from './types.gen';
|
||||||
|
|
||||||
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
|
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
|
||||||
/**
|
/**
|
||||||
@@ -190,52 +190,3 @@ export const noitaApiSubmitLogFile = <ThrowOnError extends boolean = false>(opti
|
|||||||
* List Games
|
* List Games
|
||||||
*/
|
*/
|
||||||
export const gamesApiListGames = <ThrowOnError extends boolean = false>(options?: Options<GamesApiListGamesData, ThrowOnError>) => (options?.client ?? client).get<GamesApiListGamesResponses, unknown, ThrowOnError>({ url: '/api/games/', ...options });
|
export const gamesApiListGames = <ThrowOnError extends boolean = false>(options?: Options<GamesApiListGamesData, ThrowOnError>) => (options?.client ?? client).get<GamesApiListGamesResponses, unknown, ThrowOnError>({ url: '/api/games/', ...options });
|
||||||
|
|
||||||
/**
|
|
||||||
* List Markets
|
|
||||||
*
|
|
||||||
* List all markets (excludes draft markets).
|
|
||||||
*/
|
|
||||||
export const marketApiListMarkets = <ThrowOnError extends boolean = false>(options?: Options<MarketApiListMarketsData, ThrowOnError>) => (options?.client ?? client).get<MarketApiListMarketsResponses, unknown, ThrowOnError>({ url: '/api/market/', ...options });
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List User Bets
|
|
||||||
*
|
|
||||||
* List all bets placed by the current user.
|
|
||||||
*/
|
|
||||||
export const marketApiListUserBets = <ThrowOnError extends boolean = false>(options?: Options<MarketApiListUserBetsData, ThrowOnError>) => (options?.client ?? client).get<MarketApiListUserBetsResponses, unknown, ThrowOnError>({ url: '/api/market/user/bets', ...options });
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Close Market
|
|
||||||
*
|
|
||||||
* Close a market. Admin only.
|
|
||||||
*/
|
|
||||||
export const marketApiCloseMarket = <ThrowOnError extends boolean = false>(options: Options<MarketApiCloseMarketData, ThrowOnError>) => (options.client ?? client).post<MarketApiCloseMarketResponses, unknown, ThrowOnError>({ url: '/api/market/{market_uuid}/actions/close', ...options });
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolve Market
|
|
||||||
*
|
|
||||||
* Resolve a market with a winning option. Admin only.
|
|
||||||
*/
|
|
||||||
export const marketApiResolveMarket = <ThrowOnError extends boolean = false>(options: Options<MarketApiResolveMarketData, ThrowOnError>) => (options.client ?? client).post<MarketApiResolveMarketResponses, unknown, ThrowOnError>({
|
|
||||||
url: '/api/market/{market_uuid}/actions/resolve',
|
|
||||||
...options,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
...options.headers
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create Bet
|
|
||||||
*
|
|
||||||
* Place a bet on a market option.
|
|
||||||
*/
|
|
||||||
export const marketApiCreateBet = <ThrowOnError extends boolean = false>(options: Options<MarketApiCreateBetData, ThrowOnError>) => (options.client ?? client).post<MarketApiCreateBetResponses, unknown, ThrowOnError>({
|
|
||||||
url: '/api/market/{market_uuid}/bets',
|
|
||||||
...options,
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
...options.headers
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|||||||
@@ -952,10 +952,14 @@ export type NoitaSubmissionOut = {
|
|||||||
* GameOut
|
* GameOut
|
||||||
*/
|
*/
|
||||||
export type GameOut = {
|
export type GameOut = {
|
||||||
|
/**
|
||||||
|
* Id
|
||||||
|
*/
|
||||||
|
id: number;
|
||||||
/**
|
/**
|
||||||
* Steam App Id
|
* Steam App Id
|
||||||
*/
|
*/
|
||||||
steam_app_id: number;
|
steam_app_id?: number | null;
|
||||||
/**
|
/**
|
||||||
* Name
|
* Name
|
||||||
*/
|
*/
|
||||||
@@ -964,107 +968,10 @@ export type GameOut = {
|
|||||||
* Path
|
* Path
|
||||||
*/
|
*/
|
||||||
path: string;
|
path: string;
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MarketListSchema
|
* Image
|
||||||
*/
|
*/
|
||||||
export type MarketListSchema = {
|
image?: string | null;
|
||||||
/**
|
|
||||||
* Uuid
|
|
||||||
*/
|
|
||||||
uuid: string;
|
|
||||||
/**
|
|
||||||
* Title
|
|
||||||
*/
|
|
||||||
title: string;
|
|
||||||
/**
|
|
||||||
* Description
|
|
||||||
*/
|
|
||||||
description: string;
|
|
||||||
/**
|
|
||||||
* Status
|
|
||||||
*/
|
|
||||||
status: string;
|
|
||||||
/**
|
|
||||||
* End Date
|
|
||||||
*/
|
|
||||||
end_date: string;
|
|
||||||
/**
|
|
||||||
* Multiplier
|
|
||||||
*/
|
|
||||||
multiplier?: number;
|
|
||||||
/**
|
|
||||||
* Created At
|
|
||||||
*/
|
|
||||||
created_at: string;
|
|
||||||
/**
|
|
||||||
* Options
|
|
||||||
*/
|
|
||||||
options: Array<MarketOptionSchema>;
|
|
||||||
winning_option?: MarketOptionSchema | null;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* MarketOptionSchema
|
|
||||||
*/
|
|
||||||
export type MarketOptionSchema = {
|
|
||||||
/**
|
|
||||||
* Uuid
|
|
||||||
*/
|
|
||||||
uuid: string;
|
|
||||||
/**
|
|
||||||
* Text
|
|
||||||
*/
|
|
||||||
text: string;
|
|
||||||
/**
|
|
||||||
* Total Bets
|
|
||||||
*/
|
|
||||||
total_bets?: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UserBetSchema
|
|
||||||
*/
|
|
||||||
export type UserBetSchema = {
|
|
||||||
/**
|
|
||||||
* Uuid
|
|
||||||
*/
|
|
||||||
uuid: string;
|
|
||||||
/**
|
|
||||||
* Amount
|
|
||||||
*/
|
|
||||||
amount: number;
|
|
||||||
/**
|
|
||||||
* Created At
|
|
||||||
*/
|
|
||||||
created_at: string;
|
|
||||||
option: MarketOptionSchema;
|
|
||||||
market?: MarketListSchema | null;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ResolveMarketSchema
|
|
||||||
*/
|
|
||||||
export type ResolveMarketSchema = {
|
|
||||||
/**
|
|
||||||
* Winning Option Uuid
|
|
||||||
*/
|
|
||||||
winning_option_uuid: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UserBetCreateSchema
|
|
||||||
*/
|
|
||||||
export type UserBetCreateSchema = {
|
|
||||||
/**
|
|
||||||
* Option Uuid
|
|
||||||
*/
|
|
||||||
option_uuid: string;
|
|
||||||
/**
|
|
||||||
* Amount
|
|
||||||
*/
|
|
||||||
amount: number;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type PolylanSubmitterApiHealthCheckData = {
|
export type PolylanSubmitterApiHealthCheckData = {
|
||||||
@@ -1474,100 +1381,3 @@ export type GamesApiListGamesResponses = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export type GamesApiListGamesResponse = GamesApiListGamesResponses[keyof GamesApiListGamesResponses];
|
export type GamesApiListGamesResponse = GamesApiListGamesResponses[keyof GamesApiListGamesResponses];
|
||||||
|
|
||||||
export type MarketApiListMarketsData = {
|
|
||||||
body?: never;
|
|
||||||
path?: never;
|
|
||||||
query?: never;
|
|
||||||
url: '/api/market/';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiListMarketsResponses = {
|
|
||||||
/**
|
|
||||||
* Response
|
|
||||||
*
|
|
||||||
* OK
|
|
||||||
*/
|
|
||||||
200: Array<MarketListSchema>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiListMarketsResponse = MarketApiListMarketsResponses[keyof MarketApiListMarketsResponses];
|
|
||||||
|
|
||||||
export type MarketApiListUserBetsData = {
|
|
||||||
body?: never;
|
|
||||||
path?: never;
|
|
||||||
query?: never;
|
|
||||||
url: '/api/market/user/bets';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiListUserBetsResponses = {
|
|
||||||
/**
|
|
||||||
* Response
|
|
||||||
*
|
|
||||||
* OK
|
|
||||||
*/
|
|
||||||
200: Array<UserBetSchema>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiListUserBetsResponse = MarketApiListUserBetsResponses[keyof MarketApiListUserBetsResponses];
|
|
||||||
|
|
||||||
export type MarketApiCloseMarketData = {
|
|
||||||
body?: never;
|
|
||||||
path: {
|
|
||||||
/**
|
|
||||||
* Market Uuid
|
|
||||||
*/
|
|
||||||
market_uuid: string;
|
|
||||||
};
|
|
||||||
query?: never;
|
|
||||||
url: '/api/market/{market_uuid}/actions/close';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiCloseMarketResponses = {
|
|
||||||
/**
|
|
||||||
* OK
|
|
||||||
*/
|
|
||||||
200: unknown;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiResolveMarketData = {
|
|
||||||
body: ResolveMarketSchema;
|
|
||||||
path: {
|
|
||||||
/**
|
|
||||||
* Market Uuid
|
|
||||||
*/
|
|
||||||
market_uuid: string;
|
|
||||||
};
|
|
||||||
query?: never;
|
|
||||||
url: '/api/market/{market_uuid}/actions/resolve';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiResolveMarketResponses = {
|
|
||||||
/**
|
|
||||||
* OK
|
|
||||||
*/
|
|
||||||
200: MarketListSchema;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiResolveMarketResponse = MarketApiResolveMarketResponses[keyof MarketApiResolveMarketResponses];
|
|
||||||
|
|
||||||
export type MarketApiCreateBetData = {
|
|
||||||
body: UserBetCreateSchema;
|
|
||||||
path: {
|
|
||||||
/**
|
|
||||||
* Market Uuid
|
|
||||||
*/
|
|
||||||
market_uuid: string;
|
|
||||||
};
|
|
||||||
query?: never;
|
|
||||||
url: '/api/market/{market_uuid}/bets';
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiCreateBetResponses = {
|
|
||||||
/**
|
|
||||||
* OK
|
|
||||||
*/
|
|
||||||
200: UserBetSchema;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MarketApiCreateBetResponse = MarketApiCreateBetResponses[keyof MarketApiCreateBetResponses];
|
|
||||||
|
|||||||
Reference in New Issue
Block a user